2016-07-18 2 views
0

Je débogue un ensemble de lectures imbriquées qui place les hôtes dans un équilibreur de charge Rackspace.Utilisation des faits ansibles sous forme de listes

- include create_servers.yml 
... 
- include add_to_load_balancers.yml 

dans le premier jeu, j'utilise le module rax_clb pour créer les serveurs. Nous enregistrons la variable rax et utiliser la liste rax.success à l'intérieur pour ajouter ces hôtes à un groupe create_servers.yml:

- name: create instances on Rackspace 
    local_action: 
    module: rax 
    image: "{{ IMAGE }}" 
    flavor: "{{ FLAVOR }}" 
    wait: yes 
    count: "{{ COUNT }}" 
    ... 
    register: rax 


- name: some other play 
    local_action: 
    ... 
    with_items: rax.success 


- name: register rax.success as rax_servers for later use 
    set_fact: 
    rax_servers: rax.success 

Lorsque vous utilisez rax.success dans l'autre jeu en utilisant with_items, cela fonctionne. Mais plus tard, quand je tente d'utiliser rax_servers dans add_to_load_balancers.yml:

- name: place new hosts in the load balancer 
    rax_clb_nodes: 
    address={{ item.rax_accessipv4 }} 
    state=present 
    ... 
    with_items: rax_servers 

Je reçois une erreur qu'il n'y a pas rax_accessipv4 au point. Je devrais, cependant, puisque c'est ainsi que je l'utilise dans le jeu précédent (et cela fonctionne). Alors j'imprimer rax_servers:

TASK: [debug var=rax_servers] ************************************************* 
ok: [127.0.0.1] => { 
    "var": { 
     "rax_servers": "rax.success" 
    } 
} 

que je fais évidemment quelque chose de mal, mais je ne peux pas sembler figurer dehors de la documentation ce que je fais mal quand soit le stockage ou faisant référence à cette variable. Les deux jeux sont exécutés depuis et sur localhost, donc ça devrait me donner la même liste, non?

Merci pour supporter ce débutant, toute aide est appréciée :)

Répondre

0

Il devrait être:

- name: register rax.success as rax_servers for later use 
    set_fact: 
    rax_servers: "{{ rax.success }}" 

Sans doubles accolades dans ce cas, « rax.success » est juste une chaîne.

+0

Belle - cela doit être l'un de ces redoutés "guillemets ansible/jinja2" "Gotchas mon patron m'a prévenu. Je ferai plus de lecture. Fonctionne comme prévu. Merci un million! –