# 向主机集群添加代理主机
为了更好地解决复杂网络环境下通信问题，需向主机集群中添加单个或多个代理主机实现网络互通。本章节介绍向CodeArts Deploy主机集群添加代理主机的相关操作。
#### 前提条件
- 已有主机集群，用户并在集群中拥有添加主机的权限。
- 已有绑定公网IP的主机（如果没有，请参考[购买弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)完成购买）。
- 使用导入已购ECS功能时，要满足以下条件才能成功导入主机：
  - ECS实例正在运行中。
  
  - ECS实例与主机集群操作系统一致。
  
  - 在默认资源池的代理场景下，代理主机必须为公网IP。
  
  - ECS实例已导入为目标主机，不能再导入为代理主机。
  
  - 在代理机场景下，需要先配置代理主机才能正常使用目标主机。
   
 
#### 约束与限制
- 单主机集群下可添加主机数量，请参见[规格与限制](https://support.huaweicloud.com/productdesc-deployman/deployman_pdtd_00002.html#section3) \>基本限制 \> 基础资源管理限制。
- 主机支持的操作系统版本，请参见[规格与限制](https://support.huaweicloud.com/productdesc-deployman/deployman_pdtd_00002.html#section3) \> 操作系统限制。
 
#### 添加代理主机
1. 进入CodeArts首页。 
   1. 登录[CodeArts控制台](https://console.huaweicloud.com/devcloud)，单击![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002524958371.png)，根据需要选择已开通CodeArts的区域。
   
   2. 单击"前往工作台"。 如果当前账号采用的是历史计费模式（详情请参见[历史计费模式说明](https://support.huaweicloud.com/price-devcloud/codearts_29_0031.html)），则单击"立即使用"。
      
   
   
   
   
2. 单击目标项目名称，进入项目。
3. 单击菜单**"** **持续交付 \> 部署** **"**，进入项目下部署服务界面。
4. 在"基础资源管理"界面，单击已创建的集群名称，进入该集群页面的"目标主机"页签。
5. 单击**"添加或导入主机"** ，添加方式可选择**["通过IP手动添加"]** 或**["导入已购ECS"]**。
6. 选择"**通过IP手动添加** "。
   
   当主机集群的主机连通方式为**"代理模式"** 时，可新增代理主机。填写以下信息后，单击**"确定"** ，完成代理主机的创建。
   表1Linux系统代理主机参数说明 
   | 参数项                | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 主机名              | 请输入自定义的代理主机名称。 仅支持3-128位数字、中文、英文字母或-_.符号。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | IP                | 请输入代理主机所绑定的公网IP地址。支持IPv4或IPv6格式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 操作系统             | 不可更改，默认为当前主机集群的操作系统。 请参见[Linux系统主机配置](https://support.huaweicloud.com/usermanual-deployman/deployman_hlp_1101.html#deployman_hlp_1101__section18131012256)对目标主机进行配置，避免连通性认证失败。                                                                                                                                                                                                                                                                                                                      |
   | 认证方式              | 请根据实际情况选择**密码** 或**密钥**进行认证。 - 密码：页面显示**"用户名"** 与**"密码"**。以ECS为例，输入的是ECS的用户名及密码。  - 密钥：页面显示**"用户名"** 与**"密钥"** 。密钥的生成与获取方式请参考[获取Linux密钥](https://support.huaweicloud.com/usermanual-deployman/deployman_hlp_1101.html#deployman_hlp_1101__section2471159155011)。   |
   | SSH端口             | 推荐使用22端口，支持自定义端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 安装AOM-ICAgent复选框 | 若勾选该选项，可免费在主机上安装并使用AOM-ICAgent，实现指标监控、日志查询、告警功能。其中，ICAgent仅限华为云Linux主机，安装前请参考[创建/使用委托](https://support.huaweicloud.com/usermanual-deployman/deployman_hlp_1101.html#deployman_hlp_1101__section46981510115216)配置委托。                                                                                                                                                                                                                                                                                                                                          |
      
   表2Windows系统代理主机参数说明 
   | 参数项    | 说明                                                                                                                                                                                                                                      |
   |:---|:---|
   | 主机名    | 请输入自定义的代理主机名称。 仅支持3-128位数字、中文、英文字母或-_.符号。                                                                                                                                         |
   | IP    | 请输入代理主机所绑定的公网IP地址。支持IPv4或IPv6格式。                                                                                                                                                                                                        |
   | 操作系统  | 不可更改，默认为当前主机集群的操作系统。 请参见[Windows系统主机配置](https://support.huaweicloud.com/usermanual-deployman/deployman_hlp_1101.html#deployman_hlp_1101__section11308133819336)对目标主机进行配置，避免连通性认证失败。 |
   | 认证方式    | Windows系统代理机仅支持密码认证。以ECS为例，输入的是ECS的用户名及密码。                                                                                                                                                                                              |
   | winrm端口 | 推荐使用5986端口，支持自定义端口。                                                                                                                                                                                                                   |
      
   
   
7. 选择"**导入已购ECS** "。
   
   您也可单击**"添加或导入主机"** ，**"**选择添加方式**"选择"导入已购ECS"，** 将自申请的华为云弹性云服务器作为代理主机。
   - 单个导入 单击对应ECS实例行的"导入"，在弹出的页面，参考上述[步骤6]中Linux主机和Windows主机参数进行配置。
     
   
   - 批量导入 勾选对应ECS实例，单击下方的"批量导入"，在弹出的页面，参考上述[步骤6]中Linux主机和Windows主机参数进行配置。
     配置后，可单击参数的![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002506306046.png)图标，向下复制。
     
    
   
   
8. 进行主机连通性验证。 
   主机新建成功后开始自动进行连通性验证，当显示"成功"则为验证成功。如果主机连通性验证失败，请单击"**失败** "，根据弹框中显示的失败原因并单击**"查看解决方案"**进行排查并处理故障。
   更多连通性验证问题，请参考[主机管理常见问题](https://support.huaweicloud.com/deployman_faq/deployman_faq_0000.html)排查。
   
   
 
#### 配置不同系统的代理主机
CodeArts Deploy支持添加Linux系统代理主机和Windows系统代理主机，下文将详细介绍不同系统主机的配置方法。
- [Linux系统代理机配置]
  **所需资源**
  使用代理机方式进行部署，单个VPC下需要配备的资源如下：
  
  | 资源类型  | 配套资源规格 | 数量   | 说明                                                                                    |
  |:---|:---|:---|:---|
  | 弹性IP | 带宽≥5M  | 2 | 1、创建代理机时需要添加绑定弹性IP的云主机作为代理机； 2、创建SNAT网关时需要绑定弹性IP。 |
     
  **操作步骤**
  1. 开启代理机SSH转发功能。 
     - 使用代理机方式连通时，需要代理机开通SSH转发功能，检查代理主机上SSH配置AllowTcpForwarding是否开启，命令如下：
       ```
       grep AllowTcpForwarding "/etc/ssh/sshd_config"
       ```
       
     
     - 如果该属性值为no，则设置为yes：
       ```
       AllowTcpForwarding yes
       ```
       
     
     - 并重新启动sshd服务，重启命令如下：
       ```
       service sshd restart
       ```
       
     
     
     
     
  
  2. 配置SNAT服务，详细操作如下。 
     1. 单击左上角![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002288718661.gif "点击放大")服务列表，单击"**网络 \>NAT网关**"进入控制台；
     
     2. 在NAT网关控制台里单击"**购买公网NAT网关**"；
     
     3. 填写相应信息后，单击"立即购买"；过程中可能产生费用，详情可参考[NAT计费说明](https://support.huaweicloud.com/price-natgateway/nat_billing_0001.html)。
     
     4. NAT网关创建成功后，返回到NAT网关列表，单击目标NAT网关名称，进入NAT网关详情页；
     
     5. 单击"**SNAT规则** "页签，单击"**添加SNAT规则**"，填写相关配置；
     
     6. 单击"**确定**"，完成SNAT服务配置。
     
     
     
     
  
  3. 查看路由规则。 
     1. 进入控制台，在页面左上角单击![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002288831705.png "点击放大")，选择"**网络 \> 虚拟私有云**"，进入网络控制台。
     
     2. 选择"**虚拟私有云** "下的"**路由表** "，单击目标路由表的名称，进入路由表详情。
        ![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002254141460.png "点击放大")
        确认下方表格中路由信息是否存在。
        ![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002288831713.png "点击放大")
        表3路由信息说明 
        | 路由信息  | 描述                                                                                                               |
        |:---|:---|
        | 目的地址   | 目的网段，默认为0.0.0.0/0，请根据实际情况选择接入环境IP。                                                                               |
        | IP地址数  | 单击IP地址数量，可以查看IP地址具体的信息。                                                                                           |
        | 下一跳类型 | NAT网关。                                                                                                              |
        | 下一跳     | 配置的SNAT规则的网关实例。                                                                                                 |
        | 类型     | 系统路由：系统自动添加的路由，不能修改和删除。 自定义路由：通过添加自定义路由将目标流量路由到指定的目的地，可以删除和修改。自定义路由和系统路由不能冲突。 |
        | 描述    | 针对于该路由的信息描述。                                                                                                    |
        | 操作     | 支持修改及删除路由操作。                                                                                                      |
           
        
     
     
     
     
   
- [Windows系统代理机配置]
  
  **所需资源**
  - 已有Windows机器。
  
  - 代理机和主机网络连通正常。
  
  
  **操作步骤**
  1. 进入代理机，打开powershell窗口，执行netsh命令，如下图所示。 
     ![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002376723177.png "点击放大")
     - 按参数说明替换参数：
       ```
       netsh interface portproxy add v4tov4 listenaddress=${proxy_ip}  listenport=${proxy_port}  connectaddress=${host_ip}  connectport=${host_port}
       ```
       如果是IPv6主机，则请将上文命令中的"v4tov4"替换为"v6tov6"，再进行参数替换。
       
     
     - 查看设置是否生效，可执行如下命令：
       ```
       netsh interface portproxy show all
       ```
       
     
     - 如果代理信息添加错误，可执行如下命令清除：
       ```
       netsh interface portproxy delete v4tov4  listenaddress=${proxy_ip} listenport= ${proxy_port} protocol=tcp
       ```
       
     
     
     表4参数说明 
     | **参数**      | **参数释义**     |
     |:---|:---|
     | ${proxy_ip}  | 代理机私网IP     |
     | ${proxy_port}   | 代理机监听端口，如54  |
     | ${host_ip}    | 主机私网IP       |
     | ${host_port} | 主机端口，一般为5986 |
        
     
     
  
  2. 进行[安全配置](https://support.huaweicloud.com/usermanual-deployman/deployman_hlp_0018.html#deployman_hlp_0018__section1175172794120)，需要开通代理监听端口，即上述指令中的${proxy_port}。
   
#### 相关文档
- 关于主机集群相关API请参见[主机管理](https://support.huaweicloud.com/api-deployman/HostManagement.html)。
- 关于连通性验证问题，请参见[主机管理常见问题](https://support.huaweicloud.com/deployman_faq/deployman_faq_0000.html)排查。
 
