一、简述
<强> 1,说明强>
日常系统自动化运维过程中难免会有windows系列服务器,就开源软件来说目前大多的对windows批量管理兼容性不太好,不像Linux系统便捷,但现实中确实有些业务需要跑在windows上,搜索查找折腾一番后,发现python开发的ansible(已经被redhat收购)有比较好的解决方案,通过一番折腾,整理出来,以备忘交流;
<强> 2,实验环境强>
服务器端:
CentOS7.4_x64自带python 2.7.5 ip: 172.16.3.167
源码安装ansible
被管理windows端:
win7sp1_x32需要powershell 3.0 + ip: 172.16.3.188并开启winrm服务开启防火墙规则
<强> 3,实验目标强>
能通过ansible的各模块对windows进行传输文件,管理账号,执行脚本等批量自动化管理工作,
二,ansible配置
<强> 1,简介强>
Ansible从1.7 +版本开始支持Windows,但管理机必须为Linux系统,远程主机的通信方式也由Linux下的SSH变为PowerShell,管理机需要安装Python的pywinrm模块,但PowerShell需3.0 +版本且管理框架3.0 +版本,实测Windows 7 SP1和Windows Server 2008 R2及以上版本系统经简单配置可正常与Ansible通信。
<强> 2,环境准备强>
以下配置在CentOS7.4_x64下
安装pip及相关依赖
<代码>下载皮普 # wget https://bootstrap.pypa.io/get-pip.py # python get-pip.py 安装依赖 # pip安装pywinrm paramiko PyYAML Jinja2 httplib2 6 代码>
<强> 3,源码安装ansible 强>
<代码> # git克隆git://github.com/ansible/ansible.git——递归的 # cd。/ansible #来源。/黑客/env-setup 代码>
运行了env-setup脚本,就意味着Ansible基于源码运行起来了。默认的库存文件是/etc/ansible/hosts
猫/etc/ansible/hosts
注:可以把这步添加到开机自启中,
<代码>[这个] 172.16.3.188 ansible_ssh_user=靶槟狻盿nsible_ssh_pass=拔易约骸!盿nsible_ssh_port=5985 ansible_connection=皐inrm”ansible_winrm_server_cert_validation=忽视 代码>
注意上信息在一行,以空格隔开,[这个]是这台主机的标题;下面的是ip和连接信息等;
以上ansible管理端已经配置好,被管理端这个主题还没有配置,相对来说稍稍麻烦点
三,被管理端配置
<强> 1,环境简介强>
和Linux稍有区别,被管理端系统如果是Windows系列时,需预先有以下配置:
安装框架3.0 +(有可能需要下载)
配置powershell策略为remotesigned(需要修改)
升级powershell至3.0 +(这个默认是2.0)
设置窗户远端管理,英文全称WS-Management (WinRM)
<强> 2,环境配置强>
,升级或安装Framework 4.5
如果框架版不满足请至微软官方下载
b,修改powershell策略为remotesigned
如图:
c,升级PowerShell至3.0
保存以下脚本为upgrade_to_ps3.ps1
<代码> # Powershell脚本升级Powershell Powershell 3.0 2.0系统 #基础alt=" ansible自动化管理windows系统实战”>
重启后查看powershell信息
d,设置窗户远端管理(WS-Management WinRM)服务
WinRM服务默认都是未启用的状态;注意以下操作在cmd中执行,而非powershell中
对WinRM服务进行基础配置:<代码> winrm quickconfig C:\Users\ san02> winrm quickconfig 已在此计算机上运行WinRM服务。 WinRM没有设置成为了管理此计算机而允许对其进行远程访问。 必须进行以下更改: 在HTTP://*上创建WinRM侦听程序接受WS-Man对此机器上任意IP的请求。 启用WinRM防火墙异常。 执行这些更改吗(y/n) ?y WinRM已经进行了更新,以用于远程管理。 在HTTP://*上创建WinRM侦听程序接受WS-Man对此机器上任意IP的请求。 WinRM防火墙异常已启用。 查看winrm服务侦听器 winrm e winrm/config/侦听器 C:\Users\ san02> winrm e winrm/config/侦听器 侦听器 地址=* 运输=HTTP 端口=5985 主机名 启用=true URLPrefix=wsman CertificateThumbprint ListeningOn=127.0.0.1, 172.16.3.137,:: 1, fe80:: 100:7f: fffe % 13日fe80:: 5场方程 fe80::: 172.16.3.137 12日4865:97de: bb1f: 877% 11 配置身份验证为真(默认为假) winrm winrm/config/服务/身份验证设置@{基本=" true "} C: \ \用户san02> winrm winrm/config/服务/身份验证设置@{基本=" true "} 身份验证 基本=true Kerberos=true 谈判=true 证书=false CredSSP=false CbtHardeningLevel=放松 配置允许非加密方式 winrm设置winrm/config/服务@ {AllowUnencrypted=" true "} C:\Users\ san02> winrm winrm/config/服务@ {AllowUnencrypted=" true "} 服务 RootSDDL=O: NSG:缺点:P (GA;;;;; BA) (;; GR;;; IU) S: P(非盟,FA;遗传算法;;;WD)(非盟;股价;GXGW; ;;WD) MaxConcurrentOperations=4294967295 MaxConcurrentOperationsPerUser=1500 EnumerationTimeoutms=240000 MaxConnections=300 MaxPacketRetrievalTimeSeconds=120 AllowUnencrypted=true 身份验证 基本=true ……以下省略.......ansible自动化管理windows系统实战