Ansible是一个简单高效、无Agent架构的自动化编排、部署及配置管理工具,通过SSH协议实现远程节点和管理节点之间的通信。UCloud内部也大量使用到了Ansible。比如,UCloud机房产品部署系统,通过Ansible实现了部署效率的极大提升,目前已经成为UCloud机房部署的重要工具,本文将详细介绍Ansible在UCloud机房产品部署系统中的使用,相信对有多机房部署需求的读者会有帮助。
什么是Ansible
Ansible是一个简单高效、无Agent架构的自动化编排、部署及配置管理工具,通过SSH协议实现远程节点和管理节点之间的通信。
Ansible的目的是简化大量复杂重复的运维工作, 以精简的技术思路建立公司内统一的自动化文化。无Agent的架构使其比其他工具更显简单,基于SSH可以做到的事Ansible都可以做的更好,超高的易用度使其可以简单集成到现有体系之中,因而被广泛使用。
这和一般用户的使用场景有很多相似之处,无论其是自建IDC或用了公有云,甚至多云部署来同时管理不同云上的服务器,都有类似批量部署的需要。
Ansible Playbook方式部署
我们将GlobalSSH集成到Ansible,做一个简单的软件包拷贝及安装,步骤如下所示。
1) 首先,我们通过UCloud API或控制台在北京二和拉各斯(尼日利亚)各创建一台云主机,带宽为1Mb,其中拉各斯机房会自动开启GlobalSSH功能(所有UCloud海外机房均会自动开启),如下图所示:
Ansible Ad-hoc方式
GlobalSSH在低速的带宽下可以提升整个网络传输的稳定性和速度,尤其是对RTT (Round-Trip Time)往返延迟的提升,更是有着外网弹性IP所不具备的速度优势。 因此我们认为它对Ansible Ad-hoc方式也有很大帮助。
运维人员经常会用Ad-hoc方式,它类似pssh,却支持Ansible所有的module语法,通常的使用场景是批量执行命令并查看回显结果。为了验证假设,我们对Ad-hoc方式也做了类似测试,发现GlobalSSH后的优化效果更明显,优化速度超过50%,详细结果如下所示。
测试命令:
time for i in `seq 1 10`; do ansible -i hosts_nrly all -m shell -a “cat /var/log/messages”; done time for i in `seq 1 10`; do ansible -i hosts_nrly_1 all -m shell -a “cat /var/log/messages”; done
测试结果:
总结
Ansible是被大量使用的DevOps工具,我们在使用中根据需要,将GlobalSSH很容易地集成其中,避免了服务器部署中SSH卡顿造成的不良影响。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/934794.html