CHEF- 很难弄清楚 SUDO COOKBOOK 是如何工作的
CHEF- Having a hard time figuring out how SUDO COOKBOOK works
我试图通过 chef 将 %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
我遗漏了一些东西,但我没有从文档中找到它是什么。
提前致谢
您还必须通过将以下行添加到您的配方来执行默认配方:
include_recipe "sudo"
这将使用此属性 here:
template "#{prefix}/sudoers" do
# <snip>
variables(
sudoers_groups: node['authorization']['sudo']['groups'],
# <snip>
)
end
使用 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[=22 中的 default['authorization']['sudo']['groups'] = ['wheel']
=]
现在一切正常
我试图通过 chef 将 %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
我遗漏了一些东西,但我没有从文档中找到它是什么。
提前致谢
您还必须通过将以下行添加到您的配方来执行默认配方:
include_recipe "sudo"
这将使用此属性 here:
template "#{prefix}/sudoers" do
# <snip>
variables(
sudoers_groups: node['authorization']['sudo']['groups'],
# <snip>
)
end
使用 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[=22 中的 default['authorization']['sudo']['groups'] = ['wheel']
=]
现在一切正常