如何使用 pm2 和 jenkins 来运行"sudo npm start"?



我已将 jenkins 用户添加到具有所有权限。

jenkins ALL=(ALL) NOPASSWD: ALL

还全局安装了pm2pm2需要运行命令

sudo npm start

由于构建过程需要创建一些目录,如果我在 app1 目录中运行sudo npm start它可以完美运行,但是使用 pm2 命令它会引发访问错误

sudo pm2 start config.js

配置.js

  module.exports = {
      apps : [{
        name   : "app1",
        cwd : "./my-dir/app1,
        script : "sudo npm",
        args : "start"
      },{
        name   : "app2",
        cwd : "./my-dir/app2",
        script : "npm",
        args : "start"
      }]
    }

是 pm2 权限还是用户权限错误?

不是使用所有sudo权限运行命令,而是创建具有要授予应用最少权限的用户。

您已经将 jenkins 设置为使用没有密码的sudo,因此您可以使用以下命令以具有最低权限的其他用户身份从 jenkins 运行pm2

sudo su - username -c 'pm2 start config.js'

上述命令将以指定用户身份运行

最新更新