ansible管控windows机器报错(修改WinRM端口后报SSL错误:UNKNOWN_PROTOCOL)

修改WinRM服务监听端口

①. WinRM 2.0 版本以下,WinRM的监听端口为 80(HTTP) 或 443(HTTPS);
②. WinRM 2.0版本以上,WinRM的监听端口为5985(HTTP )和 5986 (HTTPS);

查看WinRm监听端口: 默认http端口5985

winrm enumerate winrm/config/listener

在这里插入图片描述修改WinRM端口:

WinRM默认的http端口是5985,https端口5986
winrm set winrm/config/listener?Address=+Transport=HTTP ‘@{Port=“6008”}’
或 set-item wsman:\localhost\listener\listener
\port 6008

在这里插入图片描述如果防火墙开启请修改防火墙配置。


报错:SSL:UNKNOWN_PROTOCOL

描述:ansible管理windows默认使用http端口5985,但生产环境目前没有开放5985端口,开通该端口所需时间较长,所以通过修改windows中WinRM服务的端口为已经开通过的端口来实现功能。

未修改时inventory主机清单文件如下:

[root@localhost awx_telegraf]# cat inventory
[windows]
192.168.6.155

[windows:vars]
ansible_ssh_user=administrator
ansible_ssh_pass="redhat@123"
#ansible_ssh_port=5985
ansible_ssh_port=6008
ansible_connection="winrm"
ansible_winrm_server_cert_validation=ignore

用上面配置执行ansible语句报错信息如下:

#未知的SSL协议
[root@localhost awx_telegraf]# ansible -i inventory windows -m win_ping 
192.168.6.155 | UNREACHABLE! => {
    "changed": false,
    "msg": "ssl: HTTPSConnectionPool(host='192.168.6.155', port=6002): Max retries exceeded with url: /wsman (Caused by SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:1129)')))",
    "unreachable": true
}

问题解决:

分析:ansible管控windows时,除5985默认为http端口,无论端口号怎么修改默认都为https端口
修改后:
inventory文件,添加 ansible_winrm_scheme=http 参数

[root@localhost awx_telegraf]# cat inventory
[windows]
192.168.6.155

[windows:vars]
ansible_ssh_user=administrator
ansible_ssh_pass="redhat@123"
#ansible_ssh_port=5985
ansible_ssh_port=6008
ansible_connection="winrm"
ansible_winrm_server_cert_validation=ignore
ansible_winrm_scheme=http

执行命令成功:

[root@localhost awx_telegraf]# ansible -i inventory windows -m win_ping 
192.168.6.155 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
  • ansible_connection: 指定调用哪个connection plugin。如不指定,默认是调用ssh的。
  • ansible_winrm_scheme:指定用于 WinRM 连接的连接方案(http或)。指定用什么协议访问,默认时https。如果指定为http,默认访问5985端口。当且仅当ansible_ssh_port被设置为5985时,默认走http。
  • ansible_ssh_port:默认值5986。当此选项被设置为除5985外的任意值且未指定ansible_winrm_scheme时,默认走https协议。也就是说如果修改了http端口,则必须在调用ansible时显示指定ansible_winrm_scheme为http。

官网链接:https://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html#what-is-winrm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侯侯Hou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值