部署 CodeArts Deploy
部署 CodeArts Deploy
- 最新动态
- 功能总览
- 产品介绍
- 快速入门
-
用户指南
- 部署服务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灰度发布
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
主机/代理机连通性验证问题排查方法有哪些?
本文主要介绍主机连通性验证失败原因的排查方法,根据主机类型分为如下几种:
Linux机器问题排查
- 检查IP、用户名及密码是否正确。
- 检查目标主机开放的端口是否为SSH协议端口(默认端口为22)。
开启方法:
- 开启防火墙。
systemctl start firewalld.service systemctl stop firewalld.service #关闭防火墙命令
- 开启端口。
firewall-cmd --zone=public --add-port=22/tcp --permanent
说明:
--zone #作用域。
--add-port=22/tcp #端口,格式为:端口/通讯协议。
--permanent #永久生效,没有此参数重启后失效。
- 重启防火墙。
firewall-cmd --reload
- 开启防火墙。
- 检查当前网络状态。
使用“tcpdump”命令查看当前网络连接状态,命令如下:
tcpdump -n "tcp port 22 and host xxx.xxx.xxx.xxx" #该命令执行在本地PC端,其中xxx.xxx.xxx.xxx为部署服务对外IP,目的是验证部署服务执行主机的网络是否畅通。
#或者:
tcpdump -n "tcp port 22" | grep -v "xxx.xxx.xxx.xxx" #该命令执行在本地PC端,其中xxx.xxx.xxx.xxx为被部署的目标主机IP,目的是验证部署主机的网络是否畅通。
如下图所示,无回显信息说明网络已畅通。
说明:
部署服务对外IP如下。
中国站: 49.4.3.11 139.159.226.153
- 在菜单“设置 > 通用设置 > 基础资源管理”页,单击集群名称进入详情,在主机列表中对目标主机做连通性验证,观察部署服务(CodeArts Deploy)是否对目标主机做了SSH协议连接,出现如下图所示,说明部署服务对目标主机做了SSH协议连接。
原因分析:
- 服务端对目标主机存在SSH连接
如果服务端存在SSH连接,说明是目标主机本身配置问题。
如果已经定位出是目标主机配置问题,或者未安装Tcpdump,都需要检查目标主机本身配置来排查:
- 参考《用户指南》“配置黑/白名单”章节。
- 查看是否有防火墙配置,以iptables为例,命令如下:
iptables -L
- 服务端对目标主机不存在SSH连接
如果服务端对目标主机不存在SSH连接,说明目标主机网络不可达,其所在的网络环境可能存在访问限制。
请查看硬件防火墙等相关网络配置,是否有限制源IP、目标IP、SSH协议配置的安全策略。
- 服务端对目标主机存在SSH连接
- 查看ssh密钥文件权限。
root账户登录机器,依次执行以下命令查看ssh密钥文件权限。
cd /root/.ssh
ll
如图所示,查看文件权限是否为“rw”。
若文件权限不正确,执行以下命令完成修改。
chmod 600 文件名
- 主机连通性验证的用户对${HOME}目录操作失败。
- 检查主机${HOME}目录所在磁盘是否已满。
- 排查${HOME}目录所在磁盘是否已满,参考命令df -h 。
- 查看用户${HOME}目录的权限设置及目录隐藏属性等信息:ll -ld ${HOME},lsattr -d ${HOME}。
- 检查用户对${HOME}目录是否有读写权限。
- 检查用户默认shell设置是否为nologin模式。
- 执行如下命令查看,参考命令:grep username /etc/passwd,其中将 "username" 替换为要检查的实际用户名。
- 在该文件中,如果用户的 shell 列显示为 "/usr/sbin/nologin" 或 "/sbin/nologin",则表示该用户被配置为nologin模式。
- 如果用户为nologin模式,可以执行如下命令允许用户登录,参考命令:sudo usermod -s /bin/bash username,其中将 "username" 替换为要操作的实际用户名。
- 检查主机${HOME}目录所在磁盘是否已满。
- (代理主机)如果已关联主机的代理主机连通性失败或者界面提示“主机连接超时,请查看解决方案”,请按如下方式进行排查:
- 测试代理主机的连通性。
- 检查代理主机上SSH配置AllowTcpForwarding是开启,命令如下:
grep "AllowTcpForwarding" /etc/ssh/sshd_config
如果该属性值为no,则设置为yes,并重新启动sshd服务,命令如下:
service sshd restart
自托管资源池问题排查
- 检查主机所在的主机集群下代理资源池是否可用。
- 单击主机集群名称,进入主机集群详情页,单击“管理资源池”。
- 进入资源池管理界面,查看对应资源池代理状态。
- 若状态为下线,则删除已下线代理,重新安装代理。
- 若状态为停用,则在操作选项启用代理,重新执行连通性验证。
- 若状态为下线,则删除已下线代理,重新安装代理。
- 单击主机集群名称,进入主机集群详情页,单击“管理资源池”。
- 单击连通性验证结果,若界面提示为脚本执行错误,请按照如下方式进行排查。(若未提示脚本执行错误,请跳过。)
原因分析:
因为自托管资源池需要使用docker拉取镜像,所以出现脚本执行错误的原因是自托管资源池中docker未安装或不能正常使用。您可按照如下方法进行排查。
排查方法:
- 执行如下命令排查是否安装docker。
docker --version
若命令执行结果出现版本号,说明已安装docker。
若命令执行结果未出现版本号,说明未安装docker。
说明:
如果未安装docker,您可根据安装/卸载Docker,重新安装docker,再通过如下操作进行连通性验证。- 进入服务首页,单击目标项目名称,进入目标项目下。
- 单击菜单“设置 > 通用设置 > 基础资源管理”,默认进入“主机集群”页面。
- 单击目标集群名称,进入目标集群详情页,单击“代理主机”或“目标主机”页签。
- 单击主机所在行的
,弹出修改主机信息框,可以修改主机信息重新进行连通性验证。
- 执行如下命令排查已安装的docker是否可正常使用。
docker images
若命令执行结果如上所示,说明docker能正常使用。反之,您需要先卸载docker,根据安装/卸载Docker,重新安装docker。
- 执行如下命令排查是否安装docker。
父主题: 主机管理