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

[经验分享] 使用Ansible+实现Windows自动化运维

[复制链接]

尚未签到

发表于 2018-6-17 14:50:18 | 显示全部楼层 |阅读模式
  一:Ansible 简介
  AUTOMATION FOR EVERYONE (摘自Ansible官网),自行理解其中意思,Ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
  (1) 连接插件connection plugins:负责和被监控端实现通信;
  (2) host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
  (3) 各种模块核心模块、command模块、自定义模块;
  (4) 借助于插件完成记录日志邮件等功能;
  (5) playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务
二:Ansible的安装
  Ansible的安装方式有很多,可以使用源码安装(github),也可以使用pip安装或者采用yum 安装,此文档采用yum安装
  系统环境:CentOS6.5
  软件环境:Python2.6   (Ansible使用Python语言编写,安装Ansible之前请确认服务器已经安装了Python,默认已经安装)

# yum install ansible  成功安装后可以使用ansible  -h 命令查看帮助,

  ansible  查看版本  
  # ansible --version

  使用rpm -ql   ansible  查看相关ansible文件

三:配置Ansible
  
Ansible 的主要配置文件在/etc/ansible   下面(yum 安装的)
#cd /etc/ansible &&tree #ansible配置文件    #tree命令默认没有,需要安装  
https://confluence.jiagouyun.com/download/attachments/18350888/worddav6560dbfea7c187081a7ea81766d1c96e.png?version=1&modificationDate=1492681642000&api=v2
  我这里只对hosts 和ansible.cfg 做了简单的更改,hosts 主要是定义主机的,ansible.cfg 是ansible的主配置文件
  下面我们对本机做个简单的PING测试,执行下面命令
echo -e "[lo]\n127.0.0.1 ansible_user=root ansible_password=passw0rd ansible_port=40022" >>hosts  注意:如果是默认端口不要填写,Ansible 2.0版本之前的格式有点不一样,如果使用YUM安装的话,基本上都是2.0以后的版本,强烈不建议使用明文密码的格式填写,可以使用key或者sudo的方式
# ansible lo -m ping  
  linux 机器的测试请参考linux项目组,我这里主要介绍如何使用Ansible来控制Windows主机
四:管理windows主机
  
  就如你刚所了解到的,Ansible默认是通过SSH协议来管理Linux/Unix服务器.
  从1.7版本开始,Ansible也开始支持Windows机器的管理.不过是通过本机的PowerShell来实现远程管理,而不是SSH.
  Ansible仍然通过一台Linux系统机器来进行集中管理,使用Python的 "winrm" 模块来和远程主机交互.
  在管理的过程是 Ansible无需在远程主机上安装任何额外的软件,Ansible仍然使用 agentless(非c/s架构) 来保证其在 Linux/Unix的流行度
  
必要条件:
  (1) 必须开启以及配置Powershell
  https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
  (2)Powershell版本必须3.0 or higer
  如果您的系统是window7或者Windows Server 2008,那么PowerShell 2.0已经内置了,可以升级为3.0,4.0
  如果您的系统是Windows 8 或者Windows server 2012,那么PowerShell 3.0已经内置了,可以升级为4.0
  如果您的系统为Windows 8.1或者Windows server 2012 R2,那默认已经是4.0了。
  #查看Powershell版本,powershell 界面下输入 $psversiontable

  •   Ansible控制机配置
      在Ansible控制机上执行下面指令安装pywinrm模块 pip install "pywinrm>=0.1.1" 我这里已经安装过,版本是0.2.2


  •   被管windows主机配置
  开启以及配置Powershell
  Ansible 官方提供初始化脚本
  https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
  脚本主要完成如下操作:

  •   检查最后安装证书的指纹
  •   配置错误处理
  •   检测Power shell版本
  •   检查/启动WimRM服务
  •   确保WinRM运行之后,检查有PS会话配置
  •   确保有SSL监听
  •   检查基本鉴权
  •   配置防火墙允许WinRM HTTPS链接
  •   本地测试通过网络方式连接是否正常
  注意:如果提示系统中禁止执行脚本,可以在Powershell 命令行界面输入 set-ExecutionPolicy RemoteSigned 然后输入Y,在执行脚本就不会报

  •   定义host以及Inventory
  Ansible支持windows需要依赖于少量标准变量来表明远程主机的username, password, and connection type (windows).这些变量大部分都很容易被设置好.在 Ansible 中通过用来代替 SSH-keys 或 密码输入
mkdir -p windows/group_vars/cd  !$
vim windows.ymlansible_user: administratoransible_password: p@ssw0rdansible_port: 5986ansible_connection: winrmansible_winrm_server_cert_validation: ignore
vim host[windows]10.200.7.50
ansible windows -i host -m win_ping
  使用ansible-playbook执行相关脚本
# vim  ip.yml- name: test script module  hosts: windows  tasks:    - name: run test script      script: /etc/ansible/windows/script/ip.bat

ansible-playbook  group_vars/ip.yml  -i host

  •   远程登陆客户端验证

运维网声明 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.yunweiku.com/thread-525020-1-1.html 上篇帖子: SCCM2012R2-02 Conpect Description--01 下篇帖子: SQL Server 2012事务日志截断、回绕与收缩
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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