只有在存在特定用户的情况下,我才需要执行某项操作。看看下面的问题Chef Users resource (check if exists?)我得出以下结论:
if node['etc']['passwd']['random']
将是一个很好的方法。
当我在厨房测试它时,这实际上有效,但是当推到生产时,这会在所有服务器上崩溃并出现错误:
NoMethodError: undefined method `[]' for nil:NilClass
当使用bash中的ohai时,我会看到etc: {...}
这到底发生了什么?
答案 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