我已经添加了jenkins用户以获得所有权限。
jenkins ALL=(ALL) NOPASSWD: ALL
还将pm2
全局安装,pm2
需要运行命令
sudo npm start
因为构建过程需要创建一些目录,如果我在app1目录中运行sudo npm start
它完全正常,但是使用pm2命令会抛出访问错误
sudo pm2 start config.js
config.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权限或用户权限是否有误?
答案 0 :(得分:1)
不是使用所有 sudo
权限运行命令,而是创建您希望授予应用的最少权限的用户。
您已经将 jenkins 设置为使用 sudo
而没有密码,因此您可以使用以下命令以具有最低权限的其他用户身份从 jenkins 运行 pm2
。
sudo su - username -c 'pm2 start config.js'
以上命令将以指定用户身份运行