摘要: 秘籍分享:SLB实例的备份与克隆 1. Greetings :) Hi,大家好,2018年春节刚过不久,想必大家一定觉得假期短暂,没有玩爽吧,但我们IT民工的命就是这么苦逼,想想也只能撸起袖子使劲干啦。

秘籍分享: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. 注意事项和说明

1.实例克隆功能当前会忽略原有实例的计费模式,不论原实例是包年包月还是按量付费,统一按照按量付费进行克隆,新实例和原实例在同一地域
2.当前仅克隆了监听配置和后端服务器、虚拟服务器组、主备服务器组,转发规则和访问控制白名单还没有实现
3.免责声明,使用本工具用于生产环境时,请自行承担风险
4.项目地址:github:papaorange/aliyun-slb-helper
5.水平有限,代码中可能存在bug,欢迎各位大师指正批评

原文链接

阅读更多干货好文,请关注扫描以下二维码:
图片描述


猫耳
457 声望34 粉丝