如何使OHAI插件生成['ETC;]['Passwd&39;]? [英] How to enable Ohai Plugin to produce ['etc']['passwd']?

查看:16
本文介绍了如何使OHAI插件生成['ETC;]['Passwd&39;]?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将Chef客户端从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允许您运行标记为可选的插件。

默认情况下,我们现在将lspcisessionspasswd插件标记为可选。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

配置

经常有这样的行为,那么:

更新: 厨师-客户食谱中已引入对此的支持:

  • 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