当我尝试使用ansible windows -i hosts.ini -m win_ping
ping我的Windows实例时,出现以下错误:
54.197.197.91 | UNREACHABLE! => {
"changed": false,
"msg": "plaintext: the specified credentials were rejected by the server",
"unreachable": true
}
我的hosts.ini
文件如下:
[windows]
54.197.197.91
[windows:vars]
ansible_ssh_user=Administrator
ansible_ssh_pass=MyPassword123!
ansible_ssh_port=5985
ansible_connection=winrm
要解决这个问题,我已经这样做了:
ansible-vault create secret.yml
并输入我的密码:
win_initial_password: MyPassword123!
然后,我的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
当我尝试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"
}
我哪里错了?
答案 0 :(得分:3)
我通过改变这些来解决它:
ansible_ssh_port=5986
ansible_winrm_server_cert_validation=ignore
这很有用。
答案 1 :(得分:2)
当我按照类似于原始帖子的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 :(得分:0)
对我来说仍然是一个问题。我的解决方案是从头开始重新安装与python-pip
相关的winrm
个包。我不得不使用官方Ansible documentation。根据文件:
apt-get install python-pip git libffi-dev libssl-dev -y
pip install ansible pywinrm
ansible_ssh_port: 5986
答案 3 :(得分:0)
即使将“ AllowUnencrypted”设置为true,我也遇到了同样的问题。我发现win_ping正在为已添加到管理员组的IEUser
工作,但失败了
windows-server | UNREACHABLE! => {
"changed": false,
"msg": "plaintext: the specified credentials were rejected by the server",
"unreachable": true
}
针对不在管理员组中的test-user
。
所以我将test-user
添加到了管理员组,问题得到解决。
答案 4 :(得分:0)
我在谷歌上搜索了很多,最后下面的配置对我有用。我已将 ntlm 添加到我的配置文件中。
ansible_user: user@DOMAIN.COM
ansible_password: password
ansible_connection: winrm
ansible_ssh_port: 5986
ansible_winrm_transport: ntlm
ansible_winrm_server_cert_validation: ignore