如何使OHAI插件生成[';ETC;][';Passwd&39;]? [英] How to enable Ohai Plugin to produce ['etc']['passwd']?
本文介绍了如何使OHAI插件生成[';ETC;][';Passwd&39;]?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
14.0
升级到15.3.14
,但每当在我的节点(MacOS Mojave)上执行Chef-Client时都会出现问题。客户端输出为:
-------------
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上对其进行了验证,但结果是,Attributes选项卡中没有‘ETC’。
推荐答案
阅读release notes of ohai它显示:
可选的OHAI插件
OHAI现在包括将插件标记为可选的功能,默认情况下会跳过这些插件。这允许我们发布额外的插件,一些用户可能会发现这些插件很有用,但并不是所有用户都希望被写入他们的Chef服务器。更改引入了两个新的配置选项;run_all_plugins
运行包括可选插件在内的所有内容,optional_plugins
允许您运行标记为可选的插件。 默认情况下,我们现在将lspci
、sessions
和passwd
插件标记为可选。Passwd对于连接LDAP或AD的节点尤其有问题,因为它试图将整个目录写入节点。如果您以前通过OHAI配置禁用了此插件,则不再需要。万岁!
但您始终可以enable back the optional plugins:
启用可选插件
可以在client.rb
配置文件中启用可选插件:ohai.optional_plugins = [ :Sessions, :Lspci ]
针对您的特定案例:
ohai.optional_plugins = [
:Passwd
]
假设您使用bundler安装了ohai,那么您可以通过执行
来检查passwd
是否存在
$ bundle exec ohai etc
配置
经常有这样的行为,那么:
- 如果在调用
chef-client
时使用chef-zero,则可以使用client.rb
,可以将client.rb
存储在存储库中。 - 使用
ohai
resource。类似于:ohai 'reload_passwd' do action :reload plugin 'etc' end
- 贡献给chef-client cookbook,为
node['ohai']['disabled_plugins']
提供免费支持
更新: 厨师-客户食谱中已引入对此的支持:
node['ohai']['disabled_plugins']
-要禁用的ohai插件数组,默认为空,指定时必须为数组。OHAI 6插件应指定为字符串(即"DMI")。OHAI 7+插件应指定为引号内的符号(即":passwd")。node['ohai']['optional_plugins']
-要启用的可选ohai插件数组,默认为空,指定时必须为数组。OHAI 6插件应指定为字符串(即"DMI")。OHAI 7+插件应指定为引号内的符号(即":passwd")。
这篇关于如何使OHAI插件生成[';ETC;][';Passwd&39;]?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文