- 最新动态
- 功能总览
- 产品介绍
- 快速入门
-
用户指南
- 部署服务CodeArts Deploy使用流程
- 购买并授权使用CodeArts Deploy
- 访问CodeArts Deploy服务首页
- 配置部署服务的主机集群
-
使用空白模板新建并部署应用
- 使用空白模板创建CodeArts Deploy应用
- 配置CodeArts Deploy应用的部署步骤
- 配置CodeArts Deploy应用的参数
- 配置CodeArts Deploy应用的主机环境
- 配置CodeArts Deploy应用不同角色的管理权限
- 部署CodeArts Deploy应用并查看结果
- 配置CodeArts Deploy应用的系统通知和第三方订阅通知
- 使用预置模板新建并部署应用
- 使用自定义模板新建并部署应用
- 查询审计日志(可选)
- 最佳实践
- API参考
- 场景代码示例
-
常见问题
- 主机管理
- 应用部署
-
公共问题
- 一台主机是否只能对应一个项目?
- 是否需要事先将运行环境(Tomcat、python等)安装到用户主机中,再部署应用?
- 部署应用失败,提示“AnsibleUndefinedVariable: 'xxxx' is undefined”,怎样处理?
- 应用部署成功但应用验证路径下的url无法访问,怎样处理?
- 部署应用失败,日志提示DNS解析问题如何解决?
- 草稿应用无法部署,如何解决?
- 部署应用失败,JDK已安装且已配置环境变量,但报错:please configure JDK environment variables,怎样处理?
- 日志提示权限不够,怎样处理?
- 路径不合法,怎样处理?
- 提示“环境下没有主机”,怎样处理?
- 使用sudo权限执行报错,怎样处理?
- 文件不存在或者路径不正确,怎样处理?
- 当前主机用户权限不足,怎样处理?
- 文件路径不存在,怎样处理?
- 选择【Docker应用部署-Linux】系统模板,Ubuntu22执行步骤“创建并启动容器”时失败,怎样处理?
- Windows主机部署过程中,偶现连接超时,怎样处理?
-
自定义应用步骤问题
- URL健康测试
- 选择部署来源
- 停止服务
-
拷贝文件
- 没有找到目标文件
- 文件路径不合法
- 文件不存在或者路径不正确
- 部署“拷贝文件”步骤显示成功但没达到预期结果
- 当前主机用户权限不足
- Linux环境间拷贝文件报错: copy file failed
- windows环境间拷贝文件报错:Windows does not support copying files between hosts
- 环境间拷贝文件报错:Hosts using secret key credit do not support copying files between
- 部署应用中断
- 权限不够
- 参数含反斜杠“\”(特例)
- 环境下没有主机
- 环境不存在
- windows主机部署应用失败
- 使用sudo权限执行报错
- 部署进程被第三方杀毒软件拦截
- 路径不合法
- 在Centos上安装软件提示网络故障
- 在Ubuntu上安装软件提示网络故障
- Linux机器输入Windows路径,提示安装路径输入不合法
- 删除文件
- 解压文件
- 配置文件修改
- 启动/停止Tomcat服务
- 启动/停止Go服务
- 启动/停止SpringBoot服务
- 启动/停止Nginx
- 启动/停止IIS服务
- 启动/停止Node.js
-
执行shell命令
- 部署“执行shell命令”步骤,提示新建失败
- 使用Shell命令启动服务日志显示成功实际没有启动
- 使用了服务器未识别的Shell命令
- Shell命令中引用了不存在的文件或文件夹
- Shell命令如何引用参数设置中的参数
- 部署“执行Shell命令”步骤超时
- 使用了交互性的Shell命令
- 使用su命令切换用户后再部署shell命令超时
- 部署应用中断
- 权限不够
- 参数含反斜杠“\”(特例)
- 环境下没有主机
- 环境不存在
- 使用sudo权限执行报错
- 部署进程被第三方杀毒软件拦截
- 路径不合法
- 在Centos上安装软件提示网络故障
- 在Ubuntu上安装软件提示网络故障
- Linux机器输入Windows路径,提示安装路径输入不合法
- 其它常见问题
- 执行Shell脚本
- 执行PowerShell命令
- 执行PowerShell脚本
-
执行Docker命令
- docker服务未安装
- 执行Docker命令参数错误
- 当前用户没有部署权限
- 镜像不存在
- login命令部署失败
- build命令部署失败
- tag命令部署失败
- push命令部署失败
- run命令部署失败
- start、restart、stop、rm命令部署失败
- rmi命令部署失败
- pull命令部署失败
- rm命令部署失败
- 连接超时
- 部署应用中断
- 权限不够
- 参数含反斜杠“\”(特例)
- 环境下没有主机
- 环境不存在
- windows主机部署应用失败
- 使用sudo权限执行报错
- 部署进程被第三方杀毒软件拦截
- 路径不合法
- 在Centos上安装软件提示网络故障
- 在Ubuntu上安装软件提示网络故障
- Linux机器输入Windows路径,提示安装路径输入不合法
- 执行等待
- ServiceStage相关问题
- Kubernetes部署步骤操作相关问题
-
Ansible
- 非法的入口文件路径
- 找不到入口文件
- Ansible步骤关于copy模块的报错
- 替换json参数解析错误
- Playbook脚本中service模块启动/停止服务不成功
- Ansible应用部署失败
- 执行Ansible提示Do not use the delegate_to, connection, hosts command in the Ansible PlayBook script for executing the local computer,怎样处理?
- 部署应用中断
- 权限不够
- 参数含反斜杠“\”(特例)
- 环境下没有主机
- 环境不存在
- windows主机部署应用失败
- 使用sudo权限执行报错
- 部署进程被第三方杀毒软件拦截
- 路径不合法
- 在Centos上安装软件提示网络故障
- 在Ubuntu上安装软件提示网络故障
- Linux机器输入Windows路径,提示安装路径输入不合法
- 新建IIS站点
- 安装IIS
- 安装JDK
- 安装Tomcat
- 安装Nginx
- 安装GO语言
- 安装PHP
- 安装Node.js
- 安装Python
- 安装/卸载Docker
- Istio灰度发布
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
向主机集群添加目标主机
本章节介绍向CodeArts Deploy主机集群添加目标主机的相关操作。
前提条件
华为云ECS(Linux系统)默认已完成该配置,无需再次配置,但Windows系统主机需要进行配置。
Linux系统主机配置
为确保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安装工具时,请确保已配置可用的源。
- Ubuntu系统
- 主机开启SELinux机制并安装“libselinux-python”模块:
- 查看SELinux状态,命令如下:
/usr/sbin/sestatus
说明:
“SELinux”状态参数值所对应的模式:
SELinux=disabled:未开启。
SELinux=enforcing:强制模式,表示所有违反安全策略的行为都将被禁止。
SELinux=permissive:宽容模式,表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。
- 若SELinux=disabled,则主机未开启该机制,需修改SELinux状态,步骤如下:
- 在主机上安装“libselinux-python”模块,各系统安装命令如下:
- Ubuntu系统
sudo apt install libselinux-python
- Centos或Euler系统
sudo yum install libselinux-python
- Ubuntu系统
- 查看SELinux状态,命令如下:
Windows系统主机配置
Windows10、Windows2016或Windows2019作为目标主机的自动化脚本配置方法,请参考Windows2012配置方法,脚本获取请参考win2016自动化配置脚本。
Windows7作为目标主机的自动化脚本配置方法,请参考Windows2012配置方法,脚本获取请参考win2012自动化配置脚本。
自动化脚本配置具体步骤如下:
- 配置前请检查是否已经进行安全配置,否则会出现连通性验证失败的情况。
- 获取自动化配置脚本。
- 下载win2012自动化配置脚本。
- 手动解压“Windows2012ConfigureRemotingForAnsible.zip”,得到“Windows2012ConfigureRemotingForAnsible.ps1”脚本。
- 配置主机。
进入主机,打开powershell,进入“Windows2012ConfigureRemotingForAnsible.ps1”脚本所在目录,输入如下命令:
.\Windows2012ConfigureRemotingForAnsible.ps1
执行“Windows2012ConfigureRemotingForAnsible.ps1”脚本,如下图所示。
如果提示“无法加载文件,需要进行数字签名”,如下图所示。
该错误是因为主机powershell默认模式禁止执行脚本,需要在powershell中执行如下命令:
set-executionpolicy unrestricted
将策略更改为unrestricted,执行命令后提示是否确认更改,输入“Y”即可,如下图所示。
- 查看配置。
在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`"}"
手动配置具体步骤如下:
- 修改Powershell,将powershell策略更改为unrestricted。
管理员用户打开Powershell,执行如下命令:
set-executionpolicy unrestricted
更改powershell策略,如下图所示。
执行命令后提示是否确认更改,输入“Y”即可。
- 配置Windows远端管理(WinRM)。
- 在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"}'
- 校验是否配置成功,命令如下:
winrm get winrm/config/service/auth
执行命令后如果“Basic”、“Kerberos”、“CredSSP”均为true则表示配置成功,如下图所示。
- 在Powershell中依次输入如下五条命令:
- 安装证书。
- 打开服务器管理器,启动IIS。
- 单击“添加角色和功能 > 下一步”,如下图所示。
- 进入“安装类型”页面,选择第一个选项,单击“下一步”,如下图所示。
- 进入“服务器角色”页面,勾选“Web服务器(IIS)”。
- 进入“功能”页面,仅勾选“.NET Framework 4.5 功能”选项,单击“下一步”。
- 进入“角色服务”页面,勾选“IIS管理脚本及工具”和“管理服务”,单击“下一步”,完成安装。
- 添加证书。
- 同时按“Windows键+R”打开运行框,输入打开IIS管理窗口的命令“inetmgr”,单击“确定”。
- 打开IIS 管理器,双击“服务器证书”,如下图所示。
- 进入“服务器证书”界面,单击“创建自签名证书”,如下图所示。
- 进入“指定友好名称”界面,自定义输入自验证证书名称,单击“确定”,如下图所示。
- 在Powershell中查看证书,输入如下命令:
ls Cert:\LocalMachine\My
出现如下图所示两列数据即表示证书添加成功。
- 通过证书监听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
- 在Powershell中校验是否监听成功,输入如下命令:
winrm e winrm/config/listener
若出现HTTPS则表示监听成功,即完成了所有配置,如下图所示。
- 进行连通性验证前请检查是否已经进行安全配置,否则会出现验证失败的情况。
获取Linux密钥
- 检查主机中是否存在密钥。
登录主机,执行以下命令,切换至root账号。
sudo su root
执行以下命令,查询密钥文件。
ls ~/.ssh
- 生成密钥。
- 检查生成的密钥信息。
执行以下命令。
cat ~/.ssh/id_rsa
- 若密钥前缀为“-----BEGIN RSA PRIVATE KEY-----”,说明密钥正确。复制该密钥,保存至本地,在添加主机/代理机时输入“密钥”框中。
- 若密钥前缀为“-----BEGIN OPENSSH PRIVATE KEY-----”,说明密钥错误。执行以下命令重新生成密钥。
ssh-keygen -m PEM -t rsa
- 密钥授权。
执行以下命令,将公钥追加到主机authorized_keys文件。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
说明:
- 操作authorized_keys文件时,需要您至少有操作id_rsa、id_rsa.pub文件的权限。
- 在使用密钥进行连通性验证时,用户名必须为操作authorized_keys文件的用户名。
- 手动复制私钥时不要复制多余的空格,否则可能连通性验证不成功。