Ansible的官方文档说Windows并不是一个受支持的操作系统,但是,每天我都更确信你能让它正常工作。
服务器是一台CentOS 7机器。我可以从我的服务器建立到Windows机器的SSH连接,反之亦然。
这是我的Windows XP计算机的Ansible主机文件条目:
[winxp]
10.0.2.4
[winxp:vars]
ansible_user=nico
ansible_connection=ssh
ansible_port=22
这是执行ansible winxp -m win_ping
时的输出:
=> { “已更改”:false, "msg":“未能通过ssh连接到主机:--使用警告--这是一个专用计算机系统。该计算机系统,包括所有相关设备、网络和网络设备(特别包括因特网接入),仅供授权使用。可为所有合法目的对该计算机系统进行监测,包括确保授权使用该系统,以管理该系统,以便于防止未经授权的访问,并核查安全程序、生存性和操作安全。监视包括授权实体的主动攻击,以测试或验证该系统的安全性。在监测期间,可以检查、记录、复制和用于授权目的的信息。在本系统上放置或发送的所有信息,包括个人信息,都可能受到监视。该计算机系统的使用,无论是授权的还是未经授权的,都构成对该系统的监控的同意。未经授权的使用可能会使你受到刑事起诉。在监测期间收集到的未经授权使用的证据可用于行政、刑事或其他不利行动。使用此系统构成对这些purposes.权限被拒绝的监视(公开键、密码、键盘交互)的同意。
当"Failed to connect to the host via ssh:"
完全可以在Ansible之外完成时,它为什么要说它呢?
将这一行添加到主机文件不会改变任何事情:
ansible_ssh_server_cert_validation='ignore'
添加行ansible_password=xxxx
并执行相同的命令将显示以下输出:
10.0.2.4不可达的!=> { changed“changed”:false, 10.0.2.4“msg”:“未能通过ssh连接到主机", ”无法到达“:true }
有人知道吗?真的不可能吗?我是否需要在Windows机器上安装特定的python版本、powershell版本或任何其他版本?
编辑:解决此问题的方法
因此,正如在答案中提到的,Ansible不能在Windows上使用。然而,有一个解决办法。您可以使用sshpass创建在Windows计算机上运行命令的剧本,并在同一台Ansible计算机上运行该剧本。这是我用过的剧本:
---
- hosts: ansible_server
tasks:
- name: Test
shell: sshpass -p 'nico' ssh nico@10.0.2.4 "cmd.exe /c mkdir C:\it_works"
希望这能帮上忙
发布于 2021-05-26 18:44:47
即使您设法获得ssh成功连接,不需要PowerShell 3.0,它不工作的Windows。它需要2008/Vista或更高版本。你不需要再浪费时间去努力让它发挥作用。
https://serverfault.com/questions/1064774
复制相似问题