本文主要介绍在如何使用 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 2018-05-31 11:28:34 +08:00
您好,您的这个方法不错,请问可以分享转载?(会注明作者+原文链接)
|