【问题标题】:CHEF- Having a hard time figuring out how SUDO COOKBOOK works厨师 - 很难弄清楚 SUDO COOKBOOK 是如何工作的
【发布时间】:2016-06-10 07:08:12
【问题描述】:

我试图通过厨师将%wheel 组添加到sudoers 文件中。 不幸的是,我很难弄清楚这本食谱是如何工作的。 readme 对我来说不是很清楚。

我做了什么:

  • 添加

    depends          'sudo'
    

    到我的食谱的元数据文件

  • 在配方末尾添加以下行

    node.default['authorization']['sudo']['groups'] = ['wheel']
    

会发生什么(该行被完全忽略):

Recipe: create-user::default
  * yum_package[sudo] action install[2016-06-09T19:01:12+01:00] INFO: Processing yum_package[sudo] action install (create-user::default line 9)
 (up to date)
  * user[edgarsan] action create[2016-06-09T19:01:13+01:00] INFO: Processing user[edgarsan] action create (create-user::default line 14)
 (up to date)
  * group[wheel] action modify[2016-06-09T19:01:13+01:00] INFO: Processing group[wheel] action modify (create-user::default line 21)
 (up to date)
  * user[banana] action create[2016-06-09T19:01:13+01:00] INFO: Processing user[banana] action create (create-user::default line 14)
 (up to date)
  * group[wheel] action modify[2016-06-09T19:01:13+01:00] INFO: Processing group[wheel] action modify (create-user::default line 21)
 (up to date)
[2016-06-09T19:01:13+01:00] INFO: Chef Run complete in 3.322762038 seconds

我遗漏了一些东西,但我没有从文档中找出它是什么。

提前致谢

【问题讨论】:

    标签: chef-infra cookbook


    【解决方案1】:

    您还必须通过将以下行添加到您的配方来执行默认配方:

    include_recipe "sudo"
    

    这将使用这个属性here:

    template "#{prefix}/sudoers" do
      # <snip>
      variables(
        sudoers_groups: node['authorization']['sudo']['groups'],
        # <snip>
      )
    end
    

    【讨论】:

      【解决方案2】:

      include_recipe "sudo" 我收到以下错误,这就是我首先删除该语句的原因。幸运的是@StephenKing 让我重回正轨......并向我展示了该声明实际上是有原因的 :)

      ================================================================================
      Error executing action `create` on resource 'template[/sudoers]'
      ================================================================================
      
          Chef::Mixin::Template::TemplateError
          ------------------------------------
          undefined method `each' for nil:NilClass
      
      ...
          Template Context:
          -----------------
          on line #4
            2: # Do NOT modify this file directly.
            3: 
            4: <% @sudoers_defaults.each do |defaults| -%>
            5: Defaults      <%= defaults %>
            6: <% end -%>
      ...
      

      即默认值没有传递给 sudo 配方。解决方案是将 recipes/default.rb 中的 node.default['authorization']['sudo']['groups'] = ['wheel'] 替换为 attributes/default.rb

      中的 default['authorization']['sudo']['groups'] = ['wheel']

      现在一切正常

      【讨论】:

        猜你喜欢
        • 2016-05-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多