无法使用 win_ping ping 我的 Windows Server

pru*_*hvi 0 windows ansible ansible-inventory

当我尝试使用 ping 我的 Windows 实例时ansible windows -i hosts.ini -m win_ping,出现以下错误:

54.197.197.91 | UNREACHABLE! => {
"changed": false,
"msg": "plaintext: the specified credentials were rejected by the server",
"unreachable": true
}
Run Code Online (Sandbox Code Playgroud)

我的hosts.ini文件看起来像:

[windows]
54.197.197.91

[windows:vars]
ansible_ssh_user=Administrator
ansible_ssh_pass=MyPassword123!
ansible_ssh_port=5985
ansible_connection=winrm
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我这样做了:

ansible-vault create secret.yml
Run Code Online (Sandbox Code Playgroud)

并在那里输入我的密码,如下所示:

win_initial_password: MyPassword123!
Run Code Online (Sandbox Code Playgroud)

然后,我的hosts.ini文件看起来像:

[windows]
54.197.197.91

[windows:vars]
ansible_ssh_user=Administrator
ansible_ssh_pass={{ win_initial_password }}
ansible_ssh_port=5985
ansible_connection=winrm
Run Code Online (Sandbox Code Playgroud)

当我尝试 ping 时,出现以下错误:

54.197.197.91 | FAILED! => {
"failed": true,
"msg": "the field 'password' has an invalid value, which appears to include a variable that is undefined. The error was: 'win_initial_password' is undefined"
}
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

pru*_*hvi 5

我通过改变这些来解决它:

ansible_ssh_port=5986
ansible_winrm_server_cert_validation=ignore
Run Code Online (Sandbox Code Playgroud)

这奏效了。

  • 如果您愿意通过未加密的连接与远程节点连接,那么您的解决方案就很好。这有点像把你的车钥匙放在桌子或桌子上,希望没人拿走它们。或者您打算稍后添加加密? (2认同)

Dan*_*gan 5

由于我正在遵循与原始帖子类似的 Ansible 示例,因此接受的答案对我不起作用,以下内容使其正常工作

注意:这是以纯文本形式发送密码,因此请勿在生产中使用

在目标计算机上,使用管理员权限运行 powershell 并输入以下命令:

Set-Item -Path WSMan:\localhost\Service\Auth\Basic -Value $true winrm set winrm/config/service '@{AllowUnencrypted="true"}'

另请验证您的防火墙是否配置正确以允许必要的端口通过(TCP/5985、TCP/5986)

资料来源:

http://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html#authentication-options https://github.com/diyan/pywinrm/issues/114

  • 我用谷歌搜索了一个没有解决方案,直到我在这个问题的末尾找到你的答案!谢谢! (2认同)