1
我有一个厨师食谱,需要调用两个食谱:一个为root
,将创建一个新用户并将其添加到/etc/sudoers
,另一个配方应该运行使用新创建的用户。厨师:在同一本食谱中运行两个不同用户的食谱
我知道我可以很容易地使用bash
资源作为特定用户执行命令,但在这种情况下,我需要在两种情况下(root用户和新用户)调用include_recipe
。
任何想法?
我有一个厨师食谱,需要调用两个食谱:一个为root
,将创建一个新用户并将其添加到/etc/sudoers
,另一个配方应该运行使用新创建的用户。厨师:在同一本食谱中运行两个不同用户的食谱
我知道我可以很容易地使用bash
资源作为特定用户执行命令,但在这种情况下,我需要在两种情况下(root用户和新用户)调用include_recipe
。
任何想法?
厨师客户端运行为root
用户,您不能简单地运行一个配方作为另一个用户。
这是完全合法的,以创建一个用户,然后做几件事情在该用户的名称,例如:
user "foo"
directory "/usr/local/foo" do
owner "foo"
end
execute "install foo" do
command "whatever-foo"
user "foo"
end
但是,如果你有一个食谱,你真的想包括两个时间和那应该真的做同样的事情,只是为了不同的用户(例如在他们的主目录中),然后忘记食谱就是一切。使用具有user
属性的custom resource。
然后,你可以调用这个资源两次,一次为每个用户:
%w{root otheruser}.each do |u|
mycookbook_myresource "do-it-for-user-#{u}" do
user u
end
end