为什么我的 Ansible 服务器无法与我的 Windows XP 机器通信?

为什么我的 Ansible 服务器无法与我的 Windows XP 机器通信?

Ansible 的官方文档说 Windows XP 不是一个受支持的操作系统,然而,随着时间的推移,我更加确信你可以让它工作。

该服务器是 CentOS 7 机器。我可以从我的服务器建立到 Windows XP 机器的 SSH 连接,反之亦然。

这是我的 Windows XP 机器的 Ansible hosts 文件条目:

[winxp]
10.0.2.4

[winxp:vars]
ansible_user=nico
ansible_connection=ssh
ansible_port=22

这是执行时的输出ansible winxp -m win_ping

10.0.2.4 | 无法访问! => {
      “已更改”:false,
      “msg”:“无法通过 ssh 连接到主机:----使用警告---- 这是一个私人计算机系统。此计算机系统,包括所有相关设备、网络和网络设备(具体包括互联网访问)仅供授权使用。此计算机系统可出于所有合法目的进行监控,包括确保其使用得到授权、管理系统、促进防止未经授权的访问以及验证安全程序、生存能力和操作安全性。监控包括授权实体为测试或验证此系统的安全性而进行的主动攻击。在监控期间,信息可能会被检查、记录、复制和用于授权目的。通过此系统放置或发送的所有信息(包括个人信息)都可能受到监控。使用此计算机系统(无论授权与否)即表示同意监控此系统。未经授权的使用可能会使您受到刑事起诉。监控期间收集的未经授权使用的证据可能用于行政、刑事或其他不利行动。使用此系统即表示同意出于这些目的进行监控。
      权限被拒绝(公钥、密码、键盘交互)。”,“无法访问”:true }

为什么它会这么说,"Failed to connect to the host via ssh:"但它可以在 Ansible 之外完美地做到这一点?

将此行添加到 hosts 文件不会改变任何内容:

ansible_ssh_server_cert_validation='ignore'

添加该行ansible_password=xxxx并执行相同的命令将显示以下输出:

10.0.2.4 | UNREACHABLE! => {
    "changed": false,
    "msg": "无法通过 ssh 连接到主机:",
    "unreachable": true
}

有人知道吗?真的不可能吗?我是否需要在 Windows XP 计算机上安装特定的 python 版本、powershell 版本或其他任何内容?

编辑:解决此问题的办法
因此,正如答案中提到的,Ansible 不能在 Windows XP 上使用。但是,有一个解决方法。您可以创建一个使用 sshpass 在 Windows XP 机器上运行命令的剧本,并在同一台 Ansible 机器上运行该剧本。这是我使用的剧本:

---
- hosts: ansible_server
  tasks:
    - name: Test
      shell: sshpass -p 'nico' ssh [email protected] "cmd.exe /c mkdir C:\it_works"

希望这可以帮助别人

答案1

即使你设法成功连接 ssh,Ansible 需要 PowerShell 3.0,它不适用于 Windows XP。它需要 2008/Vista 或更高版本。您无需再浪费时间尝试使其工作。

相关内容