[英]Using ansible facts as lists
我正在調試一組將主機放入Rackspace負載均衡器的嵌套播放器。
- include create_servers.yml
...
- include add_to_load_balancers.yml
在第一個游戲中,我正在使用rax_clb
模塊創建服務器。 我們注冊變量rax
並使用其中的rax.success
列表將這些主機添加到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
在其他使用with_items
游戲中使用with_items
,它可以工作。 但是稍后,當我嘗試在rax_servers
中使用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
。 不過,我應該這樣做,因為這是我在上一劇中使用它的方式(並且它可以正常工作)。 所以我打印出rax_servers
:
TASK: [debug var=rax_servers] *************************************************
ok: [127.0.0.1] => {
"var": {
"rax_servers": "rax.success"
}
}
我顯然做錯了,但是從文檔中似乎無法弄清楚在存儲或引用此變量時我做錯了什么。 這兩部戲都是在本地主機上運行的,因此應該給我相同的列表,不是嗎?
感謝您與這個新手的交流,我們將不勝感激:)
它應該是:
- name: register rax.success as rax_servers for later use
set_fact:
rax_servers: "{{ rax.success }}"
在這種情況下,如果沒有大括號,“ rax.success”就是一個字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.