Как четко объяснено в вашем сообщении об ошибке
ОШИБКА! Обнаружен некорректный блок при загрузке tasks : {u'win_updates ': {u'blacklist': [u 'Windows Средство удаления вредоносных программ для Windows'], u areboot_timeout ': 600, u'category_names': [u'CriticalUpdates ', u'SecurityUpdates'], u areboot ': True}} должен быть списком или нет, но это
ansible-playbook
ожидает список в параметре tasks
вашей игры в вашей книге игр (в вашей игре обычно есть несколько задач).
Эта ошибка предотвращает либо вашей версии playbook для дальнейшего выполнения.
Что касается вашей второй версии playbook (кроме ошибки формата list / ha sh), ваши параметры reboot*
не имеют правильного отступа: они являются win_updates
опциями модуля , а не параметры уровня задачи (например, loop
, register
, when
, ...). Первая версия хорошая.
Это исправленная версия вашей пьесы (только синтаксис, не проверен), где:
- Я преобразовал
tasks
в список - Я добавил имя к вашей общей задаче:
---
- name: Install all windows security and critical updates and wait 10 mins
hosts: windowsservers
tasks:
- name: Install updates
win_updates:
category_names:
- CriticalUpdates
- SecurityUpdates
blacklist:
- Windows Malicious Software Removal Tool for Windows
reboot: yes
reboot_timeout: 600
Проверка синтаксиса:
С помощью вышеприведенной пьесы:
$ ansible-playbook playbook_bad.yml --syntax-check
ERROR! A malformed block was encountered while loading tasks: {'name': 'Install updates', 'win_updates': {'category_names': ['CriticalUpdates', 'SecurityUpdates'], 'blacklist': ['Windows Malicious Software Removal Tool for Windows'], 'reboot': True, 'reboot_timeout': 600}} should be a list or None but is <class 'ansible.parsing.yaml.objects.AnsibleMapping'>
The error appears to be in '/tmp/playbook_bad.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
---
- name: Install all windows security and critical updates and wait 10 mins
^ here
С предлагаемым исправлением:
$ ansible-playbook playbook.yml --syntax-check
[WARNING]: Could not match supplied host pattern, ignoring: windowsservers
playbook: playbook.yml
Предупреждение только потому, что у меня нет вашей машины / группы в моем инвентаре.