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 l'exécute ansible-playbook playbook_name.yml
et de le dupliquer une entrée pour chaque playbook que j'ai besoin d'exécuter.
Existe-t-il une façon plus intelligente / meilleure 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 d'abord en tant que root puis en tant qu'utilisateur sudo plus tard.
ansible
ansible-playbook
nulltek
la source
la source
become:
partie à la fin de chaque bloc. Vous devrez peut-être créer une nouvelle lecture pour basculer l'utilisateur de la connexion de l'utilisateur root vers sudo.Réponses:
Créez de nombreux sous-playbooks et agrégez-les via des instructions d'inclusion.
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 playbook devrait toujours être un processus fermé.
la source
- include : books/*.yml
include
c'est obsolète. docs.ansible.com/ansible/latest/playbooks_reuse.html Je pense queimport_playbook: foo
c'est la bonne voie à suivre, mais je ne suis pas très expérimenté.Pour les versions plus récentes d'Ansilbe, vous pouvez créer de nombreux sous-playbooks et les agréger via des instructions import_playbook:
la source