Escolar Documentos
Profissional Documentos
Cultura Documentos
INTEGRAÇÃO E ENTREGA
CONTÍNUAS
COM O ANSIBLE
INTRODUÇÃO
O Ansible é uma linguagem open source de automação muito poderosa. Os recursos
de implantação e orquestração dessa solução a tornam única em comparação a outras
ferramentas de gerenciamento. Em muitos aspectos, o objetivo dessa solução é oferecer mais
ganhos de produtividade em uma ampla variedade de oportunidades de automação. Além de
substituir, de modo imediato e mais produtivo, muitos recursos básicos de outras soluções de
automação, o Ansible também busca superar outros desafios de TI mais complexos.
O mais preocupante é o fato de que ciclos de lançamento mais longos significam um tempo
maior entre a descoberta e a correção de bugs. O que é inconveniente, principalmente para
as propriedades da web com grande volume de tráfego, nas quais um único contratempo
pode afetar milhões de usuários. Para resolver esse problema, o setor de desenvolvimento
de softwares está adotando com rapidez uma abordagem de lançamento antecipado e
constante ("release early, release often"), baseado no modelo de desenvolvimento ágil de
WHITEPAPER
CI/CD com Ansible
Neste documento, destacaremos por que o Ansible e o Ansible Tower by Red Hat são as
ferramentas ideais para conectar sistemas computacionais e possibilitar os processos
mencionados.
Tempo de inatividade zero é um objetivo alcançável. No entanto, para que seja possível
gerenciá-lo, é necessário ter o respaldo da ferramenta certa, uma plataforma de orquestração
em várias camadas e etapas, como o Ansible.
O principal passo em direção à CD é quando o sistema de build pode invocar o Ansible após
uma compilação bem-sucedida. Além disso, os usuários que também executam testes de
unidade ou de integração no código como resultado do build, já estarão um passo à frente
no processo. O Jenkins pode usar o Tower para implantar o artefato compilado em vários
ambientes. No entanto, ter um ambiente de QA/homologação nos moldes do ambiente de
produção acelera o processo e aumenta significativamente a previsibilidade durante o ciclo
de vida. Assim, é possível referenciar os dados retornados pelo Ansible e correlacioná-los
diretamente às tarefas do Tower nos sistemas de build.
2
WHITEPAPER
CI/CD com Ansible
baseada em push, Um dos recursos principais do Ansible que permite essa orquestração é a habilidade de definir
o Ansible permite "plays", que selecionam um grupo de alta granularidade de hosts e atribuem algumas tarefas
uma execução (ou "funções") a serem executadas. Normalmente, as tarefas são declarações de que um
extremamente recurso específico esteja em um estado determinado. Por exemplo, um pacote que deve ser
instalado em uma versão específica ou um repositório de controle de código-fonte que deve
rápida das cargas de ser retirado de uma determinada versão.
trabalho complexas.
Na maioria das topologias de aplicativos web, é necessário atualizar algumas camadas
específicas em uma sequência rígida. Por exemplo, algumas vezes, é necessário migrar o
esquema de banco de dados e liberar os servidores de cache antes de atualizar os servidores
de aplicativo.
O Ansible permite que você controle a extensão da janela de atualização contínua por meio
da palavra-chave "serial". Além disso, a maneira como o Ansible realiza atualizações contínuas
é inteligente o suficiente para que se um lote falhar, a atualização pare e o restante da
infraestrutura seja mantida on-line.
3
WHITEPAPER
CI/CD com Ansible
Isso inclui tanto a comunicação com balanceadores de carga de todos os tipos quanto a
sinalização de janelas de interrupção de determinados hosts, para desativar os alertas de
monitoramento dos hosts que estão sendo atualizados. O uso de expressões simples, como
"desativar monitoramento", "remover do pool", "atualizar camada" e "ativar o monitoramento",
permite sempre realizar atualizações sem tempo de inatividade ou enviar alertas falsos
automatizados, sem a necessidade de intervenção manual.
4
WHITEPAPER
CI/CD com Ansible
Isso deve-se à habilidade do Ansible de controlar com precisão a ordem dos eventos entre
camadas diferentes dos sistemas, delegar ações a outros sistemas e mesclar diretivas de
modelo de recurso ("o estado do pacote X deve ser Y") em oposição aos padrões de comando
tradicionais ("executar script.sh”) no mesmo processo.
O Ansible também permite executar comandos para o teste de várias condições e, depois,
tomar decisões condicionais com base nos resultados dos comandos. Ao combinar a
configuração e a implantação em uma única cadeia de ferramentas, é possível reduzir a
sobrecarga na gestão de ferramentas diferentes, além de propiciar uma unificação mais
satisfatória entre o sistema operacional e a política de aplicativos.
aplicativos.
No caso de uma falha, o Ansible interrompe a operação e configura apenas parte do sistema.
Ele chama a atenção para o erro, para que você possa gerenciá-lo, e produz resumos sobre
quais hosts no ciclo de atualização tiveram problemas e quantas mudanças foram executadas
em cada plataforma.
5
WHITEPAPER
CI/CD com Ansible
TESTES DE CONFORMIDADE
Em muitos ambientes, as mudanças de configuração são aplicadas somente quando realmente
necessárias. Antes de "apertar o botão", é necessário que um indivíduo entenda e concorde
com essas mudanças. Nesses casos, ainda assim é possível aproveitar um sistema de CD com
algumas limitações.
Nesse tipo de situação, o Ansible contém um modo de simulação por meio de uma sinalização
“--check” que reportará quais mudanças seriam realizadas na execução de um processo de
playbook. Como isso ignoraria as execuções reais do comando e não levaria em conta possíveis
scripts com falha, trata-se apenas de uma orientação. No entanto, essa é uma ferramenta
muito útil.
6
SOBRE O ANSIBLE
O Ansible, um projeto criado pela comunidade open source e patrocinado pela Red Hat, é
a maneira mais simples de automatizar a TI. O Ansible é a única linguagem de automação
que pode ser usada por todas as equipes de TI, dos administradores de sistemas e rede aos
desenvolvedores e gerentes. O Ansible by Red Hat oferece soluções prontas para empresas a
fim de automatizar todo o ciclo de vida dos aplicativos, incluindo servidores, clouds, containers
e outros. O Ansible Tower by Red Hat é uma oferta comercial que auxilia as equipes a gerenciar
implantações complexas com várias camadas ao adicionar recursos de controle, conhecimento
e delegação nos ambientes onde o Ansible é implantado.
Copyright © 2017 Red Hat, Inc. Red Hat, o logotipo Shadowman e Ansible são marcas registradas
da Red Hat, Inc. ou suas subsidiárias, nos Estados Unidos da América e em outros países.