Esta es una característica increíble que permite que las herramientas de CI/CD, como Jenkins, se integren con Ansible, lo que le brinda más control y automatización de las tareas que está ejecutando.
Requisitos
Para seguir con este tutorial, debe asegurarse de tener los siguientes requisitos:
También es posible que necesite permisos suficientes para ejecutar los comandos en el agente/controlador o los nodos ansibles.
Muestra de configuración del proyecto
Diseño de inventario ansible
Desglosemos la configuración del proyecto. Para este tutorial, tenemos un servidor Ubuntu en el que instalar el servidor web Apache usando Ansible.
Lo siguiente muestra el diseño de nuestro archivo de inventario de host ansible:
[servidores web]
172.29.42.58
El inventario anterior contiene una categoría de servidor web con solo un host que apunta a la dirección IP del servidor Ubuntu.
Ansible Playbook
El siguiente es el libro de jugadas Ansible que deseamos ejecutar en el servidor. Finalmente, como se mencionó, necesitamos instalar el servidor web de Apache en la máquina Ubuntu.
El libro de jugadas correspondiente es el siguiente:
---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: Actualización del caché del administrador del paquete
apto:
update_cache: verdadero
- Nombre: Instale el servidor web Apache
apto:
Nombre: Apache2
Estado: presente
- Nombre: Iniciar servidor web de apache
servicio:
Nombre: Apache2
Estado: comenzó
El libro de jugadas proporcionado comienza actualizando el caché del administrador de paquetes en el host de destino. Dado que solo tenemos un host en el archivo de inventario Ansible, podemos establecer los hosts en todos como se muestra en el libro de jugadas anterior.
A continuación, instalamos el servidor web Apache utilizando el módulo APT ANSible. Finalmente, iniciamos el servidor web utilizando el módulo de servicio.
Guión de jenkinsfile
El último archivo que necesitamos es el Jenkinsfile que define las etapas y los pasos de la tubería de Jenkins.
Lo siguiente muestra el objetivo Jenkinsfile:
tubería
Agente Etiqueta 'Debian'
etapas
Stage ('Run Ansible Playbook')
pasos
sh 'ansible -playbook -i/etc/ansible/hosts -u ubuntu ~/playbooks/install -apache.yml '
En este caso, el Jenkinsfile usa el agente con la etiqueta "Debian" . Luego, el Jenkinsfile invoca el comando Ansible-Playbook para ejecutar la instalación-apache.Libro de jugadas de YML en el anfitrión de Target.
Construyendo una tubería de Jenkins
Una vez que los archivos y herramientas de destino están listos, podemos configurar una muestra de la tubería de Jenkins.
Inicie sesión en su controlador Jenkins y cree una nueva tubería de Jenkins.
En la sección de la tubería, seleccione el "Script de la tubería" y pegue el Jenkinsfile que creamos anteriormente.
Haga clic en "Guardar" y elija "Construir ahora".
Una vez que hacemos clic en la construcción, Jenkins invoca los comandos y ejecuta las tareas ansibles que se definen en el libro de jugadas.
Conclusión
Descubriste cómo usar Jenkins para ejecutar los libros de jugadas Ansible en el host de destino usando el complemento Jenkins Ansible.