Esse é um recurso incrível que permite que as ferramentas de CI/CD, como Jenkins, integrem ao Ansible, o que oferece mais controle e automação das tarefas que você está executando.
Requisitos
Para acompanhar este tutorial, você precisa garantir que você tenha os seguintes requisitos:
Você também pode precisar de permissões suficientes para executar os comandos no agente/controlador ou nos nós Ansible.
Exemplo de configuração do projeto
Layout de inventário Ansible
Vamos quebrar a configuração do projeto. Para este tutorial, temos um servidor Ubuntu no qual instalar o servidor da Web Apache usando Ansible.
A seguir, mostra o layout do nosso arquivo de inventário de anfitriões Ansible:
[Web Servers]
172.29.42.58
O inventário anterior contém uma categoria de servidor da web com apenas um host que aponta para o endereço IP do servidor Ubuntu.
Ansible Playbook
Em seguida é o manual Ansible que desejamos executar no servidor. Finalmente, como mencionado, precisamos instalar o setor da web Apache na máquina Ubuntu.
O manual correspondente é o seguinte:
---
- Hosts: todos
tornar verdade
tarefas:
- Nome: Atualizar cache do gerenciador de pacotes
APT:
update_cache: true
- Nome: Instale o Apache Web Server
APT:
Nome: Apache2
Estado: presente
- Nome: Iniciar o Apache Web Server
serviço:
Nome: Apache2
Estado: começou
O manual fornecido começa atualizando o cache do gerenciador de pacotes no host de destino. Como temos apenas um host no arquivo de inventário Ansible, podemos definir os hosts para todos, como mostrado no manual anterior.
Em seguida, instalamos o servidor da Web Apache usando o módulo apt Ansible. Finalmente, começamos o servidor da web usando o módulo de serviço.
Script Jenkinsfile
O último arquivo que precisamos é o Jenkinsfile que define os estágios e as etapas do pipeline de Jenkins.
A seguir, mostra o alvo Jenkinsfile:
Pipeline
Agente Label 'Debian'
estágios
Stage ('Run Ansible Playbook')
passos
sh 'Ansible -playbook -i/etc/Ansible/hosts -u ubuntu ~/playbooks/install -apache.yml '
Nesse caso, o Jenkinsfile usa o agente com o rótulo "Debian" . Então, o Jenkinsfile invoca o comando Ansible-playbook para executar o install-apache.Playbook YML no host de destino.
Construindo um oleoduto Jenkins
Depois que os arquivos e ferramentas de destino estiverem prontos, podemos configurar uma amostra Jenkins Pipeline.
Faça login no seu controlador Jenkins e crie um novo pipeline Jenkins.
Na seção de pipeline, selecione o "script de pipeline" e cole o Jenkinsfile que criamos anteriormente.
Clique em "Salvar" e escolha "Build Now".
Depois de clicar em Build, Jenkins chama os comandos e executa as tarefas Ansible que são definidas no manual.
Conclusão
Você descobriu como usar Jenkins para executar os manuais Ansible no host de destino usando o plugin Jenkins Ansible.