0%

Jenkins 添加自动化脚本碰到的一些问题

问题

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

1
2
3
...
cd: /: Not a directory
...

我的脚本如下

1
2
cd /root/testjenk
mkdir 456

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

解决

编辑 /etc/sysconfig/jenkins 文件

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

执行文件夹提权命令

1
2
3
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

重启 Jenkins

1
2
service jenkins restart
service jenkins status

查看用户权限

1
ps -ef|grep jenkins

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

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

1
2
3
4
5
6
# 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

刷新一下配置

1
systemctl daemon-reload

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

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

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