一次性迁移较多数量的服务器时,使用单台全量迁移的方式较耗时。如果服务器数量为十台以上,建议您制作脚本进行批量迁移。
背景信息
说明 迁云工具已升级为服务器迁移中心SMC(Server Migration Center),现有迁云工具不再提供版本更新和技术支持。为了更好的迁云体验,建议您使用SMC。SMC支持全量迁移、增量迁移、批量迁移、VPC内网迁移等多种功能,详情请参见
SMC产品文档。
对于大批量的服务器系统,一般都会配备自动化运维工具来统一管理,例如较常用的Ansible。使用Ansible可以方便地完成一些需要重复操作的工作,例如,向100台服务器拷贝同一个文件,或者同时在100台服务器上安装Apache服务并启动。
自动化运维工具可以批量下发并执行脚本。迁云工具是一个客户端工具程序,无需安装或复杂配置即可使用。
操作步骤
- 准备自动化批量运维工具。
- 使用命令行调用迁云工具。
迁云工具提供一系列的命令行参数,适用于命令行调用的场景。例如:
- --noenterkey:禁用交互
- --nocheckversion:禁用提示版本更新
- --progressfile:设置进度日志文件
- 编写批量迁移任务脚本。
根据实际迁移任务的需要来编写自动化批量迁移任务脚本,脚本中主要包括以下几项:
- 批量下发迁云工具到待迁移服务器
- 批量配置迁云工具,如目标镜像名等信息
- 批量执行迁云工具,同时获取迁移任务结果
示例脚本如下:
#首先向所有服务器发送迁云工具程序
ansible -f 6 -i host.file all -m copy -a
"src=go2aliyun_client1.2.9.1_linux_x86_64.zip dest=/temp"
#然后解压缩程序
ansible -f 6 -i host.file all -m shell -a "cd /temp &&
unzip \
go2aliyun_client1.2.9.1_linux_x86_64.zip"
#再执行修改配置文件脚本
ansible -f 6 -i host.file all -m shell -a "cd
/temp/go2aliyun_client1.2.9.1_linux_x86_64 && ./config.sh"
sleep 120
# 配置文件脚本./config.sh工作是配置目标镜像名,主要根据子网IP来配置。(其他配置如AK,区域、磁盘信息等都是一致已配置好的)
#!/bin/bash
image_name=`ip a | grep inet | grep eth0 | grep brd | awk '{print
$2}' | awk -F '/' '{print $1}'| awk -F '.' '{print
"move_"$1"_"$2"_"$3"_"$4}'`
sed -i "s/IMAGE_NANE/${image_ame}/" user_config.json
#最后执行迁移脚,同时运行并发量是6个
ansible -f 6 -i host.file all -m shell -a "cd
/temp/go2aliyun_client1.2.9.1_linux_x86_64 && chmod +x go2aliyun_client
&&./go2aliyun_client --nocheckversion --noenterkey"
#获取迁云结果,从client_data中获取生成的镜像Id以及完成状态
#判断client_data里的status自带,如果是Finished则表示迁云完成,同时image_id字段就是最终生成的镜像Id。