
本文主要介绍在如何使用 Ansible 管理 Windows 客户端,Ansible 官方提供了一个很方便的安装脚本,对于外网用户来说安装真的很轻松,可惜我遇到的问题是如何在内网部署,有相同烦恼的小伙伴不妨参考下
轻轻松松使用 Ansible 管理 Windows 客户端
2018 年 05 月 21 日 - 初稿
阅读原文 - https://wsgzao.github.io/post/ansible-windows/
扩展阅读
Ansible Windows Guides - http://docs.ansible.com/ansible/latest/user_guide/windows.html
Ansible 在 2.3 版本之前对于 Windows 支持的并不算很友好,从 2.4 版本开始已经可以使用原生模块实现很多需求
Because Windows is a non-POSIX-compliant operating system, there are differences between how Ansible interacts with them and the way Windows works. These guides will highlight some of the differences between Linux/Unix hosts and hosts running Windows.

Ansible does not support managing Windows XP or Server 2003 hosts. The supported operating system versions are:
Windows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows 7 Windows 8.1 Windows 10
https://github.com/ansible/ansible/blob/devel/examples/scripts/upgrade_to_ps3.ps1 https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
Setting up a Windows Host http://docs.ansible.com/ansible/latest/user_guide/windows_setup.html
.NET Framework 4.7.2/4.6.2 https://www.microsoft.com/net/download/dotnet-framework-runtime
Powershell 3.0 https://www.microsoft.com/en-us/download/details.aspx?id=34595
Powershell 5.1 https://www.microsoft.com/en-us/download/details.aspx?id=54616
我个人目前的建议是 Win7/2008 升级至 Powershell 3.0,.Net Framework 升级至 4.6.2,其他情况需要可以参考官方文档后做决定
Ansible Windows Guides - http://docs.ansible.com/ansible/latest/user_guide/windows.html
1.客户端配置 windows 主机,以管理员身份打开 powershell, 并查看当前 ps 版本 get-host 2.系统自带的 powershell 版本是 2.0,需要更新至 powershell 3 以上版本 https://www.microsoft.com/net/download/dotnet-framework-runtime https://www.microsoft.com/en-us/download/details.aspx?id=34595 3.安装完重启服务器查看 powershell 版本
.NET Framework 4.6 以上版本无法建立到信任根颁发机构的证书链 原因:系统缺少信任 Microsoft Root Certificate Authority 2011 根证书 下载:MicrosoftRootCertificateAuthority2011.cer http://go.microsoft.com/fwlink/?LinkID=747875&clcid=0x409 运行 certmgr.msc 导入证书到“受信任的根证书颁发机构”

# 配置 winrm mkdir C:\temp cd C:\temp # 下载 ConfigureRemotingForAnsible.ps1 https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 # 开启 WinRM 服务 powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1 -SkipNetworkProfileCheck # 服务端使用 pip 安装 pywinrm pip install pywinrm # 功能测试,配置 ansible 控制机 vi /etc/ansible/hosts [windows] 192.168.67.139 [windows:vars] ansible_user=Administrator ansible_password=Admin123 ansible_port=5986 ansible_cOnnection=winrm ansible_winrm_server_cert_validation=ignore # 要注意的是端口方面 ssl 即 https 方式的使用 5986,http 使用 5985 # 测试 ping 通信 ansible windows -m win_ping # 查看 ip 地址 ansible windows -m win_command -a "ipconfig" Windows 作为客户端所需的软件包我上传到百度网盘,.Net Framework 安装失败提示证书错误记得手动导入 MicrosoftRootCertificateAuthority2011.cer
https://pan.baidu.com/s/1JNV2pXjwUn14ojAtdEH_Sg
安装 .Net Framework 4.6.2 ( NDP462-KB3151800-x86-x64-AllOS-ENU.exe )
升级 Windows 7 SP1 和 Windows 2008 R2 SP1 的 PowerShell 版本从 2.0 至 3.0 ( Windows6.1-KB2506143-x64.msu )
执行.\ConfigureRemotingForAnsible.ps1 脚本开启 WinRM 远程管理服务
powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1 -SkipNetworkProfileCheck
1 reboot51 May 31, 2018 您好,您的这个方法不错,请问可以分享转载?(会注明作者+原文链接) |