设为首页 收藏本站
查看: 1539|回复: 0

[经验分享] 使用 Ansible 管理 Windows-Python & Golang 学习

[复制链接]

尚未签到

发表于 2018-6-16 06:24:07 | 显示全部楼层 |阅读模式
前言
  本文主要介绍在如何使用 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 Windows Support
  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 ’ s supported Windows versions generally match those under current and extended support from Microsoft. Supported desktop OSs include Windows 7, 8.1, and 10, and supported server OSs are Windows Server 2008, 2008 R2, 2012, 2012 R2, and - 2016.
  •   Ansible requires PowerShell 3.0 or newer and at least .NET 4.0 to be installed on the Windows host.
  •   A WinRM listener should be created and activated. More details for this can be found below.
DSC0000.jpg

  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

  •   在官方文档中已经提到了在 Windows 中使用 Ansible 的最要前提,WinRM
  •   WinRM 依赖 Powershell 3.0 以上版本的支持,牵扯出 PowerShell 2.0 to PowerShell 3.0/5.0 的问题
  •   而 Powershell 升级则带来.Net Framework 是否跟随升级至 4.6.2/4.7.2 的选择
  •   关于 WinRM 的参数配置可以参考下面的链接 Setting up a Windows Host
  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 导入证书到“受信任的根证书颁发机构”
DSC0001.jpg

# 配置 winrmmkdir C:\temp  
cd C:\temp# 下载 ConfigureRemotingForAnsible.ps1https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1# 开启 WinRM 服务powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1 -SkipNetworkProfileCheck
服务端
# 服务端使用 pip 安装 pywinrmpip 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
  技术交流QQ群:238757010
  感谢作者:wsgzao
  原文链接:http://t.cn/R1oPmoG

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-524341-1-1.html 上篇帖子: Windows Server 2012 RDS系列PART4:部署托管个人虚拟机 下篇帖子: window server 2012 常用组策略
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表