我过去常常使用 Active Directory 服务帐户处理 Windows 环境的许多工作项目,并使用 Hashicorp Vault 进行加密。项目从 Debian 11 服务器启动到许多 Windows Server 目标(主要是 OS Server 2019-2022)
目前,当我想将通常从我的 Debian 服务器启动的 Ansible 项目迁移到 AWX 时,我遇到了两者上都发生的错误。
我的简单测试执行以下操作:
---
# --------------
- name: test-webrequest-win
hosts: all
vars_files:
- vars.yml
tasks:
- name: Test win_ping
ansible.windows.win_ping:
- name: Test Sleep 10 sec
ansible.builtin.wait_for:
timeout: 10
delegate_to: localhost
- name: Test check webrequest
ansible.builtin.uri:
url: http://{{inventory_hostname}}:6666/
return_content: yes
delegate_to: localhost
我的 vars.yml 配置如下:
---
ansible_user: "{{ vault.ansible_account }}"
ansible_password: "{{ vault.ansible_password }}"
#### Configuration Ansible WinRM
ansible_connection: winrm
ansible_port: 5985
ansible_winrm_transport: kerberos
这是我的问题,正如你在下面看到的,win_ping(或者实际上是每个 windows 任务)运行良好,但最大的惊喜是关于 ansible.builtin.wait_for 模块
PLAY [test-webrequest-win] ************************************************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************************************************jeudi 08 février 2024 15:55:34 +0100 (0:00:00.014) 0:00:00.014 *********
ok: [10.10.10.10]
ok: [my-server.ansible.com]
TASK [test win_ping] ******************************************************************************************************************************************************************************************jeudi 08 février 2024 15:55:38 +0100 (0:00:04.082) 0:00:04.097 *********
ok: [my-server.ansible.com]
ok: [10.10.10.10]
TASK [Test sleep 10 sec] **************************************************************************************************************************************************************************************jeudi 08 février 2024 15:55:40 +0100 (0:00:02.538) 0:00:06.635 *********
fatal: [10.10.10.10 -> localhost]: UNREACHABLE! => {"changed": false, "msg": "kerberos: authGSSClientStep() failed: (('Unspecified GSS failure. Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))", "unreachable": true}
fatal: [my-server.ansible.com -> localhost]: UNREACHABLE! => {"changed": false, "msg": "kerberos: authGSSClientStep() failed: (('Unspecified GSS failure. Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))", "unreachable": true}
我使用很多主机进行测试,以检查 AD 部分是否有问题,但收集事实和测试 win_ping 一切正常,无论我使用 FQDN(建议)还是 IP(在我的情况下仅用于测试)
有什么建议吗?:)
盖尔
答案1
最终找到了一个“适合”Windows 目标的解决方案。
我必须使用ansible.windows.win_wait_for
模块,因此无需委托给我的本地主机。