ansible远程windows

1、windows环境配置

系统:win10

ansible windows执行 ansible winrm_windows


欢迎运维萌新大佬等进qu,n,涵盖业务运维、应用运维、系统运维、网络运维、数据库运维、桌面运维、运维开发等,地区不限, 新群建立中,欢迎各位进qu,n交流业界知识~号:1027981908

winrm 版本 3.0

ansible windows执行 ansible winrm_linux_02


.Net 版本

ansible windows执行 ansible winrm_windows_03


证书的配置不做,复杂,这里仅测试http协议的

ansible windows执行 ansible winrm_linux_04

powershell 版本

$PSVersionTable.PSVersion.Major。

最好3以上可指定版本运行

将powershell策略置为remotesigned

查看当前策略: get-executionpolicy

更改策略:set-executionpolicy remotesigned

上述操作需要管理员权限

(cmd 以管理员身份打开)

ansible windows执行 ansible winrm_运维_05

ansible windows执行 ansible winrm_ansible windows执行_06

winrm /? 查看命令帮助

ansible windows执行 ansible winrm_运维_07

我本机防火墙已关闭,不关闭可以添加入站规则(开放5985端口)

winrm service 默认都是未启用的状态,先查看状态;如无返回信息,则是没有启动;

winrm enumerate winrm/config/listener

或者

winrm e winrm/config/listener

ansible windows执行 ansible winrm_运维_08


winrm quickconfig 可以快速配置

ansible windows执行 ansible winrm_运维_09


为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执行 ansible winrm_ansible windows执行_10


这边去linux机器上测试,telnet端口是通的

ansible windows执行 ansible winrm_linux_11


如果以上操作都正常。现在最终还是在Linux来测试方可判断。在Linux中使用ansible windows -m win_ping 如果成功,则才能说明windows环境已经配好。

2、补充说明

windows python版本

ansible windows执行 ansible winrm_运维_12

ansible windows执行 ansible winrm_ansible windows执行_13


pip安装pywinrm

ansible windows执行 ansible winrm_环境变量_14

ansible windows执行 ansible winrm_windows_15


报超时错误,这个可能跟证书配置有关,偶尔网络超时,这个重试就行。

ansible windows执行 ansible winrm_ansible windows执行_16


成功

3、尝试第一次ansible ping windows

ansible windows执行 ansible winrm_ansible windows执行_17


报错如上,这个很有可能是linux本机未安装pywinrm或者ansible不支持。

yum 安装的ansible缺少xmltodict,需要安装upgrade_to_ps3.ps1之后,更新(未测试过);

这边用的方法是卸载ansible(备份/etc/ansible/hosts,卸载貌似也会自动备份)

ansible windows执行 ansible winrm_运维_18


安装pywinrm

ansible windows执行 ansible winrm_ansible windows执行_19


安装ansible

ansible windows执行 ansible winrm_ansible windows执行_20

ansible windows执行 ansible winrm_运维_21

已经安装,看版本报如下错误,重新安装显示已安装,原因是环境变量没有更新

ansible windows执行 ansible winrm_环境变量_22


重新更新环境变量

ansible windows执行 ansible winrm_linux_23


再测试一下,报如下错误

ansible windows执行 ansible winrm_linux_24

上面错误可能是未配置账户密码,或者账户密码错误,更改如下配置

[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_环境变量_25

上述错误跟如下参数配置有关,加上即可

ansible_winrm_transport=ntlm

重新测试,成功

ansible windows执行 ansible winrm_ansible windows执行_26