返回博客

Jenkins 自动化脚本问题及解决方法

Jenkins 通过 Github Webhooks 触发 Shell 脚本时遇到 `cd: /: Not a directory` 错误,文章分析了原因并提供了详细的解决方法,包括修改 Jenkins 用户权限、调整 Jenkins 服务配置以及设置环境变量等步骤。

Mt.r
|

问题

Jenkins 收到 Github Webhooks 消息之后我要执行 Shell 脚本,但是遇到了报错,如下:

cd: /: Not a directory

我的脚本如下

cd /root/testjenk
mkdir 456

网上查了一下没查到原因,问网友,恶魔旋律 提到可能是权限不足导致的,我搜了一下 Jenkins 提权方面资料。

解决

编辑 /etc/sysconfig/jenkins 文件

将原来的 jenkins 用户修改为 root 用户。$JENKINS_USER="root"

执行文件夹提权命令

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

重启 Jenkins

service jenkins restart
service jenkins status

查看用户权限

ps -ef|grep jenkins

还有的就是启动脚本要改一下

/usr/lib/systemd/system/jenkins.service

# Unix account that runs the Jenkins daemon
# Be careful when you change this, as you need to update the permissions of
# $JENKINS_HOME, $JENKINS_LOG, and (if you have already run Jenkins)
# $JENKINS_WEBROOT.
User=root
Group=root

刷新一下配置

systemctl daemon-reload

然后再次提交 giuhub,查看日志,发现自动构建成功

然后还有一些环境变量可以设置一下

echo $PATH
export PATH=$PATH:/usr/local/bin