Actions GitHub dans Ansible

Actions Github Dans Ansible



Ansible est un outil d'automatisation populaire, gratuit et open source qui nous permet d'automatiser les tâches DevOps telles que la gestion de la configuration, le déploiement d'applications, etc.

La combinaison d'Ansible avec GitHub Actions nous permet d'automatiser l'exécution des playbooks Ansible chaque fois qu'un événement spécifique se produit dans un référentiel, comme une poussée vers la branche principale.







Ce didacticiel vous apprend à configurer une action GitHub pour exécuter un playbook Ansible, utile pour automatiser le déploiement en réponse aux modifications de code.



Conditions préalables:

Avant de continuer, assurez-vous d'avoir les éléments suivants :



  • Un compte GitHub
  • Un dépôt GitHub existant
  • Connaissance de base des playbooks Ansible
  • Une machine cible sur laquelle Ansible peut exécuter les tâches. Assurez-vous qu'Ansible peut se connecter à ces machines à partir d'un exécuteur GitHub.

Étape 1 : configurer l'environnement Ansible

Créez et stockez le playbook Ansible et tous les fichiers associés dans le référentiel GitHub. Cela devrait inclure des fichiers tels que les modèles de rôles, les variables, etc.





Un exemple de playbook est le suivant :

---
- nom : assurez-vous que Nginx est installé sur les serveurs Web
hôtes : serveur Web
devenir : oui
Tâches:
- nom : Mettre à jour le cache apt
apte:
update_cache : oui

- nom : Installer Nginx
apte:
nom : nginx
état : présent

Assurez-vous de disposer d'un fichier d'inventaire spécifiant les machines cibles pour Ansible.



Étape 2 : configurer les secrets dans le référentiel GitHub

Étant donné que le playbook a besoin d'informations sensibles telles que des clés SSH ou des mots de passe, GitHub fournit un moyen de stocker les secrets en toute sécurité :

Accédez à votre référentiel GitHub.

Accédez à Paramètres > Secrets et variables -> Actions  -> Nouveau secret du référentiel.

Étape 3 : Créer le workflow d'action GitHub

Dans le référentiel, créez un répertoire « .github/workflows ». Dans ce répertoire, créez un fichier YAML pour votre flux de travail.

Ajoutez le flux de travail comme suit :

nom : Exécuter Ansible Playbook
sur:
pousser:
branches:
- maître
emplois:
déployer:
exécution : ubuntu-latest
pas:
- nom : Code de paiement
utilise : actions/checkout@v2
- nom : Configuration de la clé SSH
exécuter : |
echo '${{ secrets.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 clé_privée.pem
- nom : Exécuter Ansible Playbook
exécuter : |
sudo apt mise à jour
sudo apt install -y ansible
ansible-playbook -i hosts.ini mon-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}

Étape 4 : Déclenchez le flux de travail

Chaque fois que vous poussez vers la branche principale, GitHub exécutera automatiquement ce workflow et exécute ainsi le playbook.

Conclusion

C'est tout pour celui-ci. Nous avons expliqué comment exécuter un playbook Ansible à l'aide des actions Github.