Neste post será apresentado como utilizar o plugin do Ansible via Jenkins para executar playbooks diretamente de um job.
Executar o playbook a partir do Jenkins nos dá mais possibilidades de parâmetros e entregas no ambiente .
1) Ambiente :
10.0.0.90 – devops-01 – Jenkins / Ansible Server
10.0.0.91 – client-01 – Jenkins / Ansible Client
2) Configurando o plugin :
Acesse http://JENKINS_SERVER/pluginManager/
Clique na aba “Disponíveis” instale o plugin “Ansible Plugin”
3) Configurando o laboratório :
Para o lab criei um projeto free style no Jenkins adicionando no passo da build a opção “Ansible playbook”
Ajustes do plugin
Configuração do playbook
vim /opt/ansible/playbooks/jenkins-test.yml
--- - hosts: jenkins-lab user: jenkins sudo: true tasks: - name: Print message debug: msg="Jenkins Test" - name: install the latest version of Apache yum: name: httpd state: latest - name: Enable Apache to be started at boot shell: systemctl start httpd - name: Adjust Site Index shell: sudo echo "Deploy by Ansible Jenkins" >> /var/www/html/index.html
Criando o usuário jenkins no servidor client-01 e devops-01
useradd jenkins passwd jenkins usermod -G wheel jenkins
Obs : No sudoers o grupo wheel está setado com os parâmetros “%wheel ALL=(ALL) NOPASSWD: ALL”
Criando o certificado para o usuário jenkins a partir do servidor devops-01
Distribuindo a chave do usuário do Jenkins para o servidor client-01
Para um grupo de hosts estou deixando abaixo para o script de distribuição de chaves
Shell Script : Chaves públicas para automação de tarefas via SSH
4) Execução do Job :