【问题标题】:Chef Recipe, sssd configuration厨师食谱,sssd配置
【发布时间】:2019-08-06 13:54:13
【问题描述】:

我正在尝试获取在 Chef 中工作的食谱。但是,它失败了......

我可以在属性中使用“默认”,但我不能在配方中使用它,并且由于某种原因,它会发出声音......看看是否有人可能知道我在这里做错了什么...... . 任何帮助都会很棒,谢谢!

我编辑了食谱/食谱/组的名称以保持我的代码匿名。

default['sssd']['simple']['allow_groups'] = 'GroupName' if node.chef_environment == 'production'
default['sssd']['simple']['allow_groups'] = 'GroupName' unless node.chef_environment == 'test'

名称错误

undefined local variable or method `default' for cookbook: COOKBOOK_NAME, recipe: RECIPE:NAME :Chef::Recipe

食谱追踪:

/var/chef/cache/cookbooks/COOKBOOK_NAME/recipes/RECIPE_NAME.rb:4:in `from_file'

相关文件内容:

/var/chef/cache/cookbooks/COOKBOOK_NAME/recipes/RECIPE_NAME.rb:

 1:  # Comments
 2:
 3:  default['sssd']['simple']['allow_groups'] = 'GROUP_NAME' if node.chef_environment == 'production'
 4>> default['sssd']['simple']['allow_groups'] = 'GROUP_NAME' unless node.chef_environment == 'production'
 5:
 6:  if node.chef_environment == 'production'
 7:    sudo 'sudoers_file' do
 8:      group '%GROUP_NAME'
 9:    end
10:  else
11:    sudo 'sudoers_file' do
12:      group '%GROUP_NAME'
13:    end

【问题讨论】:

    标签: ruby linux chef-infra redhat


    【解决方案1】:

    您没有指定您使用的是哪个厨师版本,因为有 a deprecation of methods of setting\reading the node attribute

    尝试使用node.default,而不是default

    通常在配方中设置节点属性,因为该值仅在厨师-客户端收敛阶段才知道。如果不是这种情况,请考虑将节点属性移动到属性文件中。

    请注意,我正在使用这本食谱,对此我没有任何问题。

    【讨论】: