更新时间:2025-08-26 GMT+08:00

向主机集群添加目标主机

为了更好地满足实际业务需求、保障系统稳定运行并提升整体部署效率,需向主机集群中添加单个或多个目标主机实现部署任务。

本章节将介绍向CodeArts Deploy主机集群添加目标主机的相关操作。

前提条件

  • 已有主机集群,并在集群中拥有添加主机的权限。
  • 已拥有满足以下条件的主机(如果没有,请参考购买弹性云服务器完成购买)。
    • 已绑定公网IP。
    • 已完成系统主机配置,参见Linux系统主机配置Windows系统主机配置

      (华为云ECS(Linux系统)默认已完成该配置,无需再次配置,但Windows系统主机需要进行配置。)

    • 如果需要对主机做监控,那么需要对主机做委托。操作步骤参考创建主机委托

添加目标主机

  1. 进入软件开发生产线首页,单击目标项目名称,进入项目。
  2. 单击菜单持续交付 > 部署,进入项目下部署服务界面。
  3. 在“基础资源管理”界面,单击已创建的集群名称,进入该集群页面的“目标主机”页签。
  4. 单击“添加或导入主机”,添加方式选择通过IP手动添加
  5. 当主机集群的主机连通方式为“直连模式”时,只需新增目标主机即可。填写以下信息后,单击“确定”,完成目标主机的创建。

    表1 Linux系统目标主机参数说明

    参数项

    是否必填

    说明

    主机名

    请输入自定义的目标主机名称。

    仅支持3-128位数字、中文、英文字母或-_.符号。

    IP

    请输入目标主机所绑定的公网IP地址。支持IPv4或IPv6格式。

    操作系统

    不可更改,默认为当前主机集群的操作系统。

    请参见Linux系统主机配置对目标主机进行配置,避免连通性认证失败。

    认证方式

    请根据实际情况选择密码密钥进行认证。

    • 密码:页面显示“用户名”“密码”。以ECS为例,输入的是ECS的用户名及密码。
    • 密钥:页面显示“用户名”“密钥”。密钥的生成与获取方式请参考获取Linux密钥

    SSH端口

    推荐使用22端口,支持自定义端口。

    表2 Windows系统目标主机参数说明

    参数项

    是否必填

    说明

    主机名

    请输入自定义的目标主机名称。

    仅支持3-128位数字、中文、英文字母或-_.符号。

    IP

    请输入目标主机所绑定的公网IP地址。支持IPv4或IPv6格式。

    操作系统

    不可更改,默认为当前主机集群的操作系统。

    请参见Windows系统主机配置对目标主机进行配置,避免连通性认证失败。

    认证方式

    Windows系统代理机仅支持密码认证。以ECS为例,输入的是ECS的用户名及密码。

    winrm端口

    推荐使用5986端口,支持自定义端口。

  6. 当主机集群的主机连通方式为“代理模式”时,需要先新增代理主机再增加目标主机。填写以下信息后,单击“确定”,完成代理主机和目标主机的创建。

    1. 新增代理主机。
      表3 Linux系统代理主机参数说明

      参数项

      是否必填

      说明

      主机名

      请输入自定义的代理主机名称。

      仅支持3-128位数字、中文、英文字母或-_.符号。

      IP

      请输入代理主机所绑定的公网IP地址。支持IPv4或IPv6格式。

      操作系统

      不可更改,默认为当前主机集群的操作系统。

      请参见Linux系统主机配置对目标主机进行配置,避免连通性认证失败。

      认证方式

      请根据实际情况选择密码密钥进行认证。

      • 密码:页面显示“用户名”“密码”。以ECS为例,输入的是ECS的用户名及密码。
      • 密钥:页面显示“用户名”“密钥”。密钥的生成与获取方式请参考获取Linux密钥

      SSH端口

      推荐使用22端口,支持自定义端口。

      表4 Windows系统代理主机参数说明

      参数项

      是否必填

      说明

      主机名

      请输入自定义的代理主机名称。

      仅支持3-128位数字、中文、英文字母或-_.符号。

      IP

      请输入代理主机所绑定的公网IP地址。支持IPv4或IPv6格式。

      操作系统

      不可更改,默认为当前主机集群的操作系统。

      请参见Windows系统主机配置对目标主机进行配置,避免连通性认证失败。

      认证方式

      Windows系统代理机仅支持密码认证。以ECS为例,输入的是ECS的用户名及密码。

      winrm端口

      推荐使用5986端口,支持自定义端口。

    2. 新增目标主机。
      表5 Linux系统目标主机参数说明

      参数项

      是否必填

      说明

      主机名

      请输入自定义的目标主机名称。

      仅支持3-128位数字、中文、英文字母或-_.符号。

      代理主机

      请选择目标代理主机为无法连接公网的目标主机进行网络代理。

      IP

      请输入目标主机IP地址。支持IPv4或IPv6格式。

      操作系统

      不可更改,默认为当前主机集群的操作系统。

      请参见Linux系统主机配置对目标主机进行配置,避免连通性认证失败。

      认证方式

      请根据实际情况选择密码密钥进行认证。

      • 密码:页面显示“用户名”“密码”。以ECS为例,输入的是ECS的用户名及密码。
      • 密钥:页面显示“用户名”“密钥”。密钥的生成与获取方式请参考获取Linux密钥

      SSH端口

      推荐使用22端口,支持自定义端口。

      表6 Windows系统目标主机参数说明

      参数项

      是否必填

      说明

      主机名

      请输入自定义的目标主机名称。

      仅支持3-128位数字、中文、英文字母或-_.符号。

      代理主机

      请选择目标代理主机为无法连接公网的目标主机进行网络代理。

      IP

      请输入目标主机的IP地址。支持IPv4或IPv6格式。

      操作系统

      不可更改,默认为当前主机集群的操作系统。

      Windows系统:请参见Windows系统主机配置对目标主机进行配置,避免连通性认证失败。

      认证方式

      Windows系统代理机仅支持密码认证。以ECS为例,输入的是ECS的用户名及密码。

      代理机转发端口

      该端口为进行Windows代理机配置时的监听端口,推荐使用54端口,支持自定义端口。

  7. 您也可单击“添加或导入主机”,添加方式选择“导入已购ECS”,将自申请的华为云弹性云服务器作为目标主机或代理主机。

    使用导入已购ECS功能时,导入成功的前提条件:

    • 实例正在运行中。
    • 实例与主机集群操作系统一致。
    • 在默认资源池的代理场景下,代理主机必须为公网IP。
    • 实例已导入为目标主机,不能导入为代理主机。
    • 在代理机场景下,需要先配置代理主机才能正常使用目标主机。

  8. 进行主机连通性验证。

    主机添加成功后开始自动进行连通性验证,如果主机连通性验证失败,请单击“失败”,根据弹框中显示的失败原因或单击“查看解决方案”进行排查故障。

    更多连通性验证问题,请参考主机管理常见问题排查。

