GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser les gestionnaires dans Ansible Playbook

Dans Ansible, un gestionnaire est comme n'importe quelle autre tâche, mais ne s'exécute que lorsqu'il est appelé ou notifié. Il agit lorsqu'une modification a été apportée à l'hôte géré. Les gestionnaires sont utilisés pour initier une modification secondaire telle que le démarrage ou le redémarrage d'un service après l'installation ou même le rechargement d'un service après que certaines modifications ont été apportées aux fichiers de configuration. Dans ce guide, nous apporterons plus de lumière sur les gestionnaires Ansible. Nous apprendrons à utiliser les gestionnaires dans un playbook ansible.

Fichier de playbook Ansible avec un gestionnaire

Pour mieux comprendre le fonctionnement des gestionnaires, nous prendrons un exemple de fichier playbook - install_apache.yml - qui installe le serveur Web Apache et redémarre ensuite le service Apache. Dans l'exemple ci-dessous, le gestionnaire est averti de redémarrer le service Apache peu après l'installation. Ceci est réalisé en utilisant le module de notification comme indiqué. Notez que le nom "notify" doit coïncider avec le nom du gestionnaire, comme indiqué, sinon vous rencontrerez des erreurs dans votre fichier playbook.

---
- hosts: staging
  name: Install
  become: yes
  tasks:
          - name: Install Apache2 on  Ubuntu server
            apt:
                    name: apache2
                    state: present
                    update_cache: yes
            notify:
                    - Restart apache2

 handlers:
          - name: Restart apache2
            service:
                    name:  apache2
                    state: restarted

Exécutons maintenant le fichier playbook.

$ ansible-playbook /etc/ansible/install_apache.yml -K

À partir de la sortie, vous pouvez voir le gestionnaire en cours d'exécution juste après la tâche.

Plusieurs tâches avec plusieurs gestionnaires

De plus, nous pouvons avoir plusieurs tâches appelant plusieurs gestionnaires. Considérez le fichier playbook ci-dessous.

Voici 2 tâches à exécuter :

  • Installation du serveur Web Apache
  • Autoriser le trafic HTTP sur le pare-feu UFW

Une fois les tâches exécutées avec succès, j'ai appelé chacun des gestionnaires avec le module "notifier" comme indiqué ci-dessous. Le premier gestionnaire redémarre Apache et le second recharge le pare-feu UFW.

---
- hosts: staging
  name: Install
  become: yes
  tasks:
         - name: Install Apache2 on  Ubuntu server
           apt:
                   name: apache2
                   state: present
                   update_cache: yes

         - name: Allow HTTP traffic on UFW firewall
           ufw:
                   rule: allow
                   port: http
                   proto: tcp

           notify:
                   - Restart apache2
                   - Reload ufw firewall
  handlers:
          - name: Restart apache2
            service:
                    name:  apache2
                    state: restarted

          - name: Reload ufw firewall
            ufw:
                    state: enabled

Lorsque le fichier playbook est exécuté, les deux gestionnaires sont exécutés par Ansible juste après l'installation d'Apache et le trafic HTTP est autorisé sur le pare-feu.

Les actions secondaires exécutées par les gestionnaires ici sont :

  • Redémarrage d'Apache
  • Activation et rechargement du pare-feu pour que les modifications apportées soient prises en compte.

Conclusion

Comme vous l'avez vu, les gestionnaires sont comme des tâches normales, sauf qu'ils sont référencés à l'aide d'un module unique au monde appelé "notifier". Si un gestionnaire n'est pas notifié, son exécution échoue. N'oubliez pas que tous les gestionnaires s'exécutent une fois toutes les tâches terminées.

Lire aussi  : Comment créer des rôles Ansible et les utiliser dans Playbook


Linux
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment utiliser Ansible pour configurer la surveillance du système avec Prometheus

  3. Comment installer et utiliser Ansible sur Debian 11

  4. Comment créer un Playbook Ansible

  5. Comment passer des variables supplémentaires à un playbook Ansible

Comment créer et utiliser des faits personnalisés dans Ansible

Premiers pas avec les playbooks Ansible

Comment définir et utiliser des gestionnaires dans des playbooks Ansible

Comment utiliser le modèle Jinja2 dans Ansible

Comment utiliser Ansible pour configurer Vim

Comment utiliser Ansible pour envoyer un e-mail avec Gmail