2016-07-18 3 views
0

私はRackspaceロードバランサにホストを置く一連のネストされたプレイをデバッグしています。可能なファクトをリストとして使用

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

最初の試合では、rax_clbモジュールを使用してサーバーを作成しています。私たちは、変数raxを登録し、create_servers.ymlにグループにこれらのホストを追加するために、その中にrax.successリストを使用します。

- 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 

with_itemsを使用して他の遊びの中にrax.successを使用して、それが動作します。しかし、その後、私はadd_to_load_balancers.ymlでrax_serversを使用しようとすると、上:

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

私は項目にはrax_accessipv4がないというエラーが発生します。しかし、これは私が以前の演劇でそれを使う方法ですから(それはうまくいきます)、私はすべきです。私は明らかに間違って何かをやっている

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

を、私はどちらか保存するか、この変数を参照するときに私が間違っているのどのようなドキュメントから見つけ出すように見えることはできません。だから私はrax_serversをプリントアウトします。両方の演劇はlocalhostとの間で実行されるので、私に同じリストを与えるべきでしょうか?この初心者でベアリング用

おかげでは、任意のヘルプは高く評価され:)

答えて

0

それは次のようになります。

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

この場合は二重の中括弧がなければ、「rax.successはただの文字列です。

+0

美しい - これは私の上司が私に警告した恐ろしい "ansible/jinja2引用符" gotchasの1つでなければなりません。もう少し読書をします。 意図したとおりに動作します。感謝万円! –

関連する問題