Heisenbug:ansible.windows.win_user 失敗,並顯示「嘗試對已標記為已刪除的登錄項目進行非法操作」。

Heisenbug:ansible.windows.win_user 失敗,並顯示「嘗試對已標記為已刪除的登錄項目進行非法操作」。

使用 Packer 建立基於 Windows Server 2019 的 AMI,並使用 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.ymlinstall_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:致命:[預設]:無法存取! => {“changed”:false,“msg”:“basic:嘗試對已標記為刪除的註冊表項進行非法操作。(擴展故障資料:{'transport_message':'從伺服器傳回錯誤的HTTP回應。 500 ', 'http_status_code': 500, 'wsmanfault_code': '2147943418', 'fault_code': 's:Receiver', 'fault_subcode': 'w:InternalError'})", "無法存取": true}

谷歌搜尋「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

相關內容