首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以root用户的身份在jenkins中运行shell命令?

以root用户的身份在jenkins中运行shell命令?
EN

Stack Overflow用户
提问于 2015-04-28 18:05:32
回答 6查看 101.4K关注 0票数 18

我最近开始使用Jenkins进行集成。在没有shell命令的情况下,在主节点上运行作业之前一切都很顺利,但是我必须在主节点和从节点上运行作业,其中包含shell命令。我无法以root用户的身份运行这些shell命令。我试过了

  1. 使用SSH Keys
  2. 在shell命令中设置用户名。
  3. 使用sudo

每次使用上述方法时,我都会得到permission denied错误。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-04-28 18:23:22

您需要修改jenkins用户的权限,以便可以运行shell命令。您可以将jenkins安装为服务(下载rpm包),您可能需要更改端口,因为默认情况下,它在8080上运行http,在8009端口上运行AJP。

下面的过程是CentOS

  1. 打开此脚本(使用VIM或其他编辑器):
代码语言:javascript
复制
vim /etc/sysconfig/jenkins
  1. 找到这个$JENKINS_USER并更改为“root”:
代码语言:javascript
复制
$JENKINS_USER="root"
  1. 然后更改Jenkins住宅、webroot和logs的所有权:
代码语言:javascript
复制
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

4)重新启动Jenkins并检查用户是否已更改:

代码语言:javascript
复制
service jenkins restart
ps -ef | grep jenkins

现在,您应该能够以根用户的身份运行Jenkins作业,并且所有的shell命令都将以root的形式执行。

票数 35
EN

Stack Overflow用户

发布于 2015-08-04 02:35:24

我建议不要将jenkins用户作为root运行。这可能会暴露出这个操作系统和jenkins可以构建的所有回购系统。

将任何脚本作为root运行都是一种安全风险,但稍微安全的方法是授予jenkins用户sudo访问权,只运行一个脚本,而不需要密码。

代码语言:javascript
复制
sudo visudo

并增加以下内容:

代码语言:javascript
复制
jenkins    ALL = NOPASSWD: /var/lib/jenkins/jobs/[job name]/workspace/script

通过失败构建脚本的控制台日志双重检查您的路径。这里显示的是缺省值。

现在,在jenkins任务中,可以调用sudo $WORKSPACE/your script

票数 45
EN

Stack Overflow用户

发布于 2020-05-12 16:59:02

For Linux尝试遵循以下步骤:-

这对我有用。

更改Jenkins用户:sudo vi /etc/default/jenkins

更改用于访问文件的用户根或用户:$JENKINS_USER="root"

使用前面设置的用户执行:

代码语言:javascript
复制
sudo chown -R root:root /var/lib/jenkins
sudo chown -R root:root /var/cache/jenkins
sudo chown -R root:root /var/log/jenkins
  1. 作为服务运行: service jenkins restartsystemctl jenkins restart

您可以使用UI执行jenkins的进程,并禁用Linux的无头模式。

代码语言:javascript
复制
/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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29926773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档