为确保Linux系统主机连通性验证成功,Linux主机需确保安装Python并开启SELinux机制,目标主机需要满足以下条件。

  • 目标主机安装Python
    需安装Python2.6及以上版本,如果已安装Python2.6以下版本,需要在主机上安装以下模块,各系统安装命令如下:
    • Ubuntu系统
      sudo apt install python-minimal python-simplejson  
    • Centos或Euler系统
      sudo yum install python-minimal python-simplejson 
      ln -s /usr/bin/python2 /usr/bin/python

    采用Apt或者Yum安装工具时,请确保已配置可用的源。

  • 主机开启SELinux机制并安装“libselinux-python”模块:
    1. 查看SELinux状态,命令如下:
      /usr/sbin/sestatus

      “SELinux”状态参数值所对应的模式:

      SELinux=disabled:未开启。

      SELinux=enforcing:强制模式,表示所有违反安全策略的行为都将被禁止。

      SELinux=permissive:宽容模式,表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。

    2. 若SELinux=disabled,则主机未开启该机制,需修改SELinux状态,步骤如下:
      1. 编辑SELinux的config文件,执行命令:
        vi /etc/selinux/config
      2. 根据实际情况选择修改SELinux参数为参数:

        SELinux=enforcing:强制模式,表示所有违反安全策略的行为都将被禁止。

        SELinux=permissive:宽容模式,表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。

      3. 修改完成按键盘“Esc键”,退出编辑模式,执行下面的命令,保存并退出文件。
        wq
      4. 在根目录下创建隐藏文件.autorelabel,执行下面的命令后,重启Linux主机。
        touch /.autorelabel
    3. 在主机上安装“libselinux-python”模块,各系统安装命令如下:
      • Ubuntu系统
        sudo apt install libselinux-python
      • Centos或Euler系统
        sudo yum install libselinux-python
为确保Windows系统主机连通性验证成功,目标主机需要满足以下条件,下面分别以Windows2012主机为例进行介绍,配置方式分为自动化脚本配置手动配置等两种。

Windows10、Windows2016或Windows2019作为目标主机的自动化脚本配置方法,请参考Windows2012配置方法,脚本获取请参考win2016自动化配置脚本

Windows7作为目标主机的自动化脚本配置方法,请参考Windows2012配置方法,脚本获取请参考win2012自动化配置脚本

  • 自动化脚本配置

