2016-09-15 110 views
0

我正在使用“用户”资源来定义Chef中的用户。 现在,我想为同一个用户检索UIDGID的值。厨师从用户获取UID的最佳方式是什么?

这可以使用厨师内的ruby代码来完成吗?

现在,我尝试使用bash资源,运行以下命令:

id -u $USERNAME 

回答

3

您可以使用自动属性Ohai贡献。

这些信息通过

# uid 
node['etc']['passwd']['$USERNAME']['uid'] 
# gid 
node['etc']['passwd']['$USERNAME']['gid'] 

在命令行访问,你可以按如下探索属性:

$ ohai etc/passwd/vagrant 
{ 
    "dir": "/home/vagrant", 
    "gid": 900, 
    "uid": 900, 
    "shell": "/bin/bash", 
    "gecos": "vagrant,,," 
} 

$ ohai etc/passwd/vagrant/uid 
900 

如果创建厨师运行期间用户,并希望访问其在同一个厨师的信息内运行,你可能不得不触发一个reload的负责任的ohai插件。 (这可能会自动触发,但我不这么认为)。

ohai 'reload passwd' do 
    plugin 'passwd' 
    action :reload 
end 

user 'john' do 
    action :reload, 'ohai[reload passwd]' 
end 
相关问题