2017-10-04 2 views
0

Supposons que j'ai une tâche comme ceci:tâche d'exécution avec des entrées différentes pour différents hôtes

- name: install python modules 
    pip: 
    name: "{{ item }}" 
    with_items: 
    - requests 

Et je veux exécuter que l'un sur tous les hôtes en jeu, mais avec des with_items en fonction de l'hôte. est-ce possible. J'étais incapable de trouver quelque chose de pertinent sur le web.

Mon but est de configurer 4 boîtes similaires, mais légèrement différentes. Toutes les tâches sont les mêmes, mais les entrées diffèrent légèrement. Je ne veux pas avoir 4 jeux conséquentiels. Je veux 1 jeu parallèle.

+0

Vous voulez en savoir plus sur [les variables hôtes] (http://docs.ansible.com/ansible/latest/intro_inventory.html#host-variables) –

Répondre

0

semble assez basique: définir la variable contenant une liste de noms de paquets séparément pour chaque hôte soit:

+0

Exemple pour quoi? Quel est votre cas particulier? Vous devez écrire quelques fichiers texte avec assignation de variable, – techraf

+0

Je ne sais vraiment pas quelle est votre préoccupation. Vous pouvez spécifier 'with_items:" {{variable}} "', vous le savez? – techraf

+0

donc, fondamentalement, ce ne sont que des fichiers vars mais placés dans un répertoire spécifique. et si je veux faire 'with_items' et utiliser la variable hôte je dois les appeler le même nom pour différents hôtes, et ils vont se développer en différentes valeurs? le problème est que je n'ai pas ces hôtes quand je démarre le playbook (le playbook les crée). Seront-ils en mesure d'obtenir ces vars? – 4c74356b41

0

J'ai allé un itinéraire légèrement différent, que je suis en train de garder les choses dynamiques:

J'ai une tâche add_host, qui effectue une itération sur une liste:

- add_host: 
    name: "{{ item }}" 
    ansible_ssh_user: "{{ item }}" 
    var: "{{ var[item] }}" 
    with_items: "{{ myList }}" 

De cette façon Je peux avoir un fichier vars séparé où je garde les configurations de mes hôtes définies comme variables:

var: 
    host1: 
    - xxx 
    - yyy 
    host2: 
    - zzz 
    - vvv