![在jenkins内执行没有sudo的命令](https://linux22.com/image/86103/%E5%9C%A8jenkins%E5%86%85%E6%89%A7%E8%A1%8C%E6%B2%A1%E6%9C%89sudo%E7%9A%84%E5%91%BD%E4%BB%A4.png)
我导入了一堆jenkins作业,这些作业有很多shell脚本命令。这些命令之前没有sudo。Jenkins有自己的用户。有没有办法让我可以通过jenkins执行这些命令,而无需编写每个命令之前都需要 sudo 吗?
答案1
构建步骤中使用的用户是用于连接从站的用户。 (对于master,它是master运行时的用户id)。
因此,创建一个通过 ssh 作为您需要的用户(可能是本地主机)连接的从站,然后在该从站上运行作业。
答案2
在 /etc/sudoers.d/ 下创建一个文件。您可以使用路径和 NOPASSWD 在该文件中添加特定命令。
username ALL=(ALL) NOPASSWD: /bin/chown tomcat.tomcat /home/harry/* username ALL=(ALL) NOPASSWD: /bin/mkdir /home/harry/*
对于论点,
username ALL=(ALL) NOPASSWD: /bin/mkdir * /home/harry/*
同样,您可以给出这样的任何命令,并在詹金斯中无需密码即可执行它们。请记住,用户名将是我们用来通过 ssh 或在同一主服务器上执行的 jenkins 用户名。