Я пытаюсь разработать простую книгу (которая позже будет использоваться в более крупных), чтобы проверить, работают ли виртуальные машины Windows в инвентаре. Я использую Ansible Tower (бесплатная версия) для управления динамической инвентаризацией VMware, содержащей виртуальные машины Windows. Эти виртуальные машины предварительно настроены для работы с Ansible (включение Winrm и т. Д.). Поэтому я не поддерживаю файлы хостов, редактируемые вручную.
- name: Check if VMs are up and running
hosts: localhost
tasks:
- name: Pauses the workflow
pause: minutes=5
- name: Wait for port number 5986 to be available
vars:
- vmname: ['VM-NO1', 'VM-NO2']
local_action: wait_for host={{ hostvars[item].ansible_ssh_host }} state=started delay=10 timeout=15 connect_timeout=15
with_items: "{{ vmname }}"
У меня есть пауза, чтобы предоставить некоторое время для загрузки виртуальной машины; я пробовал время от 1 до 5 минут. На самом деле виртуальные машины появляются менее чем за 3 минуты.
Я столкнулся со странной проблемой с w.r.t. wait_for
. Пока виртуальные машины запущены и работают, как видно из консоли vCenter, Ansible сообщает об этой ошибке:
фатальный: [localhost]: НЕ ВЫПОЛНЕНО! => {"failed": true, "msg": "поле 'args' имеет недопустимое значение, которое, похоже, включает переменную, которая не определена. Ошибка была: 'dict object' не имеет атрибута 'ansible_ssh_host' \ n \ nОшибка, по всей видимости, была в '/var/lib/awx/projects/vms/waitcheck.yml': строка 10, столбец 7, но может \ nбыть в другом месте файла в зависимости от точной синтаксической проблемы. \ n \ n оскорбительная строка выглядит следующим образом: \ n \ n \ n - имя: Подождите, пока не станет доступен порт номер 5986 \ n ^ здесь \ n "}
Я добавил и удалил port=5986
флаг в wait_for
раздел. Удивительно, та же книга запускается и сообщает об успехе при повторном запуске. Как я могу это решить?
Ansible 2.3
tasks:
- name: Pauses the workflow
pause: minutes=5
- name: Wait for port number 5986 to be available
wait_for:
host: {{ hostvars[item]['ansible_host'] }}
port: 5986
delay: 10
state: started
with_items:
- VM-NO1
- VM-NO2
delegate_to: 127.0.0.1