0
是否可以使用廚師user
資源檢索一些帳戶詳細信息?我可以使用廚師用戶資源檢索帳戶uid嗎?
我可以例如
u = user 'myuser' do
action :manage
end
不那麼我想用u.uid
或東西來檢索用戶的uid
。
這可能嗎?怎麼樣?
是否可以使用廚師user
資源檢索一些帳戶詳細信息?我可以使用廚師用戶資源檢索帳戶uid嗎?
我可以例如
u = user 'myuser' do
action :manage
end
不那麼我想用u.uid
或東西來檢索用戶的uid
。
這可能嗎?怎麼樣?
廚師將節點對象中的所有用戶存儲在密鑰etc
下。
此樹是在運行開始ohai稀少,因此及時更新,並能夠訪問node['etc']['passwd']['myuser']['uid']
你要問ohai像這樣再次運行etc
插件(引自ohai documentation:
ohai 'reload_passwd' do
action :nothing
plugin 'etc'
end
user 'daemonuser' do
home '/dev/null'
shell '/sbin/nologin'
system true
notifies :reload, 'ohai[reload_passwd]', :immediately
end
ruby_block 'just an example' do
block do
# These variables will now have the new values
puts node['etc']['passwd']['daemonuser']['uid']
puts node['etc']['passwd']['daemonuser']['gid']
end
end
哇...這看起來相當先進,這向我展示了一個全新的世界,我很高興知道我還能做的是'uid ='id -u#{node ['jenkins'] ['master'] [''用戶']}'.delete(「\ n」)'。我們會在一行Ruby中給我'uid'或'「」',一定會更快。在一行Ruby中不是快捷和骯髒的?你會推薦什麼? – onknows
第一次運行它可能會更快,在n ext運行您將通過所有提供程序代碼獲取用戶信息,這些信息已在啓動時由ohai收集,使用通知意味着只有在用戶更改時纔會完成ohai重新加載,因此下次運行時的計算時間爲0 – Tensibai
配方中的ruby代碼將在編譯時完成,而不是在收斂時間完成。因此,首先運行它將在用戶創建之前評估,並返回nil – Tensibai