
# 准备工作
 #### CSV文件准备
创建一个包含源端主机信息的CSV文件，确保文件能被访问，并且格式符合要求。格式如下：
```
username,ip,port,password
```
- **username**：该字段表示登录源端主机时所使用的用户名。为了确保脚本具有足够的权限执行修改操作，通常应使用具有管理员权限的用户名，如root。
- **ip**：该字段表示源端主机的内网IP地址。
- **port**：该字段表示SSH服务监听的端口号。默认情况下，Linux系统使用端口22。如果源端主机的SSH服务运行在自定义端口上，请在此处指定正确的端口号。
- **password**：该字段表示登录源端主机时所需的密码。脚本将使用此密码通过SSH协议自动登录到源端主机。
![](https://support.huaweicloud.com/bestpractice-mgc/public_sys-resources/caution_3.0-zh-cn.png)
- 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.sh** 和**chmod +x rollback_hosts_linux.sh**命令赋予脚本执行权限。
 
