簡體   English   中英

使用不可理解的事實作為列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM