排查步骤
在开始处理主机部署、私有构建机申请环境失败问题之前请先按以下步骤确认机器上云效runner状态。
使用排查工具
只支持Linux系统
下载工具:
wget "https://rdc-public-software.oss-cn-hangzhou.aliyuncs.com/runner/runnerStatusCheck" -O runnerStatusCheck
设置执行权限:
chmod u+x runnerStatusCheck
执行工具:
./runnerStatusCheck
按照工具提示信息进行处理,示例如下
手动排查
第一步:检查系统 Linux 版本是否匹配
通过命令lsb_release -a
查看 Linux 发行版本信息是否满足条件。目前云效统一 Runner 支持以下 Linux 发行版本:
centos 6+ 及以上
ubuntu 16.04+ 及以上
Alibaba Cloud Linux 2/3
第二步:检查 Runner service 状态和日志
通过命令ls -al /etc/systemd/system | grep runner
查看 Runner 服务名称,通常 Runner 服务的名称为 runner-{版本}-{租户名称}.service,如下图所示。
通过命令systemctl status runner-{版本}-{租户名称}.service
查看 Runner 服务状态,如果服务状态为 active(running),则服务正常,如下图所示。
另外,你也可以通过命令journalctl -u runner-{版本}-{租户名称}.service -a --no-pager --since '5 minutes ago' -f
查看 Runner 执行日志。
常见报错
构建/部署运行中,无日志或者主机状态显示为离线
检查主机磁盘是否满了
df -hl
,如果磁盘已满请尝试清理后重试。检查 Runner service 状态,如果状态非 active(running),通过命令
systemctl restart runner-{版本}-{租户名称}.service
重启 Runner service。检查网络连通性是否正常。
通过
systemctl status runner-{版本}-{租户名称}.service
查询 Runner service 状态,并截取 service 进程参数 --configPath=***,如下图所示。查看 configPath 中URL
cat {***}/config.yml | grep url
。通过以下命令判断是否可以正常访问。
# 注意替换下面命令中的url curl '{url}/api/v2/runner/storage/latest?os=linux&arch=amd64'
典型报错如下:
目前 Flow 上创建主机组/私有构建集群支持通过 ECS 主机选择、自有主机安装两种方式,但对于同一台机器不可以在同一个云效企业中使用两种方式分别添加。例如,你已经通过 ECS 主机选择的方式添加了主机 A,该主机无法再次通过自有主机方式添加进主机组。
只有将主机上的 Runner 卸载后,才可以更换添加方式,可以通过以下命令卸载 Runner 。
创建主机组/构建集群报错或手动安装 Runner 报错
systemctl stop runner-{版本}-{租户名称}.service
rm -rf /etc/systemd/system/runner-{版本}-{租户名称}.service
rm -rf /root/yunxiao/{租户名称}/runner/config
部署命令可以在机器上手动执行成功,但在 Flow 流水线上执行失败
添加与命令相关的环境变量,例如:
source /root/.bash_profile;source /etc/profile;
。部署相关脚本尽量使用绝对路径,不要使用相对路径,例如:
/home/admin/app/deploy.sh
,。