Heisenbug: ansible.windows.win_user schlägt mit „Unzulässiger Vorgang an einem Registrierungsschlüssel versucht, der zum Löschen markiert wurde.“ fehl.

Heisenbug: ansible.windows.win_user schlägt mit „Unzulässiger Vorgang an einem Registrierungsschlüssel versucht, der zum Löschen markiert wurde.“ fehl.

Verwenden von Packer zum Erstellen eines AMI basierend auf Windows Server 2019 und Ansible als Provisioner.

Dies ist der provisionersTeil von mir 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"]
        }
    ]

Das ist mein 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

Das kann ich zumindest bestätigen update_system.ymlund install_dependencies.ymlerfolgreich ausführen.

Das ist mein create_user.yml:

---

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

.
.
.

An dieser Stelle erhalte ich eine Fehlermeldung:

amazon-ebs: TASK [Sicherstellen, dass Benutzer Jenkins anwesend ist] ******************************************

amazon-ebs: fatal: [default]: UNREACHABLE! => {"changed": false, "msg": "basic: Unzulässiger Vorgang an einem Registrierungsschlüssel, der zum Löschen markiert wurde. (erweiterte Fehlerdaten: {'transport_message': 'Ungültige HTTP-Antwort vom Server zurückgegeben. Code 500', 'http_status_code': 500, 'wsmanfault_code': '2147943418', 'fault_code': 's:Receiver', 'fault_subcode': 'w:InternalError'})", "unreachable": true}

Die Google-Suche nach „Ansible: Unzulässiger Vorgang an einem zum Löschen markierten Registrierungsschlüssel versucht“ hat nichts Nützliches ergeben.

Beim Schreiben dieser Frage habe ich versucht, das Problem zu reproduzieren. Um schnellere Ergebnisse zu erzielen, habe ich ansible_playbook.ymlFolgendes geändert:

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

Zu

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

also create_user.ymlan erster Stelle setzen.

Ergebnis: Der Fehler war nicht mehr reproduzierbar.

Anschließend habe ich die ursprüngliche Konfiguration wiederhergestellt und auch bei mir trat der Fehler nicht mehr auf.

Das ergibt für mich überhaupt keinen Sinn und ich vertraue dem nicht. Klingt wie einHeisenbugmir.

Was ist das für ein Fehler und wie kann ich absolut sichergehen, dass er nicht noch einmal auftritt?

@Semikolonfragte in den Kommentaren nach dem Inhalt von update_system.ymlund 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

verwandte Informationen