使用鍵我迭代數組,並希望使用密鑰作爲查找一個Ohai值的邏輯的一部分。在我的具體情況下,我試圖source
每個定義的用戶的.bashrc如果從以前的資源觸發。迭代一個廚師陣列和Ohai查找
Ohai結構:
"etc": { "passwd": { "root": { "dir": "/root", "gid": 0, "uid": 0, "shell": "/bin/bash", "gecos": "root" }, ... "foo": { "dir": "/home/foo", "gid": 501, "uid": 501, "shell": "/bin/bash", "gecos": "" }, ...
因此,正如我通過,我試圖做類似循環:
node['my_cookbook']['managed_users'].each do |usr| bash 'reload_shell' do code "source #{node['etc']['passwd'][usr]['dir']}/.bashrc" action :nothing end end
我已經試過也在使用['usr']
,[#{usr}]
和["usr"]
表示法,以及轉義引號。
我upvoted您採購的解釋,謝謝!但是,我仍然看到一個問題:使用| usr,_ | nil:NilClass'的未定義方法[]。符號。 –
這不是你原來的問題的一部分,這意味着有一個在屬性名若有所失或一個錯字或用戶your're目標不存在 – Tensibai
剛剛結束對我的未定義的方法問題的循環,我需要包括ohai「重新加載」資源並使用懶惰歸因設置我的路徑。 https://docs.chef.io/resource_ohai.html https://docs.chef.io/resource_common.html#lazy-attribute-evaluation –