大厨:ohai不提供节点['etc']

时间:2017-03-06 17:45:58

标签: chef chef-recipe

只有在存在特定用户的情况下,我才需要执行某项操作。看看下面的问题Chef Users resource (check if exists?)我得出以下结论:

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

将是一个很好的方法。

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

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

当使用bash中的ohai时,我会看到etc: {...}

这到底发生了什么?

1 个答案:

答案 0 :(得分:0)

最后,在评论中的人员的帮助下,我发现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