Ansible win_update проблема - при загрузке задач обнаружен некорректный блок - PullRequest
2 голосов
/ 14 января 2020

Я попытался использовать любой из следующих windows обновлений playbooks и получил ту же ошибку при запуске.

---
- name: Install all windows security and critical updates and wait 10 mins
  hosts: windowsservers
  tasks:
    win_updates:
      category_names:
        - CriticalUpdates
        - SecurityUpdates
      blacklist:
        - Windows Malicious Software Removal Tool for Windows
      reboot: yes
      reboot_timeout: 600

---
- name: Install all windows security and critical updates and wait 10 mins
  hosts: windowsservers
  tasks:
    win_updates:
      category_names:
        - CriticalUpdates
        - SecurityUpdates
      blacklist:
        - Windows Malicious Software Removal Tool for Windows
    reboot: yes
    reboot_timeout: 600

Ниже приведено сообщение об ошибке, которое я получаю при попытке выполнить любой из вышеперечисленных сборников. Я искал везде, но не смог найти ни одной связанной проблемы. Может кто-то, эксперт в Ansible, пожалуйста, помогите?

ERROR! A malformed block was encountered while loading tasks: {u'win_updates': {u'blacklist': [u'Windows Malicious Software Removal Tool for Windows'], u'reboot_timeout': 600, u'category_names': [u'CriticalUpdates', u'SecurityUpdates'], u'reboot': True}} should be a list or None but is <class 'ansible.parsing.yaml.objects.AnsibleMapping'>

The error appears to be in '/home/username/ansible/playbooks/windowsupdate/install_windows_secupdate.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

Ниже приводится то, что я использую в качестве справочной статьи.

https://docs.ansible.com/ansible/latest/modules/win_updates_module.html
https://www.ansible.com/blog/windows-updates-and-ansible

1 Ответ

0 голосов
/ 14 января 2020

Как четко объяснено в вашем сообщении об ошибке

ОШИБКА! Обнаружен некорректный блок при загрузке 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

Предупреждение только потому, что у меня нет вашей машины / группы в моем инвентаре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...