Heisenbug: ansible.windows.win_user falha com "Tentativa de operação ilegal em uma chave de registro que foi marcada para exclusão."

Heisenbug: ansible.windows.win_user falha com "Tentativa de operação ilegal em uma chave de registro que foi marcada para exclusão."

Usando Packer para construir uma AMI baseada em Windows Server 2019 e Ansible como provisionador.

Esta é a provisionersparte do meu 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"]
        }
    ]

Este é meu 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

Posso confirmar isso pelo menos update_system.ymle install_dependencies.ymlexecutar com sucesso.

Este é meu create_user.yml:

---

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

.
.
.

Recebo um erro neste momento:

amazon-ebs: TAREFA [Garantir que o usuário jenkins esteja presente] ************************************** ****

amazon-ebs: fatal: [padrão]: INALECÁVEL! => {"changed": false, "msg": "basic: Tentativa de operação ilegal em uma chave de registro que foi marcada para exclusão. (dados de falha estendidos: {'transport_message': 'Resposta HTTP incorreta retornada do servidor. Código 500 ', 'http_status_code': 500, 'wsmanfault_code': '2147943418', 'fault_code': 's:Receiver', 'fault_subcode': 'w:InternalError'})", "inacessível": verdadeiro}

Pesquisar no Google "tentativa de operação ilegal ansible em uma chave de registro que foi marcada para exclusão" não rendeu nada de útil.

Ao escrever esta pergunta, tentei reproduzir o problema e, para obter resultados mais rápidos, mudei ansible_playbook.ymlde

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

para

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

então colocando create_user.ymlem primeiro lugar.

Resultado: o erro não pôde mais ser reproduzido.

Depois restaurei a configuração original e também não tive mais o erro.

Isso não faz nenhum sentido para mim e não confio nisso. Parece umHeisenbugpara mim.

O que é esse erro e como posso ter certeza absoluta de que ele não ocorrerá novamente?

@Ponto e vírgulaperguntado nos comentários sobre o conteúdo de update_system.ymle 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

informação relacionada