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 或更高版本。您无需再浪费时间尝试使其工作。