Я отлаживаю набор вложенных игр, которые помещают хосты в балансировщик нагрузки 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
При использовании rax.success в другой игре, используя with_items
, он работает. Но позже, когда я пытаюсь использовать rax_servers
в 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
Я получаю сообщение об ошибке, что не существует в пункте нет rax_accessipv4
. Я должен, однако, так как это то, как я использую его в предыдущей игре (и это работает). Так я распечатать rax_servers
:
TASK: [debug var=rax_servers] *************************************************
ok: [127.0.0.1] => {
"var": {
"rax_servers": "rax.success"
}
}
Я, очевидно, делает что-то неправильно, но я не могу показаться, чтобы выяснить из документации, что я делаю неправильно, когда либо хранение или ссылки на эту переменную. Обе пьесы запускаются с локального и на локальном хосте, поэтому он должен давать мне тот же список, нет?
Спасибо за подшипник с этим новичком, любая помощь приветствуется :)
Красивые - это, должно быть, одна из тех страшных «кавычек« ansible/jinja2 », которые мой босс предупредил меня. Сделаем еще немного чтения. Работает по назначению. Бесконечно благодарен! –