web-dev-qa-db-fra.com

Comment exécuter plusieurs playbooks dans l'ordre avec Ansible?

Je travaille sur plusieurs playbooks Ansible pour faire tourner une nouvelle instance de serveur. Il y a environ 15 playbooks différents que je dois exécuter dans un ordre spécifique pour réussir à faire tourner un serveur.

Ma pensée initiale était d'écrire un script Shell qui exécute ansible-playbook playbook_name.yml et dupliquez une entrée pour chaque playbook que je dois exécuter.

Existe-t-il un moyen plus intelligent/meilleur de le faire en utilisant un manuel de jeu principal et si oui, à quoi cela ressemblerait-il (des exemples sont appréciés).

Je pourrais écrire un playbook monolithique qui fait tout, mais il y a des jeux qui s'exécutent en tant que root puis en tant qu'utilisateur Sudo plus tard.

19
nulltek

Créez de nombreux sous-livres et agrégez-les via des instructions d'inclusion.

- include: playbook-one.yml
- include: playbook-two.yml

Si vos playbooks doivent fonctionner dans l'ordre et si tous sont obligatoires, créez un playbook principal et incluez des fichiers avec des tâches. Un livre de jeu doit toujours être un processus fermé.

16
flxPeters

Pour les versions plus récentes d'Ansible, vous pouvez créer de nombreux sous-playbooks et les agréger via des instructions import_playbook:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
13
Peter Senna