秘籍分享:SLB实例的备份与克隆
1. Greetings :)
Hi,大家好,2018年春节刚过不久,想必大家一定觉得假期短暂,没有玩爽吧,但我们IT民工的命就是这么苦逼,想想也只能撸起袖子使劲干啦。但要是有什么奇技淫巧能够提高工作效率,可以让大家每天早些下班出去浪,想必也是极好的。今天就给大家分享一个独家秘笈,SLB实例克隆。
2. 为啥要克隆实例咧
因为有的小伙伴的SLB实例配置十分复杂呀。比如有特别多的虚拟服务器组、主备服务器组、后端服务器;或者有特别多的监听,每个监听又配置了许多访问控制白名单,以及不同的健康检查端口、路径;又或者7层监听上配置了n多条转发规则,每条转发规则匹配的域名、URL以及后端服务器都不一样。。。OMG,想想都感觉复杂,脑袋要爆炸。如果此时,CTO一把抓过你说,我们要做实例级别的高可用,需要你准备一个新的SLB实例,配置和原来的一模一样,此时你一定会感觉想哭。。。虽然知道有API可以批量的处理类似的事情,可是代码都忘得干干净净了咋么办?
3. 救星来了
aliyun-slb-helper是一个"非专业码农"使用阿里云SLB SDK封装的一个备份、克隆SLB实例的小工具,可以方便的导出线上的SLB实例配置文件到本地,同时还可以使用本地配置文件克隆一个新实例出来,也可以直接克隆一个线上的实例,是不是很赞。下面我们看下具体如何使用:
3.1 准备工作
- 安装JRE或JDK1.8以上版本,这里请自行百度下载(如果只是要运行我编译好的版本,那么只需要下载JRE即可,如需要自己修改代码,并且编译则需要下载JDK、MAVEN等工具)
- 下载并解压编译好的aliyun-slb-helper.jar文件,见附件
- 准备ak.json文件,放到和aliyun-slb-helper.jar文件同一目录下,ak.json的文件格式为一个json串:
{
"accessKeyId": "xxxx",
"accessKeySecret": "xxxx"
}
请自行替换xxxx为自己的AccessKey,获取AccessKey请访问AccessKey管理页面
请务必妥善保管好AccessKey,泄露AccessKey即相当于泄露了云账号的账户和密码
3.2 备份以及克隆SLB实例
在控制台输入如下命令并回车
java -jar aliyun-slb-helper.jar
如果看到以下提示则说明运行环境一切OK
下面我们带参数运行一下:
java -jar aliyun-slb-helper.jar export all
此命令导出线上所有region所有SLB实例到当前目录slbs目录中,运行截图如下
运行下面命令
java -jar aliyun-slb-helper.jar clone local 'filename'
将使用导出到本地的SLB配置文件,克隆一个实例,filename必须是本地存在的文件,如下图所示:
上图我们用clone local 参数带一个本地的文件路径克隆出了一个新的实例,并且显示了新实例的ID,登录控制台查看,确认该实例生成成功
我们还可以直接通过指定线上实例的地域和实例ID直接克隆一个实例,命令如下:
java -jar aliyun-slb-helper.jar clone online 'region' 'loadbalancerId'
看,我们将刚刚clone出来的实例又克隆了一遍,并生成了一个新的实例ID
4. 注意事项和说明
- 实例克隆功能当前会忽略原有实例的计费模式,不论原实例是包年包月还是按量付费,统一按照按量付费进行克隆,新实例和原实例在同一地域
- 当前仅克隆了监听配置和后端服务器、虚拟服务器组、主备服务器组,转发规则和访问控制白名单还没有实现
- 免责声明,使用本工具用于生产环境时,请自行承担风险
- 项目地址:github:papaorange/aliyun-slb-helper
- 水平有限,代码中可能存在bug,欢迎各位大师指正批评
谢谢大家,拜拜,我们下篇博客见。