大厨:ohai不提供node['etc']

chef: ohai does not provide node['etc']

我要求仅在存在特定用户的情况下执行特定操作。查看以下问题 我得出以下结论:

if node['etc']['passwd']['random']

会是个好方法。

当我在厨房测试它时它确实有效,但是当它被推向生产时它在所有服务器上崩溃并出现错误:

NoMethodError: undefined method `[]' for nil:NilClass

当使用来自 bash 的 ohai 时,我确实看到了 etc: {...}

这里到底发生了什么?

最终在评论区的人的帮助下,发现Ohai passwd插件确实被禁用了。因此,我不得不解决这个问题并像这样查询用户的存在:

if 'grep td-agent /etc/passwd > /dev/null; echo $?' == '0'

最后,为了将来参考,我的全部资源:

group 'groupname' do
  action :create
  members 'td-agent' if 'grep td-agent /etc/passwd > /dev/null; echo $?' == '0'
  append true
end