Ansible 简介

欢迎加入 “全栈运维答疑群 632578555” ,希望能在群里对于大家的运维问题能到得到很好的解答。

这里先引用腾讯大Boss马化腾在 腾讯“云+未来”技术峰会上的一句话:
未来主体是传统行业利用互联网技术,以云端用人工智能的方式处理大数据

而在互联网技术中 自动化管理 则是帮助企业快速、高质量、高效率完成持续交付的关键。
目前市面上自动化管理工作诸如Saltstack、puppet、Fabric、Chef等很多,但是这里为啥要选择Ansible呢,一幅图告诉你答案。

同类自动化工具Github关注程度对比(2016-07-10)

同类自动化工具WatchStarForkcontributors
Ansible13871771653561428
Saltstack530667830021520
Puppet46340441678425
Chef38343331806464
Fabric37973341235116

表格数据来源于Ansible权威指南

官网对于Ansible的定义是Ansible is a radically simple IT automation engine 翻译就是Ansible是一款极其简单的IT自动化工具。所以喽学习起来也不是很难滴。但是其功能还是很强大的。

既然很强大,那就需要深入的挖掘一下它有哪些优点和工作原理了

优点

  • ansible 是用Python开发的,而现在Python对于运维人员来说个人感觉是必备的技能
  • 丰富的内置模块,具体有多少呢,你可以用ansible-doc -l 去看看
  • agentless 也就是无客户端,这样的话部署安装就很简单,管理端配置好了就可以直接使用
  • 批量部署,自动化运维工具,这个是必须的了是吧

工作原理

用一句话总结就是:
一台管理主机,根据定义的 Inventory host 清单或者 playbook ,调用特定的模块通过 openssh 协议在远程主机执行相关命令并返回结果;如自己手绘图:

《Ansible 简介》 WechatIMG3615.jpeg

具体的ansible官网给出来的请参考下图

《Ansible 简介》 ansible-架构.png

从图中我们知道ansible主要包括以下部分:

  • ansible inventory 管理的主机清单
  • ansible playbook 个人把它叫做 编排任务,自定义自己的任务列表,然后交个ansible按照定义的顺序依次执行。
  • modules ansible的核心模块集合
  • plugins 作为对模块的补充,定义额外的插件
  • api 供第三方调用,这个在后续运维平台开发中很有用哦
  • ansible 这个图中没有怎么体现出来,但是它很重要,因为你大部分的自动化管理都是用ansible 这个命令

总结

ansible是一个无需安装客户端的自动化管理工具,它包括了很多的模块帮助我们处理工作。强大的playbook可以帮我们比如自动化部署LNMP环境等。
所以有没有期待继续学习它呢?!

    原文作者:全栈运维
    原文地址: https://www.jianshu.com/p/1e894815b2de
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