chef 如何以用户名运行命令?

chef 如何以用户名运行命令?

在 Linux 系统中,可以这样做

sudo systemctl start my_server
sudo -u ubuntu command ...

这样命令就可以以用户名(本例中为“ubuntu”)运行。但是,当我使用 sudo 权限运行 chef 时,我复制前面命令的后记如下:

systemctl start my_server
-u ubuntu command ...

Chef 启动 my_server 时没有任何问题,但无法解释“-u”,并停止并显示错误消息。有没有与“-u”等效的方法,或者任何其他方法可以告诉 chef 以用户身份运行一行后记?

答案1

有一个脚本资源它接受一个用户属性。该用户属性是运行该流程的用户,因此,在你的情况下,你应该

script 'script-name' do
  user 'ubuntu'
  code 'command ...'
end

还有一个bash 资源其工作原理非常相似。

请注意,如果命令本身实际上是一个脚本,那么您可能需要查看执行资源反而。

相关内容