Heisenbug: ansible.windows.win_user завершается с ошибкой «Попытка выполнить недопустимую операцию с разделом реестра, помеченным для удаления».

Heisenbug: ansible.windows.win_user завершается с ошибкой «Попытка выполнить недопустимую операцию с разделом реестра, помеченным для удаления».

Использование Packer для создания AMI на базе Windows Server 2019 и Ansible в качестве поставщика.

Это provisionersчасть моего packer-build.json:

    "provisioners": [
        {
            "type": "ansible",
            "playbook_file": "./provisioners/ansible/ansible_playbook.yml",
            "user": "Administrator",
            "use_proxy": false,
            "extra_arguments": ["-e", "ansible_winrm_server_cert_validation=ignore"]
        }
    ]

Это мое ansible_playbook.yml:

---
- name: Jenkins node playbook
  hosts: all
  tasks:
    - include_tasks: update_system.yml
    - include_tasks: install_dependencies.yml
    - include_tasks: create_user.yml

По крайней мере, я могу это подтвердить update_system.ymlи install_dependencies.ymlэто работает успешно.

Это мое create_user.yml:

---

- name: Ensure user jenkins is present
  ansible.windows.win_user:
    name: jenkins
    password: ***REDACTED***
    state: present
    groups:
      - Users

.
.
.

В этот момент я получаю сообщение об ошибке:

amazon-ebs: ЗАДАЧА [Убедиться, что пользователь jenkins присутствует] ********************************************

amazon-ebs: fatal: [default]: UNREACHABLE! => {"changed": false, "msg": "basic: Попытка выполнения недопустимой операции с разделом реестра, который был помечен для удаления. (расширенные данные об ошибке: {'transport_message': 'От сервера возвращен неверный HTTP-ответ. Код 500', 'http_status_code': 500, 'wsmanfault_code': '2147943418', 'fault_code': 's:Receiver', 'fault_subcode': 'w:InternalError'})", "unreachable": true}

Поиск в Google по запросу «ansible Попытка выполнения недопустимой операции с разделом реестра, помеченным для удаления» ничего полезного не дал.

При написании этого вопроса я попытался воспроизвести проблему и, чтобы получить более быстрые результаты, я изменил ansible_playbook.ymlс

---
- name: Jenkins node playbook
  hosts: all
  tasks:
    - include_tasks: update_system.yml
    - include_tasks: install_dependencies.yml
    - include_tasks: create_user.yml

к

---
- name: Jenkins node playbook
  hosts: all
  tasks:
    - include_tasks: create_user.yml
    - include_tasks: update_system.yml
    - include_tasks: install_dependencies.yml

поэтому ставим create_user.ymlна первое место.

Результат: ошибка больше не может быть воспроизведена.

Затем я восстановил исходную конфигурацию, и ошибка также больше не возникала.

Для меня это вообще не имеет никакого смысла, и я этому не доверяю. Звучит какГейзенбагмне.

Что это за ошибка и как я могу быть абсолютно уверен, что она не повторится?

@Точка с запятойв комментариях спрашивали о содержании update_system.ymlи install_dependencies.yml.

---

- name: Install all critical and security updates
  win_updates:
    category_names:
      - CriticalUpdates
      - SecurityUpdates
    state: installed
  register: update_result

- name: Reboot host if required
  win_reboot:
  when: update_result.reboot_required
---

- name: Install AWS CLI
  win_shell: Import-Module AWSPowerShell

- name: install the Win32-OpenSSH service
  win_chocolatey:
    name: openssh
    package_params: /SSHServerFeature
    state: present

- name: Install required software
  win_chocolatey:
    name: '{{ item }}'
    state: present
  loop:
    - openjdk11
    - maven
    - git
    - ghostscript
    - imagemagick
    - nodejs
    - nuget.commandline
    - visualstudio2017buildtools

Связанный контент