我导入了一堆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 用户名。