• [^] # Re: Devops

    Posté par . En réponse au journal Kickstart et Ansible pour automatiser des installations/configurations de systèmes Linux. Évalué à 4.

    Je ne connais pas de manière, avec Ansible, pour appeler 7 plays en une seule commande aussi simple, sauf à faire un playbook pour chaque programme, puis utiliser les rôles, etc etc. Donc au lieu d'un seul script, j'aurais plus de 50 petits fichiers...

    Juste pour répondre à cette remarque, et sans impliquer que tu devrais changer ta façon de faire.

    Ce genre de chose se fait typiquement avec des tags.
    Tu fais un playbook avec toutes les actions à appliquer, et tu applique des tags sur les différentes actions selon, ce à quoi elles s'appliquent. Si une action particulière est toujours nécessaire (par exemple parce qu'elle récupère des informations qui sont utilisées à plusieurs endroits), plutôt que de devoir lui appliquer tous les tags, il y a un tag spécial always pour toujours l'exécuter.
    Ensuite, tu peux exécuter ansible-playbook avec l'option -t (--tags) pour n'exécuter que les actions qui correspondent à ce(s) tag(s). Il y a aussi une option --skip-tags pour exclure selon d'autres tags.

    Note que ça peut aussi fonctionner de façon hybride, la commande de base ansible permet d'exécuter une unique action, elle peut donc être utilisée dans un script (et appliquée à localhost) pour profiter des fonctionnalités de certains modules complexes, et scripter d'autres choses qui seraient de toute façon compliquées à faire dans ansible.