You need to enable JavaScript to run this app.
文档中心
服务器迁移中心

服务器迁移中心

复制全文
下载 pdf
最佳实践
使用Ansible批量导入迁移源
复制全文
下载 pdf
使用Ansible批量导入迁移源
本文介绍如何使用开源工具Ansible,批量将Linux、Windows操作系统的源服务器导入平台。​
操作场景​
导入迁移源前,您需要在源服务器中完成下载安装迁移工具Agent、修改配置文件、启动服务等操作,当需要迁移的源服务器较多时,配置工作重复且繁琐。Ansible是一个基于Python开发的开源IT自动化工具,简单易用且安全可靠,可以远程在多个受控节点中完成自动化配置、应用程序部署、编排等多种任务,可以帮助您快速完成源服务器配置及导入操作,了解更多。​
说明​
若您需要批量迁移云厂商服务器至火山引擎,建议您使用控制台一键导入迁移源功能,一键批量导入多个迁移源。​
名词解释​
​
名词​
说明​
主控节点​
指安装Ansible工具,通过SSH或WinRm协议远程登录、管理受控节点的服务器。​
受控节点​
指需要被Ansible管理的服务器,本实践中指需要导入平台的源服务器。​
​
使用说明​
​
节点​
说明​
主控节点​
  • Linux操作系统服务器。​
  • 已安装Python 2.7+或Python 3.5+版本,了解更多。​
  • 需绑定公网IP。​
受控节点​
  • 需要绑定公网IP。​
  • 已安装Python 2.6+或Python 3.5+版本,了解更多。​
  • 若源服务器为Windows操作系统,还需满足:​
  • Powershell版本不低于3.0。​
  • .Net框架版本不低于4.0。​
​
操作步骤​
步骤一:配置主控节点​
在任意一台可以访问公网的Linux服务器中,安装、配置Ansible工具作为主控节点。​
  1. 登录作为主控节点服务器。​
  1. 受控节点使用密钥对登录时,请创建登录受控节点的私钥文件。​
  1. 执行如下命令,新建私钥文件。​
  • ​
    vim /root/linux_1.pem​
    ​
说明​
请将linux_1替换为您期望的密钥文件名。​
  1. 按i键,将登录目标实例的私钥信息粘贴入本文件。​
  1. 按esc键,输入:wq,保存修改并退出。​
  1. 执行如下命令,为私钥文件添加读写权限。​
  • ​
    chmod 600 /root/linux_1.pem​
    ​
  1. 若不同受控节点使用不同的密钥对登录,请参考如上步骤,新建对应的私钥文件。​
说明​
本实践新建了/root/linux_1.pem、/root/linux_2.pem两个私钥文件。​
  1. 安装依赖工具。​
  • 若受控节点中存在Linux操作系统服务器,请执行如下命令安装依赖。​
  • ​
    sudo apt update​
    sudo apt install -y sshpass​
    ​
  • 若受控节点中存在Windows操作系统服务器,请执行如下命令安装依赖。​
  • ​
    pip3 install pywinrm​
    ​
  1. 安装Ansible。​
说明​
更多操作系统安装方式请查看Installation Guide。​
  • ​
    Ubuntu
    CentOS
    ​
    ​
    ​
    sudo apt update​
    sudo apt install -y software-properties-common​
    sudo apt-add-repository --yes --update ppa:ansible/ansible​
    sudo apt install -y ansible​
    ​
    ​
    ​
  1. 配置Ansible。​
  1. 执行如下命令,添加作为受控节点服务器的公网IP。​
  • ​
    vim /etc/ansible/hosts​
    ​
  1. 按i键,添加受控节点服务器的公网IP地址。​
  • 若受控节点服务器为Linux操作系统:​
  • 通过密码登录时,请按<公网IP> ansible_ssh_user=<登录用户名> ansible_ssh_pass=<登录密码> 格式配置。​
  • 通过密钥对登录时,请按<公网IP> ansible_ssh_user=<登录用户名> ansible_ssh_private_key_file=<登录私钥文件路径>格式配置。​
  • 若受控节点服务器为Linux操作系统:​
  • 通过密码登录时,请按<公网IP> ansible_user=<登录用户名> ansible_password=<登录密码> ansible_port=5985 ansible_connection=winrm ansible_winrm_transport=basic ansible_winrm_server_cert_validation=ignore格式配置。​
说明​
您还可以通过[$groupname$]的形式,为不同IP地址进行分组,方便按组进行批量操作。更多Ansible分组操作可查看Inventory basics。​
  • 例如按照受控节点服务器操作系统类型分为[linux_smc](Linux操作系统)、[windows_smc](Windows操作系统)两组。​
  • ​​​
  1. 按esc键,输入:wq,保存修改并退出。​
  1. 修改Ansible配置文件。​
  1. 执行如下命令,生成Ansible配置文件。​
  • ​
    ansible-config init --disabled -t all > ansible.cfg​
    ​
  1. 执行如下命令,修改Ansible配置文件。​
  • ​
    vim /etc/ansible/ansible.cfg​
    ​
  1. 按/键,输入host_key_checking搜索关键词。​
  1. 删除host_key_checking = True行首的注释符并修改参数值为False。​
  • ​​​
  1. 按esc键,输入:wq,保存修改并退出。​
