ansible windows inventory 文件配置

首先配置host文件

inventory 网上大多数是这样写的,只要这里写对也不会有后面的报错

all:
  children:
    windows:
      hosts:
        192.168.119.1:
          ansible_user: admin
          ansible_password: password
          ansible_port: 5985
          ansible_connection: winrm
          ansible_winrm_transport: ntlm   ##很重要
          ansible_winrm_server_cert_validation: ignore
 

但是如果想和Linux主机连接信息写在一个配置文件里  

[win]
192.168.119.1 ansible_ssh_user=admin ansible_ssh_pass=admin ansible_ssh_port=5985 ansible_connection=winrm ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore

以下是摘录网上各种乱七八糟的问题的报错及解决过程。本次主要是想利用ansible 远程操作Windows ,当我运行

ansibile windows -m win_ping 时,报错:

​
ansibile windows -m win_ping

​
192.168.119.1 | UNREACHABLE! => {
    "changed": false,
    "msg": "plaintext: the specified credentials were rejected by the server",
    "unreachable": true
}

windows 中的我的winrm是之前装的,首先怀疑时winrm 的问题:

由于这里winrm 报错,所以先解决了下这个问题:

C:\Users\Sun>winrm e winrm/config/listener
WSManFault
    Message = 客户端无法连接到请求中指定的目标。 请验证该目标上的服务是否正在运行以及是否正在接受请求。 有关目标(通常是 IIS 或 WinRM)上运行的 WS 管理服务,请查阅日志和文档。 如果目标是 WinRM 服务,则在目标上运行以下命令来分析和配置 WinRM 服务: "winrm quickconfig"。

错误编号: -2144108526 0x80338012
客户端无法连接到请求中指定的目标。 请验证该目标上的服务是否正在运行以及是否正在接受请求。 有关目标(通常是 IIS 或 WinRM) 上运行的 WS 管理服务,请查阅日志和文档。 如果目标是 WinRM 服务,则在目标上运行以下命令来分析和配置 WinRM 服务: "winrm quickconfig"。

解决:

PS C:\Users\Sun> Get-NetConnectionProfile


Name             : 未识别的网络
InterfaceAlias   : 以太网 2
InterfaceIndex   : 18
NetworkCategory  : Public
IPv4Connectivity : NoTraffic
IPv6Connectivity : NoTraffic

Name             : 未识别的网络
InterfaceAlias   : 以太网 3
InterfaceIndex   : 16
NetworkCategory  : Public
IPv4Connectivity : NoTraffic
IPv6Connectivity : NoTraffic

Name             : 网络
InterfaceAlias   : 以太网
InterfaceIndex   : 20
NetworkCategory  : Private
IPv4Connectivity : Internet
IPv6Connectivity : NoTraffic

PS C:\Users\Sun> Set-NetConnectionProfile -NetworkCategory Private
PS C:\Users\Sun> Get-NetConnectionProfile


Name             : 未识别的网络
InterfaceAlias   : 以太网 2
InterfaceIndex   : 18
NetworkCategory  : Private
IPv4Connectivity : NoTraffic
IPv6Connectivity : NoTraffic

Name             : 未识别的网络
InterfaceAlias   : 以太网 3
InterfaceIndex   : 16
NetworkCategory  : Private
IPv4Connectivity : NoTraffic
IPv6Connectivity : NoTraffic

Name             : 网络
InterfaceAlias   : 以太网
InterfaceIndex   : 20
NetworkCategory  : Private
IPv4Connectivity : Internet
IPv6Connectivity : NoTraffic

PS C:\Users\Sun> winrm e winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.30.0.190, 10.30.101.134, 127.0.0.1, 162.254.90.168, 139.254.128.232, 172.16.56.50, 192.168.119.1, ::1, fe80::ffff:ffff:fffe%6, fe80::826:f327:488b:1c53%15, fe80::24e2:4e67:1515:4f15%16, fe80::ac8e:4703:91a8:c6ca%17, fe80::d806:27aa:1675:b14%22, fe80::d9d8:dcb9:f038:5dc8%7, fe80::f810:7cc1:4fc65:3caa%18

结果还是不行,又跟着操作了一波不知道时什么意思的命令还忘了验证我的问题有没有解决 ,不知道这里有没有起作用,但是感觉有点跑偏了,感兴趣的同学并且为了安全起见可以跳过这一步直接执行后面的 ,

自动化设置 WinRM:

get-executionpolicy

set-executionpolicy remotesigned

#下载

https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1

ConfigureRemotingForAnsible.ps1   -SkipNetworkProfileCheck

然后又执行了 pip install http://github.com/diyan/pywinrm/archive/master.zip#egg=pywinrm ,其实应该直接执行 

pip install pywinrm  就好 

到这里我又执行了下 ansible windows  -m win_ping   结果发现成功了 :

反思一下,可能只是我的inventory写的有问题,inventory 文件中一定要有 ansible_winrm_transport: ntlm ,不然会报错:

plaintext: the specified credentials were rejected by the server ,如果大家只是遇到了上述报错,直接在inventory 配置就好。

此外我的winrm 有点小问题,顺便解决了winrm 的问题,winrm 这里一定别忘了防火墙的是否有限制  。

具体问题具体分析 ,具体问题具体分析 ,不能像我一样病急乱投医 

参考链接:

Ansible管理Windows服务器 - 简书

Jenkins持续部署-Windows环境持续部署探究1_weixin_33881041的博客-CSDN博客

Windows Support — 国内最专业的Ansible中文官方学习手册

Setting up a Windows Host — Ansible Documentation

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值