首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ADCloud系统的DevOps工具链实践——系列三

本期,为大家带来了工具链实践系列的第三期,DevOps工具链中的Ansible在Adcloud系统中的具体实践应用。

Ansible是Devops最好的服务器管理工具之一。它既可以配置管理工具,也可以用于部署。Ansible具有轻量级、agentless(不需要在每台机器部署客户端),除此之外,相对于其他服务器管理工具,ansible的语法更为简单,学习的门槛也更低。Ansibe同样也拥有第三方插件库,方便用户的使用。

Ansible与SaltStack的比较

Ansible和SaltStack是当下比较受欢迎的两个服务器管理工具,下面是两个工具的比较:

1.是否需要每台机器部署agent(客户端)

相比较SaltStack,Ansible是agentless的,避免了对客户端的维护

2.学习的门槛

从第一次使用来讲,Ansible的部署配置会更简单一些。从官方文档的质量来看,saltstack就比ansible要好一些。

3.第三方工具的丰富程度

Ansibe有一个galaxy站点:Ansible Galax,这个站点集合了3000多个第三方开发的Role/Playbook。而salt只有一些预先写好的Formulas(Formulas are pre-written Salt States)

4.开源社区的对接

在github上,Ansbile有18300多颗星,SaltStack有6700多颗星。直接按关键字搜索,ansible的相关项目也更多一些。

因此,adcloud系统选择ansible作为服务器管理工具,下面将具体介绍ansible在adcloud系统上的应用。

Ansible在ADCloud系统上的应用

Ansible在ADCloud的发布流程

1.在目标主机进行下载包

Ansible下载包到目标主机的目标路径,只需要在ansible主机上执行ansible命令就可以将代码包下载到目标主机。

Ansible在执行下载代码包、推送代码包的时候,会返回MD5值、目标主机进行操作的组、用户,下载的artifactory地址等等与下载代码包相关的信息。也就是说,使用ansible的方式进行下载代码包,用户可以更直观地看到代码包的信息,而运维人员也可以在出现问题的情况下,根据这些信息更快、更有效地进行问题的排查。

2.执行远程脚本

下图为ansible执行脚本的结果:

Ansible在执行远程脚本的时候,除了脚本自身的执行结果,还返回了脚本是否被成功调用(注意:是脚本是否被成功调用,不是脚本本身执行的成功与否;要查看 脚本执行的结果需要在脚本添加“set –e”)以及returnCode。

在ADCloud的虚机发布流程中,备份、分发、启停等步骤,都是通过远程脚本的方式来发布的。而ansible不仅拥有着十分全面的信息返回,方便了用户和运维人员,而且ansible支持后台运行的脚本,并且可以捕获后台运行的脚本的输出。

请使用Ansible进行虚机发布环境配置

Ansible在ADCloud主要用于虚机环境的部署。

在ADCloud平台中,虚机环境的部署有两种方式,一种是通过ssh的方式连接目标主机进行部署,另一种是通过ansible的方式进行部署。这两种方式分别对应ADCloud虚机环境中的两种访问权限认证方式:“用户名/密码”对应ssh的方式;“SSH Key”对应ansible的方式。在ADCloud的环境设置中,只有生产域的环境才能选择“SSH Key”的方式,并且需要与目标主机添加互信。

Ansible在ADCloud的后台调度

1.Ansible对虚机的调度

由于ansible命令本身具有很强的规范性,相比较shell命令的方式,要执行一系列的调度虚机的操作,只需要在后台执行一类ansible命令,不再需要去写各式各样的shell命令或者去调用shell脚本。ADCloud将所有的虚机调度的ansible命令抽象整合成一个类,等到要用的时候再去拼接生成需要的命令,十分方便。在这一点上,提高了后台代码的可读性,也便于后台代码对于虚机调度这一模块代码的修改和维护。

2.Ansible从虚机的返回报文

ansible返回的报文格式为json。json格式的报文便于后台的解析,方便返回信息的比对。在ADCloud的中,我们需要根据下载代码包返回的MD5值和数据库里面的MD5值进行比对,来判断代码包下载的正确性,ansible的返回报文只需要提取代码包MD5的key值就可以获取MD5值了,所以十分方便。

〖★总 结★〗

在ADCloud平台中,Ansible很好的完成了部署的任务,向我们展示了它的高效和稳定。当然,Ansible还有其他十分强大的功能,有待和大家一起探讨和挖掘。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G0XBVG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com