
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.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: 致命的: [default]: 到達不能! => {"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}
「ansible 削除対象としてマークされているレジストリ キーに対して不正な操作が試行されました」と Google 検索しても、役に立つ情報は何も得られませんでした。
この質問を書いている間に、問題を再現しようとしましたが、より早く結果を得るために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