以不同的用户身份运行Chef护栏

时间:2017-06-05 20:52:10

标签: chef

我想拥有一个Chef护栏,我希望以特定用户的身份运行该块。

我知道如何在作为用户的后卫中运行shell命令,因为文档中包含了这些内容:

not_if 'grep adam /etc/passwd', :user => 'adam'

我想使用一个保护块,所以我可以做一些更复杂的操作,我想以postgres用户身份运行代码。例如:

only_if do
  c = PGconn.connect(user: 'postgres', dbname: 'postgres')
  # do some other stuff with the postgres connection
end

如何在此处指定user或其他属性?

1 个答案:

答案 0 :(得分:0)

代码块本身并不是以用户身份运行的,它们只是由Ruby运行,因为Ruby正在运行的任何用户。在这种情况下,您可能希望shell psql并根据子流程的正常情况更改用户。