我最近开始使用Jenkins进行集成。在没有shell命令的情况下,在主节点上运行作业之前一切都很顺利,但是我必须在主节点和从节点上运行作业,其中包含shell命令。我无法以root用户的身份运行这些shell命令。我试过了
SSH Keys。sudo。每次使用上述方法时,我都会得到permission denied错误。
发布于 2015-04-28 18:23:22
您需要修改jenkins用户的权限,以便可以运行shell命令。您可以将jenkins安装为服务(下载rpm包),您可能需要更改端口,因为默认情况下,它在8080上运行http,在8009端口上运行AJP。
下面的过程是CentOS的
vim /etc/sysconfig/jenkins$JENKINS_USER并更改为“root”:$JENKINS_USER="root"chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins4)重新启动Jenkins并检查用户是否已更改:
service jenkins restart
ps -ef | grep jenkins现在,您应该能够以根用户的身份运行Jenkins作业,并且所有的shell命令都将以root的形式执行。
发布于 2015-08-04 02:35:24
我建议不要将jenkins用户作为root运行。这可能会暴露出这个操作系统和jenkins可以构建的所有回购系统。
将任何脚本作为root运行都是一种安全风险,但稍微安全的方法是授予jenkins用户sudo访问权,只运行一个脚本,而不需要密码。
sudo visudo并增加以下内容:
jenkins ALL = NOPASSWD: /var/lib/jenkins/jobs/[job name]/workspace/script通过失败构建脚本的控制台日志双重检查您的路径。这里显示的是缺省值。
现在,在jenkins任务中,可以调用sudo $WORKSPACE/your script
发布于 2020-05-12 16:59:02
For Linux尝试遵循以下步骤:-
这对我有用。
更改Jenkins用户:sudo vi /etc/default/jenkins
更改用于访问文件的用户根或用户:$JENKINS_USER="root"
使用前面设置的用户执行:
sudo chown -R root:root /var/lib/jenkins
sudo chown -R root:root /var/cache/jenkins
sudo chown -R root:root /var/log/jenkinsservice jenkins restart或
systemctl jenkins restart您可以使用UI执行jenkins的进程,并禁用Linux的无头模式。
/etc/alternatives/java -Djava.awt.headless=false -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20验证Jenkins当前正在运行:ps -ef | grep jenkins
https://stackoverflow.com/questions/29926773
复制相似问题