Ansible是一个简单、高效和专用的工具,用于在没有代理框架的情况下编辑、部署和配置管理自动化技术。它根据SSH协议完成远程控制连接点和管理方法连接点之间的通信。UCloud里的很多应用也来Ansible。比如UCloud机房的商品部署系统软件,根据Ansible,大大提高了部署效率,早已成为现阶段UCloud机房部署的关键专用工具。本文将详细讲解Ansible在UCloud机房商品部署系统软件中的应用,坚信会对有多机房部署需求的读者有所帮助。
什么是可转换的
Ansible是一个简单、高效和专用的工具,用于在没有代理框架的情况下编辑、部署和配置管理自动化技术。它根据SSH协议完成远程控制连接点和管理方法连接点之间的通信。
ANSI的目的是简化许多复杂重复的运维管理工作,用精简的技术思想在企业内创造统一的自动化技术文化和艺术。免代理架构使它比其他特殊工具更容易。Ansible可以根据SSH能保证的做更多。其极高的韧性使其很容易融入当前的管理体系,因此被广泛使用。
ucloudansible的应用场景
UCloud里的很多应用也来Ansible。比如机房商品部署系统软件,据Ansible介绍,大大提高了部署效率,早已成为现阶段UCloud机房部署的关键专用工具。再比如,根据integratedAnsible的基本API和回调函数,现有的网络级灰度发布系统软件已经解决了灰度发布、回滚、 *** 纵等难点。系统软件上线三年多来运行流畅,完成了上万次与灰度发布相关的日常任务。
下面将详细讲解Ansible在机房商品部署系统软件中的应用,相信对有多种机房部署需求的读者也会有所帮助。
国外多机房部署
根据Ansible集中大规模部署和管理服务,集中管理办公室位于北京/上海机房。当国外连接点(如拉各斯、胡志明等。)必须基本构建完毕,远程控制并根据Ansible部署云货和内部服务。有些云产品是按照UCloud云服务器作为IaaS层搭建的,所以实际运行时也是按照SSH连接到匹配的海外云主机上。
这个应用场景和一般客户有很多共同点。无论是建设IDC,还是使用云计算平台,甚至是阴天在云端部署一台管理方式不同的网络服务器,都需要大量部署。
海外部署还有一个额外的问题,就是部署效率高的问题。Ansible使用SSH协议进行通信,SSH安全通道的建立和通信速率较慢。当需要外网地址管理方式,且网络空较弱或网络带宽不足时,实现时间大部分是难以承受的,这反映了Ansible再次部署时,往往会出现卡屏、连接失败、传输速率慢等情况。,而当复制控制模块用来传输稍微大一点的编码包/图像文件时,大部分时间都会是直到花落为止。
人们的解决方案是将UCloud的PaaS商品GlobalSSH集成到Ansible中,提高海外远程访问网络服务器的效率。
GlobalSSH
GlobalSSH的发布是为了保障国外大数据中心的运维管理。选取了ULB4(四层三层交换机)、UDPN(喜来登内网互联,网络零丢包)、高包云服务器等UCloud的众多IaaS产品,并引入了智能DNS服务项目,展现邻近原则连接的工作能力。根据完善稳定的GRE和NAT技术,互联网共享适用于四层TCP端口(80和443除外)。
可行的剧本方法部署
人们将GlobalSSH集成到Ansible中,进行简单的包复制和安装。流程如下所示。
1)首先,人们根据UCloudAPI或控制面板北京二和拉各斯(阿尔及利亚)搭建一个云服务器,网络带宽1Mb,其中拉各斯机房将全面开启GlobalSSH功能(所有UCloud国外机房将全面开启),如下图所示:
2)提前准备一个简单的Ansible剧本,每个剧本有三个流程:收集事实、复制代码包及其yum安装代码。相关剧本如下:
--hosts:所有任务:--name:copytestcopy:src=/data/MySQL-devel-5.6.41-1.el6.x86_64.rpmdest=/data/test-name:installMySQL-develyum:name=/data/MySQL-devel-5.6.41-1.el6.x86_64.rpmstate=present
3)提前准备一个hosts文档,装备GlobalSSH转换的网站域名。Ansible在GlobalSSH的应用上相对简单。如果在服务器参数中添加ansible_SSH_host=XXX.XXX.XXX.IPSSH.net,就可以了。人民机房部署系统软件将集成Ansible的动态盘点功能,在转换后的盘点中,立即将加速后的网站域名GlobalSSH添加到ansible_ssh_host的自变量中。也很容易申请,如下图。
[root@10-10-83-122~]#cathosts_nrly[all]152.32.140.39ansible_ssh_pass=example[root@10-10-83-122~]#cathosts_nrly_1[all]152.32.140.39ansible_ssh_pass=exampleansible_ssh_host=152.32.140.39.ipssh.net
4)应用ansible-playbook指令实现剧本,任务完成。
检验比较
如前所述,GlobalSSH大大提高了人们在国外的部署效率。按照另外写一个没有GlobalSSH加速的剧本,可以测试一下实际的加速效果。
没有GlobalSSH的Playbook写起来很简单,和上面的基础差不多。不同的是,在步骤3的hosts文档中,网站域名不应该加速,而应该立即填入外网的原始IP地址。
为了避免单次测试结果不准确,这里测试10次,取平均值为好。
测试说明:
“seq110”中I的时间;doansible-playbook-Ihosts_nrlytest_playbook.yml;“seq110”中I的完成时间;doansible-playbook-Ihosts_nrly_1test_playbook.yml;完成的
最终结果如下所示。可以看出,在简单的AnsiblePlaybook部署中,GlobalSSH加速后实际效果提升了32.23%。
可行的临时方法
GlobalSSH可以提高低速网络带宽下所有数据传输的可靠性和速度,尤其是RTT的往返延迟时间(往返时间),这也是具有外网地址扩展性的ip所不具备的速度优势。因此,人们认为这也是一个很大的帮助。
运维管理人员经常使用Ad-hoc方法,类似于pssh,但适用于Ansible的所有模块英语语法。一般的应用场景是批量运行命令,查询回显结果。为了验证假设,人们对Ad-hoc方法做了类似的测试,发现GlobalSSH的实际效果更加显著,提升率超过50%。详细结果如下所示。
测试说明:
“seq110”中I的时间;doansible-Ihosts_nrlyall-mshell-a"cat/var/log/messages";“seq110”中I的完成时间;doansible-Ihosts_nrly_1all-mshell-a"cat/var/log/messages";完成的
测试结果:
摘要
Ansible是一个广泛使用的DevOps工具。我们可以根据应用中的需要很容易地将GlobalSSH集成到其中,从而避免SSH卡屏在网络服务器部署中带来的负面影响。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)