步骤二:配置受控节点(可选)​
若您待迁移的服务器使用Windows操作系统,需按本节指引完成配置。​
  1. 登录作为受控节点的Windows服务器。​
  1. 单击Windows图标,在Windows PowerShell目录中右键单击“Windows PowerShell”,依次选择“更多 > 以管理员身份运行”。​
  • ​​​
  1. 在PowerShell中执行如下命令,查看WinRm监听服务是否已开启。​
  • ​
    winrm enumerate winrm/config/Listener​
    ​
  • 若已开启监听服务,请跳过本步骤。​
  • ​​​
  • 若未开启监听服务,请根据如下指引,创建WinRm HTTP(s)监听服务。​
  1. 在PowerShell中执行如下命令,开启WinRm远程连接功能。​
  • ​
    Enable-PSRemoting –force ​
    ​
  1. 在PowerShell中执行如下命令,创建监听服务。​
说明​
HTTP、HTTPS监听服务请按需任选其一即可。​
  • ​
    创建HTTP监听
    创建HTTPS监听
    ​
    ​
    ​
    winrm quickconfig​
    ​
    ​
    ​
  1. 在PowerShell中执行如下命令,打开服务依赖的端口。​
  • 若开启了HTTP监听服务,请开启5985端口。​
  • ​
    New-NetFirewallRule -DisplayName "WinRM-HTTP-In-TCP" -Direction Inbound -Protocol TCP -LocalPort 5985 -Action Allow​
    ​
  • 若开启了HTTPS监听服务,请开启5986端口。​
  • ​
    New-NetFirewallRule -DisplayName "WinRM-HTTPS-In-TCP" -Direction Inbound -Protocol TCP -LocalPort 5986 -Action Allow​
    ​
注意​
被管理节点服务器有安全组配置时,还需在安全组入方向放行相关端口的TCP连接:​
  • 若开启了HTTP监听服务,请放行TCP协议的5985端口。​
  • 若开启了HTTPS监听服务,请放行TCP协议的5986端口。​
步骤三:批量创建迁移源​
  1. 登录管控节点服务器。​
  1. 创建批量导入迁移源脚本。​
说明​
请根据受控节点(即待导入的源服务器)操作系统类型,创建对应的脚本文件。受控节点同时存在Linux、Windows操作系统时,两个脚本均需创建。​
  • ​
    导入Linux服务器
    导入Windows服务器
    ​
    1. 执行如下命令,创建批量导入Linux受控节点的脚本文件。​
    • ​
      vim /root/start_smc_linux.sh​
      ​
    1. 按i键进入编辑模式,复制如下内容粘贴入文件。​
    • ​
      #!/bin/bash​
      ​
      set -eux​
      ​
      WORKDIR="/root"​
      ​
      HOST="smc.volcengineapi.com" ​
      ​
      AK="<your_ak>"​
      SK="<your_sk>"​
      ​
      REGION="cn-beijing"​
      ​
      SOURCE="https://smc.tos-cn-beijing.volces.com/smc-agent_Linux_amd64.tar.gz"​
      ​
      mkdir -p "$WORKDIR"​
      cd "$WORKDIR"​
      ​
      wget -P /root $SOURCE​
      mkdir -p smc/linux_smc && tar -zxvf smc-agent_Linux_amd64.tar.gz -C smc/linux_smc​
      ​
      sed -i 's#\("ak": "\).*#\1'"${AK}"'",#g' user_cfg.json​
      sed -i 's#\("sk": "\).*#\1'"${SK}"'",#g' user_cfg.json​
      ​
      ansible linux_smc -m copy -a "src=/root/smc/linux_smc/ dest=/root"​
      ansible linux_smc -m shell -a "cd /root && chmod +x smc_manage"​
      ansible linux_smc -m shell -a "cd /root && chmod +x smc_agent"​
      ansible linux_smc -m shell -a "cd /root && ./smc_manage start"​
      ​
    1. 请将<your_ak>、<your_sk>修改为您火山引擎账号的实际API访问密钥。获取密钥操作详情可查看Access Key(密钥)管理。​
    1. 按esc键退出编辑模式,输入:wq按回车键,保存并退出文件。​
    ​
  1. 执行如下命令,运行批量导入迁移源脚本。​
  • 批量导入Linux服务器​
  • ​
    /bin/bash /root/start_smc_linux.sh​
    ​
  • 批量导入Windows服务器​
  • ​
    /bin/bash /root/start_smc_windows.sh​
    ​
后续操作​
您可以前往SMC控制台查看迁移源详情,并根据服务器迁移任务指引,创建并开始迁移源服务器数据。​
最近更新时间:2026.10.09 17:32:37
这个页面对您有帮助吗?
有用
有用
无用
无用