【OpenStack悉尼峰会快报】OpenStack悉尼峰会 |悉尼峰会爆款话题-Ansible
在2017届OpenStack summit中,我们除了了解OpenStack的一些动向、技术等,还有另外一个感受,那就是ansible的重要性越来越高。使用关键字ansible搜索,标题中带ansible的话题就有11个,其它与ansible相关的话题也有很多。1.Deploying OpenStack at scale with TripleO, Ansible, and Containers2.OpenStack-Ansible users and ops feedback session3.Migrating your job from jenkins Job Builder to Ansible Playbooks, a Zuulv3 story4.Ansible - Project Onboarding5.Ansible: State of the Union, our friendship with OpenStack, and more6.Windmill 101: Ansible based deployment for Zuul / Nodepool7.Deploying Multi-Container Applications with Ansible Service Broker8.Heat orchestration using Ansible9.OpenStack-Ansible - Project Update10.Using Ansible to Automate the Entire IT Stack11.Practical Kubernetes with Magnum and OpenStack-Ansible其实在ansible之前,市面上已经有很多常见的自动化运维工具,如chef,puppet,saltstack。ansible之所以火爆,笔者分析有两点很重要:1. ansible是基于python的python*近几年非常受欢迎,目前从事运维和部署的人,或多或少都有一些使用python的能力。而chef和puppet都基于ruby,saltstack也基于python。所以很多人在选择自动化运维工具的时候,会倾向于ansible和saltstack。2. ansible是无代理的无代理,即不需要在被管理的节点安装任何客户端或者其它软件,它只需要被管理节点支持ssh和python,而这两项基本上在管理节点上是默认支持的。这无疑是一个很强的特点,不仅使人们容易上手,更减少了维护客户端的成本。从另一个方面讲,当ansible有新的版本发布时,运维人员只需要在ansible控制节点更新软件,并做出相应调整即可。而saltstack的亮点则是使用了消息队列(zero mq)和客户端,所以在ansible和saltstack之间,大家会倾向于ansible。ansible其他特点除了上面的讲的以外,ansible还有其它一些特点,这些同样也是很吸引人的:1.简单ansible的ad-hoc命令和playbook都是用户和机器可读的,所以学习成本很低,不需要特殊的代码技能,很容易上手所以学习成本很低,不需要特殊的代码技能,很容易上手。2.强大它能帮助我们做什么?几乎我们能想到的日常操作,它都可以实现。不仅原生提供1000+的模块,还可以从ansible galaxy分享自己的和别人的模块3.可扩展ansible支持用户自定义模块,而且不限定这些模块所使用的语言。ansible执行模块时,主要是将相应的脚本传到被管理节点,然后执行它,只要脚本能以json格式返回结果即可。4.可编排ansible playbook可以将host与role进行编排,所以可以在不同的host节点执行不同的任务。在ansible中,task是按序执行的,当管理多个节点时,只有当一个task在所有节点执行完成,下一个task才会被执行。如何提高ansible的运行速度可能会有一些反对的声音,因为ansible使用ssh与被控节点通讯,所以运行起来会比较慢。实际情况可能是这样的,但我们可以做一些事情来提高ansible的运行速度,比如1. 开启SSH pipelining一般情况下,ansible在执行task时,会有3次ssh连接,包括:1.1 在被管理节点创建临时目录1.2 将脚本发送到临时目录1.3 执行脚本并返回结果开启SSH pipelining后,ansible在执行task时,不需要建立临时目录和发送脚本,只需要一次ssh连接,在这次连接中把脚本作为stdin写入。2. 开启ControlPersist这可能需要升级ssh到比较新的版本。开启ControlPersist之后,当断开ssh会话时,连接并没有被销毁,所以下次建立会话时,可以直接使用该连接,这可以节省很多时间。总结综合上面的分析,相信大家能够体会到ansible的强大之处。它不仅能帮助解决日常的IT运维问题,就连部署OpenStack和kubernetes都能轻松应对。正如今天峰会上的一个议题一样,"Using Ansible to Automate the Entire IT Stack"。
查看更多