2017-05-02 2 views
-1

J'ai Ansible Playbook que je veux utiliser comme Playbook générique (choroniquement même pour tous). Y a-t-il un moyen de créer une liste dans la section vars inside: et de l'itérer dans PlayBook? Alors que je vais juste et modifier ma section vars ou fichier var.ymlListe dans la variable Ansible

PFB la partie de mon livre de jeu désiré

- name: Test playbook 
    hosts: all 
    remote_user: root 

    vars: 
    list_dict3: 
     - packages: [ 'python-setuptools','python-dev','libfuzzy-dev','libffi-dev','screen'] 

    tasks: 
    - name: Accessing list of dictionary 
     apt: pkg={{item.packages}} state=present 
     with_items: list_dict3 
+0

Vous devriez être plus précis. Qu'est-ce que * list * ici? Qu'est-ce que * dict * ici? Qu'est-ce que * liste de dictionnaire * ici? Pas sûr de ce que tu veux vraiment. –

+0

Les paquets Variable : ['python-setuptools', 'python-dev', 'libfuzzy-dev', 'libffi-dev', 'screen'] est la liste (comme les listes en python), Excuses à propos de confus dict3 mot que cela ne devrait pas avoir d'impact Ce que je veux, c'est une variable qui contient la liste des applications et la parcourir dans le module apt. –

Répondre

0

Je ne sais pas ce que vous voulez vraiment, parce que votre structure de variable est très étrange, mais Rendez votre tâche apt correcte, vous devez écrire:

- name: Accessing list of dictionary 
    apt: 
    name: "{{ item }}" 
    state: present 
    with_items: "{{ list_dict3[0].packages }}" 
+0

Je veux dire qu'il doit exécuter la boucle with_items et itérer sur "paquets" liste comme en python paquets = [ 'python-setuptools', 'python-dev', 'libfuzzy-dev', 'libffi-dev', 'screen'] pour pkg dans les paquets: os.system ('apt-get install {}'. format (pkg)) –