1

当我尝试使用 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
}

我的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"
}

我哪里错了?

4

6 回答 6

6

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

ansible_ssh_port=5986
ansible_winrm_server_cert_validation=ignore

这行得通。

于 2016-08-21T11:17:07.353 回答
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

于 2018-05-15T17:39:30.480 回答
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到管理员组,问题得到解决。

于 2019-06-09T20:12:32.430 回答
0

对我来说仍然是个问题。我的解决方案是从头开始重新安装python-pip相关的软件包。winrm我不得不使用官方Ansible 文档。根据文档:

  1. apt-get install python-pip git libffi-dev libssl-dev -y
  2. pip install ansible pywinrm
  3. Windows 的端口号是5986,所以你的 var 配置应该是ansible_ssh_port: 5986
于 2017-11-07T21:05:06.620 回答
0

Windows:
我在 Windows 中安装了 UBUNTU18-LTE,但遇到了很多问题。所以分享我遇到同样错误的经验。希望这会有所帮助。

用户必须是本地用户。伙计们记住用户(ansible)必须是本地(主机 - 192.168.11.22)管理员用户,否则不使用以下过程。

  1. 主机文件示例。
    cat /etc/ansible/hosts
    [win]
    192.168.11.22

    [win:vars]
    ansible_connection=
    winrm ansible_user = ansible # 主机本地管理员用户 192.168.11.22
    ansible_password=ansible123
    ansible_winrm_server_cert_validation=ignore
    ansible_winrm_trasport=basic
    ansible_port=5985 #

  2. 在主机 PowerShell windows 上运行以下命令。
    winrm configsddl default #赋予ansible用户权限

  3. 后步骤 2 配置在主机 PowerShell 上执行以下 2 个命令。
    winrm 设置 winrm/config/service/auth '@{Basic="true"}'
    winrm 设置 winrm/config/service '@{AllowUnencrypted="true"}'

  4. 其他用于测试 winrm 连接的完整 PowerShell 命令。

    1. winrm 枚举 winrm/config/Listener。
    2. winrm 获取 winrm/配置
    3. WinRM quickconfig #检查winrm服务是否运行
    4. winrs -r:http://hostservername:5985/wsman -u:RDPusername -p:RDPpassword ipconfig/all
于 2021-08-17T09:53:31.923 回答
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
于 2021-04-05T18:29:36.180 回答