2017-02-08 2 views
0

У меня есть playbook, который имеет несколько ролей и последовательную настройку, так что кулак работает на одной машине, а затем на остальных. В одной из ролей у меня есть следующие задачи:Проблемы, связанные с связанным циклом

- name: getting dbnodes IP addresses 
    local_action: shell echo "{% for host in groups['dbnodes'] %}{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }},{% endfor %}" 
    run_once: true 
    register: IPS 

В основном то, что я хочу сделать, это собрать IP-адреса всех хостов и зарегистрировать его с IPS для дальнейшего использования. Но задача не работает из-за серийного (я думаю) со следующей ошибки.

TASK [dbcluster : getting dbnodes IP addresses] ******************************** fatal: [162.220.52.190]: FAILED! => {"failed": true, "msg": "the field 'action' has an invalid value, which appears to include a variable that is undefined. The error was: 'dict object' has no attribute 'ansible_eth0'\n\nThe error appears to have been in '/root/tenon-delivery/ansible/roles/dbcluster/tasks/main.yml': line 52, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: getting dbnodes IP addresses\n^here\n"}

Во время работы ansible dbnode -s setup я могу видеть, что ansible_eth0 имеет собственное значение. Я не понимаю, почему он говорит, что он не определен.

Любая идея, как собрать факты на всех машинах в одно и то же время, все еще имея возможность выполнять несколько задач/обработчиков, которые все еще выполняются сериализованными.

ответ

0

ansible_eth0 факт может быть неизвестен во время выполнения вашей задачи.

Вы можете добавить факт сбора игру в самой верхней части сборника пьес:

- hosts: dbnodes 
    gather_facts: yes 
    tasks: 
    - debug: msg="facts gathering" 

- hosts: othernodes 
    tasks: 
    - name: getting dbnodes IP addresses 
     ... 
+0

обновил вопрос, как я получил больше информации – zozo6015

+0

Ваших слов о серийных пробегах ничего не изменятся. Сделайте отдельную игру, чтобы собрать все факты, а затем сделать все остальное. –

+0

на самом деле это меняет причину, если я отключу серию, тогда сбор фактов работает. Вопрос в этом случае заключается в том, как использовать вариационный набор в одном учебнике для другого. – zozo6015

 Смежные вопросы

  • Нет связанных вопросов^_^