Acciones de GitHub en Ansible

Acciones De Github En Ansible



Ansible es una herramienta de automatización popular, gratuita y de código abierto que nos permite automatizar las tareas de DevOps, como la gestión de configuración, la implementación de aplicaciones, etc.

La combinación de Ansible con GitHub Actions nos permite automatizar la ejecución de los playbooks de Ansible cada vez que ocurre un evento específico en un repositorio, como un envío a la rama principal.







Este tutorial le enseña cómo configurar una acción de GitHub para ejecutar un manual de Ansible que es útil para automatizar la implementación en respuesta a cambios de código.



Requisitos previos:

Antes de continuar, asegúrese de tener lo siguiente:



  • Una cuenta de GitHub
  • Un repositorio de GitHub existente
  • Conocimientos básicos de los libros de jugadas de Ansible.
  • Una máquina de destino donde Ansible puede ejecutar las tareas. Asegúrese de que Ansible pueda conectarse a estas máquinas desde un ejecutor de GitHub.

Paso 1: configurar el entorno Ansible

Cree y almacene el libro de estrategias de Ansible y todos los archivos relacionados en el repositorio de GitHub. Esto debe incluir archivos como plantillas de roles, variables, etc.





Un ejemplo de libro de jugadas es el siguiente:

---
- nombre: asegúrese de que Nginx esté instalado en los servidores web
hosts: servidor web
convertirse en: si
tareas:
- nombre: Actualizar caché apto
apto:
update_cache: sí

- nombre: Instalar Nginx
apto:
nombre: nginx
estado: presente

Asegúrese de tener un archivo de inventario que especifique las máquinas de destino para Ansible.



Paso 2: configurar los secretos en el repositorio de GitHub

Dado que el manual necesita información confidencial como claves SSH o contraseñas, GitHub proporciona una forma de almacenar los secretos de forma segura:

Navega a tu repositorio de GitHub.

Vaya a Configuración > Secretos y variables -> Acciones  -> Nuevo secreto del repositorio.

Paso 3: crear el flujo de trabajo de acción de GitHub

En el repositorio, cree un directorio '.github/workflows'. Dentro de este directorio, cree un archivo YAML para su flujo de trabajo.

Agregue el flujo de trabajo de la siguiente manera:

nombre: Ejecutar Ansible Playbook
en:
empujar:
sucursales:
- maestro
trabajos:
desplegar:
se ejecuta en: ubuntu-latest
pasos:
- nombre: código de pago
usos: acciones/checkout@v2
- nombre: Configurando la clave SSH
ejecutar: |
echo '${{ secretos.SSH_PRIVATE_KEY }}' > clave_privada.pem
chmod 600 clave_privada.pem
- nombre: Ejecutar Ansible Playbook
ejecutar: |
actualización sudo apta
        sudo apt install -y ansible
ansible-playbook -i hosts.ini my-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}

Paso 4: desencadenar el flujo de trabajo

Siempre que acceda a la rama maestra, GitHub ejecutará automáticamente este flujo de trabajo y, por lo tanto, ejecutará el libro de jugadas.

Conclusión

Eso es todo por este. Cubrimos cómo ejecutar un libro de jugadas de Ansible usando las acciones de Github.