2017-07-11 2 views
0

J'ai trouvé une question similaire: Creating multiple times the same role, but with different items mais je ne sais pas comment l'utiliser avec la structure de répertoire group_vars.Ansible - Créer plusieurs fichiers de configuration en utilisant le même modèle dans un rôle

Ma question

Comment puis-je utiliser un rôle avec un modèle à l'intérieur de celui-ci pour créer plusieurs fichiers de configuration avec des noms différents et des valeurs? J'utilise aussi le répertoire group_vars qui existe au même niveau que le playbook que je cours avec les hôtes qu'il exécute.

Voici mon exemple actuel PlayBook

--- 
- hosts: emea-stg-web 
    vars_files: 
    - group_vars/ssh_user.yml 
    remote_user: "{{ ssh_user }}" 
    become_user: root 

    roles: 
    - nginx-install 
    - php5.6-install 

Comment puis-je avoir chaque « élément » dans un rôle utiliser des valeurs différentes variables. Comme une variable "nom" peut avoir ["test 1", "test 2", "test 3"] comme il itère à travers? Puis-je stocker ces valeurs dans un fichier?

--- 
- hosts: emea-stg-web 
    vars_files: 
    - group_vars/ssh_user.yml 
    remote_user: "{{ ssh_user }}" 
    become_user: root 

    roles: 
    - nginx-install 
     with_items: 
     - test1 
     - test2 
     - test3 
    - php5.6-install 
+0

Les fichiers Vars de 'group_vars' sont automatiquement inclus par appartenance à un groupe. Autre que cela (abus évident), votre question est complètement floue. – techraf

+0

que voulez-vous dire par "appartenance à un groupe"? – camdixon

+0

Ce que je veux faire est de créer plusieurs fichiers Nginx sur chaque hôte (dans mon système) pour différentes URL, et aussi avoir différents paramètres envoyés au fichier modèle. Votre supposition de moi n'ayant pas été sur les docs plusieurs fois est incorrecte. Cependant, avec cela étant dit, je vois votre point sur les groupes_vars ayant une appartenance au groupe correspondant que je crée. Je modifie à nouveau ma question pour éclaircir les éléments. – camdixon

Répondre

4

Jetez un oeil à la include_role module avec le paramètre vars_from:

tasks: 
    - include_role: 
     role: nginx-install 
     vars_from: "{{ item }}" 
    with_items: 
     - vars_file1 
     - vars_file2 

Et ne pas utiliser le répertoire group_vars pour stocker des fichiers arbitraires vars, il est destiné à stocker des fichiers vars pour les groupes hôtes.

+0

c'est techraf très utile. Je vous remercie. Où conseillez-vous de stocker mes fichiers arbitraires vars? Comme dans, qu'est-ce qui aurait un sens logique? – camdixon