我知道如何创建用户资源:
user "random" do
supports :manage_home => true
comment "Random User"
uid 1234
gid "users"
home "/home/random"
shell "/bin/bash"
password "$1$JJsvHslV$szsCjVEroftprNn4JHtDi."
end
但我不确定如何使用Chef查找当前节点上所有用户的列表。我查看了在chef-client运行期间检查node [:users],但只有node [:current_user]可供我使用。在Chef配方中,有没有办法询问普通用户是否存在?
我处于不应该/无法创建用户的情况下(由于公司规定,但我绝对不应该继续安装我在其中定义的其他内容)除非xyz用户已经存在,否则为cookbook。)
答案 0 :(得分:8)
Ohai为您查询系统中的用户:
if node['etc']['passwd']['random']
# Do deploy
end
答案 1 :(得分:0)
仅适用于本地帐户,但如果帐户由LDAP或AD管理,则上述帐户不适用。我建议使用:
SELECT
o.F_Exhibitor,
o.F_Stand AS OrderHeaderStand,
e.F_Stand AS ExhibitorLocationStand,
CASE
WHEN o.F_Stand = e.F_Stand THEN 'Equal'
WHEN o.F_Stand IS NULL AND e.F_Stand IS NULL THEN 'Equal'
ELSE 'Check'
END AS Equal
FROM T_Order_Header o
INNER JOIN T_ExhibitorLocation e
ON o.F_exhibitor= e.F_ExhibitorCode
WHERE o.F_Exhibition='12004'
在红宝石区。
答案 2 :(得分:0)
如果帐户不是本地帐户,则不起作用:
if node['etc']['passwd']['random']
# Do deploy
end
我已经" passwd:files sss"在我的nsswitch.conf中,因为帐户在IPA中。
(我很乐意将此作为对代码发布者帖子的评论添加,但我没有足够的声誉......)。
我想只有SorinS的解决方案才有效。
(会不会赞成投票SorinS'发帖,但我没有足够的声誉......)。
答案 3 :(得分:0)
我收到与Tom Klino相同的undefined method '[]' for nil:NilClass
错误消息。我怀疑那些遇到coderanger's解决方案问题的人已经禁用了passwd Ohai插件。
对于我们这些拥有大型目录环境的人来说,在client.rb
中禁用passwd插件以避免客户端报告运行时出现413错误("请求实体太大")是非常常见的。检查/etc/chef/client.rb
:
ohai.disabled_plugins [:Passwd]
禁用此插件后,node['etc']['passwd']
为您的食谱unavailable,因此出错。在我的环境中,重新启用插件可以修复此错误。