ansible远程windows

ansible远程windows

1、windows环境配置

系统:win10
ansible远程windows
winrm 版本 3.0
ansible远程windows
.Net 版本
ansible远程windows
证书的配置不做,复杂,这里仅测试http协议的
ansible远程windows

powershell 版本
$PSVersionTable.PSVersion.Major。
最好3以上可指定版本运行
将powershell策略置为remotesigned
查看当前策略: get-executionpolicy
更改策略:set-executionpolicy remotesigned
上述操作需要管理员权限
(cmd 以管理员身份打开)
ansible远程windowsansible远程windows

winrm /? 查看命令帮助
ansible远程windows

我本机防火墙已关闭,不关闭可以添加入站规则(开放5985端口)
winrm service 默认都是未启用的状态,先查看状态;如无返回信息,则是没有启动;
winrm enumerate winrm/config/listener
或者
winrm e winrm/config/listener
ansible远程windows
winrm quickconfig 可以快速配置
ansible远程windows
为winrm service 配置auth:
winrm set winrm/config/service/auth ‘@{Basic=“true”}’
为winrm service 配置加密方式为允许非加密:,这个命令要是没实现,暂时放一边,反正最后也能实现远程调用
winrm set winrm/config/service ‘@{AllowUnencrypted=“true”}’
这边开放了我测试机(linux redhat6.5 远程访问)
ansible远程windows
这边去linux机器上测试,telnet端口是通的
ansible远程windows
如果以上操作都正常。现在最终还是在Linux来测试方可判断。在Linux中使用ansible windows -m win_ping 如果成功,则才能说明windows环境已经配好。

2、补充说明

windows python版本
ansible远程windowsansible远程windows
pip安装pywinrm
ansible远程windowsansible远程windows
报超时错误,这个可能跟证书配置有关,偶尔网络超时,这个重试就行。
ansible远程windows
成功

3、尝试第一次ansible ping windows

ansible远程windows
报错如上,这个很有可能是linux本机未安装pywinrm或者ansible不支持。
yum 安装的ansible缺少xmltodict,需要安装upgrade_to_ps3.ps1之后,更新(未测试过);
这边用的方法是卸载ansible(备份/etc/ansible/hosts,卸载貌似也会自动备份)
ansible远程windows
安装pywinrm
ansible远程windows
安装ansible
ansible远程windowsansible远程windows

已经安装,看版本报如下错误,重新安装显示已安装,原因是环境变量没有更新
ansible远程windows
重新更新环境变量
ansible远程windows
再测试一下,报如下错误
ansible远程windows

上面错误可能是未配置账户密码,或者账户密码错误,更改如下配置
[windows]
19.19.19.26 ansible_ssh_user=“xxxxxx” ansible_ssh_pass=“xxxxxx” ansible_ssh_port=5985 ansible_connection=winrm ansible_winrm_server_cert_validation=ignore
ansible远程windows

上述错误跟如下参数配置有关,加上即可
ansible_winrm_transport=ntlm
重新测试,成功
ansible远程windows