Мои задачи:
- name: Init a new swarm with default parameters
docker_swarm:
state: present
advertise_addr: "{{ manager_ip }}:2377"
register: rezult
when: "ansible_default_ipv4.address == '{{ manager_ip }}'"
- debug:
msg: '{{ rezult.swarm_facts.JoinTokens.Worker }}'
when: "ansible_default_ipv4.address == '{{ manager_ip }}'"
Теперь это работает нормально, но если я хочу запустить его на другом сервере (! =) С:
- debug:
msg: '{{ rezult.swarm_facts.JoinTokens.Worker }}'
when: "ansible_default_ipv4.address != '{{ manager_ip }}'"
, я получаю:
FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'swarm_facts'\n\nThe error appears to be in '/home/ansible/docker-ansible/docker.yml': line 42, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - debug:\n ^ here\n"}
Я не понимаю. Это как ANSIBLE забывает значение зарегистрированной переменной под названием «rezult» при запуске на другом сервере, даже если я зарегистрировал его, и оно должно иметь фиксированное значение.