自动化脚本配置具体步骤如下:

  1. 配置前请检查是否已经进行安全配置,否则会出现连通性验证失败的情况。
  2. 获取自动化配置脚本。

    1. 下载win2012自动化配置脚本。
    2. 手动解压“Windows2012ConfigureRemotingForAnsible.zip”,得到“Windows2012ConfigureRemotingForAnsible.ps1”脚本。

  3. 配置主机。

    进入主机,打开powershell,进入“Windows2012ConfigureRemotingForAnsible.ps1”脚本所在目录,输入如下命令:

    .\Windows2012ConfigureRemotingForAnsible.ps1

    执行“Windows2012ConfigureRemotingForAnsible.ps1”脚本,如下图所示。

    如果提示“无法加载文件,需要进行数字签名”,如下图所示。

    该错误是因为主机powershell默认模式禁止执行脚本,需要在powershell中执行如下命令:

    set-executionpolicy unrestricted

    将策略更改为unrestricted,执行命令后提示是否确认更改,输入“Y”即可,如下图所示。

  4. 查看配置。

    在powershell内执行如下命令:

    winrm e winrm/config/listener
    • 若出现HTTPS且Hostname不为空,则表示监听成功,即Windows2012部署环境自动化配置成功,如下图所示。

    • 如果监听命令的返回结果中,Hostname为空,则是因为您的主机无IIS服务和签名证书等信息,需要执行以下脚本。
      #配置WinRM远端管理
      winrm enumerate winrm/config/listener
      winrm quickconfig
      winrm set winrm/config/service/auth '@{Basic="true"}'
      winrm set winrm/config/service/auth '@{CredSSP="true"}'
      winrm set winrm/config/service '@{AllowUnencrypted="true"}'
      #安装IIS服务
      Import-Module servermanager
      Add-windowsfeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-App-Dev,Web-ASP,Web-ISAPI-Ext,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Security,Web-Filtering,Web-Stat-Compression,Web-Mgmt-Tools
      #新建自签名证书
      New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My\ -DnsName 'windows-deploy-connect'
      #查看自签名证书
      ls Cert:\LocalMachine\My
      #通过新增的自签名证书添加安全连接
      $windows_test_key=(Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match "windows-deploy-connect"}).Thumbprint
      cmd /c "winrm set winrm/config/Listener?Address=*+Transport=HTTPS @{Enabled=`"true`";Port=`"5986`";Hostname=`"windows-deploy-connect`";CertificateThumbprint=`"$windows_test_key`"}"

  • 手动配置

手动配置具体步骤如下:

  1. 修改Powershell,将powershell策略更改为unrestricted。

    管理员用户打开Powershell,执行如下命令:

    set-executionpolicy unrestricted

    更改powershell策略,如下图所示。

    执行命令后提示是否确认更改,输入“Y”即可。

  2. 配置Windows远端管理(WinRM)。

    1. 在Powershell中依次输入如下五条命令:
      winrm enumerate winrm/config/listener
      winrm quickconfig
      winrm set winrm/config/service/auth '@{Basic="true"}'
      winrm set winrm/config/service/auth '@{CredSSP="true"}'
      winrm set winrm/config/service '@{AllowUnencrypted="true"}'
    2. 校验是否配置成功,命令如下:
      winrm get winrm/config/service/auth

      执行命令后如果“Basic”“Kerberos”“CredSSP”均为true则表示配置成功,如下图所示。

  3. 安装证书。

    1. 打开服务器管理器,启动IIS。
    2. 单击添加角色和功能 > 下一步,如下图所示。

    3. 进入“安装类型”页面,选择第一个选项,单击“下一步”,如下图所示。

    4. 进入“服务器角色”页面,勾选“Web服务器(IIS)”。

    5. 进入“功能”页面,仅勾选“.NET Framework 4.5 功能”选项,单击下一步
    6. 进入“角色服务”页面,勾选“IIS管理脚本及工具”“管理服务”,单击下一步,完成安装。

  4. 添加证书。

    1. 同时按“Windows键+R”打开运行框,输入打开IIS管理窗口的命令“inetmgr”,单击“确定”
    2. 打开IIS 管理器,双击服务器证书,如下图所示。

    3. 进入“服务器证书”界面,单击“创建自签名证书”,如下图所示。

    4. 进入“指定友好名称”界面,自定义输入自验证证书名称,单击“确定”,如下图所示。

    5. 在Powershell中查看证书,输入如下命令:
      ls Cert:\LocalMachine\My

      出现如下图所示两列数据即表示证书添加成功。

    6. 通过证书监听HTTPS端口,配置安全连接。

      命令格式如下:

      winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Port="自定义端口号,默认5986";Hostname="证书域名";CertificateThumbprint="证书key值"}
      • “Hostname”为上一步“Subject”列对应的值。
      • “CertificateThumbprint”为上一步“Thumbprint”列对应值中“CN=”后边的内容,每两个字母以空格分开。

      在CMD命令行中输入如下命令,如下图所示。

      winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Port="5986";Hostname="XXXXXXXXXXXXXXXX";CertificateThumbprint="DF D7 02 1D F6 AB E2 78 C2 0D 87 4C FC 15 5F 16 D3 33 24 2A"}

      请务必在CMD命令行中执行该命令,且“Thumbprint”列对应的值,每两个字母必须以空格分开,否则后导致连通性验证失败。一旦未以空格分开,请务必删除签名重新添加。

      若提示“服务无法创建该资源,因为它已存在。”请执行以下命令删除该资源后,重新执行该步骤。

      winrm delete winrm/config/Listener?Address=*+Transport=HTTPS
    7. 在Powershell中校验是否监听成功,输入如下命令:
      winrm e winrm/config/listener

      若出现HTTPS则表示监听成功,即完成了所有配置,如下图所示。

  5. 进行连通性验证前请检查是否已经进行安全配置,否则会出现验证失败的情况。

获取Linux密钥

  1. 检查主机中是否存在密钥。

    登录主机,执行以下命令,切换至root账号。

    sudo su root

    执行以下命令,查询密钥文件。

    ls  ~/.ssh 
    • 若提示目录不存在,或~/.ssh目录下没有id_rsa文件,请跳转至生成密钥
    • 若~/.ssh目录下有id_rsa文件,您可以选择使用已有密钥文件或者跳转至生成密钥重新生成密钥文件。

  2. 生成密钥。

    参考以下命令生成密钥对:
    1. 生成密钥。
      ssh-keygen -t rsa
    2. 当显示以下回显时,敲击键盘“Enter”

    3. 当显示以下回显时,敲击键盘“Enter”,默认不设置密码(设置密码会导致部署服务密钥校验失败)。

    4. 当显示以下回显时,敲击键盘“Enter”

    5. 出现以下回显时,表示密钥已生成。

    6. 执行以下命令。可查看.ssh目录下生成的密钥文件。其中,id_rsa、id_rsa.pub文件里储存的分别是刚生成的私钥、公钥。
      ls  ~/.ssh 

  3. 检查生成的密钥信息。

    执行以下命令。
    cat ~/.ssh/id_rsa
    • 若密钥前缀为“-----BEGIN RSA PRIVATE KEY-----”,说明密钥正确。复制该密钥,保存至本地,在添加主机/代理机时输入“密钥”框中。
    • 若密钥前缀为“-----BEGIN OPENSSH PRIVATE KEY-----”,说明密钥错误。执行以下命令重新生成密钥。
      ssh-keygen -m PEM -t rsa

  4. 密钥授权。

    执行以下命令,将公钥追加到主机authorized_keys文件。

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    • 操作authorized_keys文件时,需要您至少有操作id_rsa、id_rsa.pub文件的权限。
    • 在使用密钥进行连通性验证时,用户名必须为操作authorized_keys文件的用户名。
    • 手动复制私钥时不要复制多余的空格,否则可能连通性验证不成功。

创建主机委托

  1. 登录华为云控制台
  2. 鼠标悬停于右上角的用户名称,如下图所示,选择并单击“统一身份认证”。

  3. 单击左侧目录树的“委托”,进入委托页面。
  4. 单击右上角“创建委托”,进入创建委托页面。
  5. 参考表7 创建委托的参数说明设置创建委托的参数。

    表7 创建委托的参数说明

    名称

    说明

    样例

    委托名称

    该参数项为必填,表示该委托代理的名称。

    aom_ecm_trust

    委托类型

    选择“云服务”。

    -

    云服务

    选择”弹性云服务器ECS 裸金属服务器BMS”。

    -

    持续时间

    选择“永久”

    -

    描述

    该参数项为非必填。用于补充说明该委托代理的详细信息。

    -

  6. 单击“完成”,进入授权页面。
  7. 在右上角搜索框中输入“APM”,在查找结果中勾选“APM Administrator”。

  8. 单击页面下方的“确定”,委托关系创建成功。

委托生效

  1. 在目录树左侧选择“服务列表 > 弹性云服务器”,如下图所示。

  2. 单击要启用AOM监控的弹性云服务器名称,进入弹性云服务器参数配置页面,例如下图所示。搜索框默认按照名称搜索、过滤。

  3. 单击需要委托的委托名称ID,例如下图所示。

  4. 单击,确认后即可生效,如下图所示。

相关文档