2016-09-15 138 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 
相關問題