Questa è una caratteristica incredibile che consente agli strumenti CI/CD come Jenkins di integrarsi con Ansible che ti dà un maggiore controllo e automazione delle attività che si stanno eseguendo.
Requisiti
Per seguire questo tutorial, è necessario assicurarsi di avere i seguenti requisiti:
Potresti anche aver bisogno di autorizzazioni sufficienti per eseguire i comandi sull'agente/controller o sui nodi Ansible.
Configurazione del progetto di esempio
Layout di inventario ansible
Abbattiamo la configurazione del progetto. Per questo tutorial, abbiamo un server Ubuntu su cui installare il server Web Apache utilizzando Ansible.
Quanto segue mostra il layout del nostro file di inventario dell'host Ansible:
[Webservers]
172.29.42.58
L'inventario precedente contiene una categoria WebServer con un solo host che indica l'indirizzo IP di Ubuntu Server.
Playbook Ansible
Il prossimo è il playbook Ansible che desideriamo eseguire sul server. Infine, come accennato, dobbiamo installare il server Web Apache sulla macchina Ubuntu.
Il playbook corrispondente è il seguente:
---
- Host: tutto
diventa vero
compiti:
- Nome: Aggiorna la cache del gestore dei pacchetti
Apt:
update_cache: vero
- Nome: installa Apache Web Server
Apt:
Nome: Apache2
Stato: presente
- Nome: Avvia Apache Web Server
servizio:
Nome: Apache2
Stato: iniziato
Il playbook fornito inizia aggiornando la cache di pacchetti sull'host di destinazione. Dato che abbiamo solo un host sul file di inventario Ansible, possiamo impostare gli host su tutti come mostrato nel precedente playbook.
Successivamente, installiamo il server Web Apache utilizzando il modulo APSible APT. Infine, avviamo il server web utilizzando il modulo di servizio.
Script Jenkinsfile
L'ultimo file di cui abbiamo bisogno è Jenkinsfile che definisce le fasi e i passaggi della pipeline di Jenkins.
Di seguito mostra il bersaglio Jenkinsfile:
tubatura
agente etichetta 'debian'
fasi
Stage ('run ansible playbook')
Passaggi
sh 'ansible -playbook -i/etc/ansible/host -u ubuntu ~/playbooks/install -apache.YML '
In questo caso, Jenkinsfile utilizza l'agente con l'etichetta "Debian" . Quindi, Jenkinsfile invoca il comando Ansible-Playbook per eseguire l'installazione-Apache.Playbook YML sull'host target.
Costruire una pipeline di Jenkins
Una volta pronti i file e gli strumenti di destinazione, possiamo impostare una pipeline Jenkins di esempio.
Accedi al controller Jenkins e crea una nuova pipeline Jenkins.
Nella sezione della pipeline, selezionare lo "Script della pipeline" e incollare Jenkinsfile che abbiamo creato in precedenza.
Fai clic su "Salva" e scegli "Build Now".
Una volta fatto clic su Build, Jenkins invoca i comandi ed esegue le attività Ansible che sono definite nel playbook.
Conclusione
Hai scoperto come usare Jenkins per eseguire i playbook Ansible sull'host target usando il plugin Jenkins Ansible.