ШЕФ-ПОВАРИТЕЛЬ — Мне трудно понять, как работает SUDO COOKBOOK.

Я пытался добавить группу %wheel в файл sudoers через шеф-повара. К сожалению, мне трудно понять, как работает эта кулинарная книга. ознакомительные сведения мне не очень ясны.

Что я наделал:

  • Добавлен

    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

Я что-то упускаю, но я не узнаю, что это такое из документации.

заранее спасибо


person ToinoBiclas    schedule 09.06.2016    source источник


Ответы (2)


Вы также должны выполнить рецепт по умолчанию, добавив в свой рецепт следующую строку:

include_recipe "sudo"

Здесь будет использоваться этот атрибут здесь:

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

С 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. Решение состояло в том, чтобы поменять местами node.default['authorization']['sudo']['groups'] = ['wheel'] в recipes/default.rb на default['authorization']['sudo']['groups'] = ['wheel'] в attributes/default.rb.

Теперь все работает как положено

person ToinoBiclas    schedule 09.06.2016