Chef infra 如何使Ohai插件生成[';etc';][';passwd';]?
我已将我的Chef客户端从Chef infra 如何使Ohai插件生成[';etc';][';passwd';]?,chef-infra,Chef Infra,我已将我的Chef客户端从14.0升级到15.3.14,但每当我在我的节点(macOS Mojave)上执行Chef客户端时,就会发出rose命令。 客户端输出为: ------------- undefined method `[]' for nil:NilClass Cookbook Trace: --------------- /var/chef/cache/cookbooks/macos/recipes/mac_init.rb:62:in `from_file' Relevant
14.0
升级到15.3.14
,但每当我在我的节点(macOS Mojave)上执行Chef客户端时,就会发出rose命令。客户端输出为:
-------------
undefined method `[]' for nil:NilClass
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/macos/recipes/mac_init.rb:62:in `from_file'
Relevant File Content:
----------------------
/var/chef/cache/cookbooks/macos/recipes/mac_init.rb:
55: action :create
56: owner 'administrator'
57: group 'localaccounts'
58: mode '0775'
59: end
60:
61: # Template for bash history
62>> node['etc']['passwd'].each do |user, data|
63:
64: template "/Users/#{user}/.bash_profile" do
65: source '/default/bash_profile.erb'
66: owner 'administrator'
67: group 'staff'
68: ignore_failure true
69: end
70: end
似乎node['etc']['passwd']
不再可读,这导致值nil
我已经检查了另一台新启动的机器,并在Chef Server UI上进行了验证,但结果是,属性选项卡中没有“etc”。阅读报告时,它说: 可选Ohai插件 Ohai现在包括将插件标记为可选的功能,默认情况下跳过这些插件。这允许我们提供额外的插件,有些用户可能会觉得有用,但并非所有用户都希望写入他们的Chef服务器。更改引入了两个新的配置选项
run_all_plugins
运行包括可选插件在内的所有插件,以及optional_plugins
允许您运行标记为可选的插件
默认情况下,我们现在将lspci
、sessions
和passwd
插件标记为可选插件。Passwd对于连接LDAP或AD的节点尤其有问题,因为它试图将整个目录写入节点。如果您以前通过Ohai配置禁用此插件,则不再需要。万岁
但你总是可以:
启用可选插件
可选插件可以在client.rb
配置文件中启用:
ohai.optional\u插件=[
:会议,
:Lspci
]
在您的具体情况下:
ohai.optional\u插件=[
:Passwd
]
假设您使用bundler安装了ohai,那么您可以通过执行
$ bundle exec ohai etc
配置
要经常有这样的行为,那么:
- 调用
时使用if,可以使用,它可以存储在存储库中chef-client
- 使用。比如:
ohai'reload_passwd'do 操作:重新加载 插件'etc' 结束
- 为
节点['ohai']['disabled\u plugins']贡献,获得免费支持。
-要禁用的ohai插件数组,默认为空,如果指定,则必须是数组。Ohai 6插件应指定为字符串(即“dmi”)。Ohai 7+插件应指定为引号内的符号(即“:Passwd”)节点['ohai']['disabled_plugins']
-要启用的可选ohai插件数组,默认为空,如果指定,则必须是数组。Ohai 6插件应指定为字符串(即“dmi”)。Ohai 7+插件应指定为引号内的符号(即“:Passwd”)节点['ohai']['optional_plugins']
解释得很好的回答。非常感谢您回答我的问题。如果您有空闲时间,我还想问一下如何在多个节点上高效地应用此配置。噢,在挖掘一些线程和文档时,我看到ohai资源用于重新加载插件。但不幸的是,这个插件似乎仍然被禁用。我将在chef client cookbook repo上为启用的插件提交一个功能请求。以下是我向chef client发送的关于此问题的请求,并已顺利回复@gilloytoledano:太棒了!