Jenkins : plugin do Ansible

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 :

 

Index criado pelo playbook :