Ce guide discutera de la façon dont vous pouvez utiliser le module ANSIBLE RUN_ONCE pour effectuer un ensemble d'opérations.
Utilisation de base
Le paramètre ANSIBLE RUN_ONCE est appliqué à une tâche spécifique que vous souhaitez être exécutée sur le premier hôte.
L'exemple de playbook suivant montre comment vous pouvez définir le paramètre run_once dans un livre de jeu.
---
- hôtes: tout
#…
Tâches:
- Nom: exécutez cette commande une fois
Shell: commande
run_once: vrai
L'exemple de playbook ci-dessus montre la syntaxe générale pour implémenter une tâche run_once.
Regardons quelques exemples et voyons divers cas d'utilisation du paramètre RUN_ONCE.
Exemple 1
Nous implémenterons un livre play simple qui télécharge un fichier zip à partir d'une URL dans notre premier exemple. Puisqu'il n'a pas de sens de relocaliser à plusieurs reprises le fichier sur chaque hôte, nous pouvons utiliser le paramètre run_once.
Prenez l'exemple de playbook illustré ci-dessous:
---
- hôtes: tout
rassemble_facts: oui
Tâches:
- Nom: téléchargez le fichier une seule fois
run_once: vrai
get_url:
URL: https: // file-examples-com.github.IO / Télécharges / 2017/02 / ZIP_10MB.zipper
dest: ~ / zip_10mb.zipper
- Nom: Unarchive
Unarchive:
src: ~ / zip_10mb.zipper
dest: ~ / zip_10mb
L'exemple de playbook ci-dessus téléchargera le fichier dans le premier lot, puis le désarchive sur les hôtes distants.
Exemple 2
Le prochain exemple de playbook crée une archive à partir d'un référentiel git.
---
- hôtes: tout
rassemble_facts: oui
Tâches:
- Nom: Créez des archives à partir de repo
git:
repo: https: // github.com / échantillons / repo.git
dest: / home / utilisateur / repo
Archive: / Home / User / Repo.zipper
run_once: vrai
Exemple 3
Nous pouvons également utiliser le paramètre run_once pour créer une sauvegarde, puis synchroniser la base de données avec les hôtes distants à l'aide du protocole RSync. Considérez l'exemple de playbook ci-dessous:
---
- hôtes: tout
rassemble_facts: oui
devenir vrai
Tâches:
- Nom: Créez une archive de sauvegarde
archive:
chemin:
/ var / log /
/ Custom / All
dest: / Backup / System0-Backup.bz2
Format: bz2
Supprimer: Non
run_once: vrai
- Nom: synchronisation de synchronisation avec RSYNC
synchroniser:
src: / backup / system0-backup.bz2
dest: rsync: // inventory_hostname / sauvegarde
Le playbook créera une archive de sauvegarde sur le localhost et synchronisera les fichiers avec tous les hôtes distants.
Exemple 4
L'exemple de playbook utilise le paramètre run_once pour envoyer le courrier à tous les hôtes.
---
- hôtes: tout
rassemble_facts: oui
devenir vrai
Tâches:
- Nom: Créez une archive de sauvegarde
local_action:
Module: courrier
Sujet: "Courrier d'ANSIBLE."
à: ubuntu @ localhost
Corps: "Mise à jour de la nouvelle version redis."
run_once: vrai
Le playbook envoie le courrier à un utilisateur spécifique.
Conclusion
Ce guide vous montre comment utiliser le paramètre run_once dans ANSIBLE pour effectuer une tâche sur un seul hôte et appliquer les résultats à d'autres hôtes.