更新时间:2024-09-14 GMT+08:00
分享

准备工作

CSV文件准备

创建一个包含源端主机信息的CSV文件,确保文件能被访问,并且格式符合要求。格式如下:
username,ip,port,password
  • username:该字段表示登录源端主机时所使用的用户名。为了确保脚本具有足够的权限执行修改操作,通常应使用具有管理员权限的用户名,如root。
  • ip:该字段表示源端主机的内网IP地址。
  • port:该字段表示SSH服务监听的端口号。默认情况下,Linux系统使用端口22。如果源端主机的SSH服务运行在自定义端口上,请在此处指定正确的端口号。
  • password:该字段表示登录源端主机时所需的密码。脚本将使用此密码通过SSH协议自动登录到源端主机。
  • CSV文件的第一行是标题行,不会被脚本解析
  • CSV文件的每一行对应一台主机信息,并且每一列信息之间用英文逗号分隔。
  • 确保格式正确和信息准确,不要出现多余的空格、逗号或无效的IP地址等。
示例:
username,ip,port,password
root,192.168.1.10,xx,examplePass123
root,192.168.1.11,xx,examplePass456

Hosts文件准备

创建一个文本文件,包含需要追加到源端主机/etc/hosts文件中的内容,并确保该文件能被访问。文件内写入相关云服务的接口域名映射,并以#Migration-proxy-start开始,以#Migration-proxy-end结束。相关云服务的接口域名映射需要根据具体的环境而定,请联系对应局点的环境接口人获取。

示例:
#Migration-proxy-start
xxx.xxx.xxx.xxx  iam.xxx.com
xxx.xxx.xxx.xxx  ecs.xxx.com
xxx.xxx.xxx.xxx  evs.xxx.com
xxx.xxx.xxx.xxx  ims.xxx.com
xxx.xxx.xxx.xxx  obs.xxx.com
xxx.xxx.xxx.xxx  eps.xxx.com
xxx.xxx.xxx.xxx  vpc.xxx.com
#Migration-proxy-end

日志目录准备

  • 配置日志目录:脚本会默认使用 /var/log/update_hosts 作为日志存储目录。目录不存在的话,脚本会自动创建,如果需要更改日志存储路径,请修改脚本中的 LOG_DIR 参数的值。
  • 检查日志目录权限:确保当前用户对日志目录有写入权限。如果权限不足,需要调整目录权限或选择其他路径。

检查源端主机连通性

  • 网络连接检查:确保执行脚本的主机能够通过网络访问所有源端主机。
  • SSH端口开放检查:确保源端主机的SSH端口(默认是22)已开放,允许从执行脚本的主机通过SSH协议进行连接。

SSH访问权限设置

  • SSH服务配置:确保所有源端主机上的SSH服务已启用并运行正常。大多数Linux服务器发行版默认启用SSH服务。
  • SSH密码认证:确保所有源端主机的SSH服务已配置为接受密码认证,以便脚本可以使用CSV文件中提供的密码进行自动登录。

脚本执行机环境配置

确保执行脚本的Linux主机上安装了以下必要的工具和命令:

  • SSH工具:用于建立与远程主机的安全连接。
  • sed工具:用于编辑和修改/etc/hosts文件内容。
  • setsid命令:用于在SSH连接中避免交互需求(通常用于避免密码输入时的交互)。
  • mktemp命令:用于创建临时文件或目录。

执行权限和用户权限配置

  • 用户权限配置:确保执行脚本的用户具有对日志目录、CSV文件和hosts文件的读写权限。
  • 脚本执行权限配置:确保update_hosts_linux.sh 和 rollback_hosts_linux.sh脚本文件具有执行权限。使用chmod +x update_hosts_linux.shchmod +x rollback_hosts_linux.sh命令赋予脚本执行权限。

相关文档