2016-06-09 3 views
0

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

Что я сделал:

  • Добавлено

    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 

я что-то отсутствует, но я не нахожу, что это из документации.

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

ответ

1

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

include_recipe "sudo" 

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

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

Спасибо за указание мне в правильном направлении – ToinoBiclas

0

С 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'] в рецепты/default.rb по default['authorization']['sudo']['groups'] = ['wheel'] в атрибутов/default.rb

Теперь все работает, как ожидалось

Смежные вопросы