2
您可以在引導時將節點分配給環境,但我已經有一堆坐在_default中的生產節點。如何自動將節點分配給環境?
我可以使用刀將它們分配給其他環境,或者我正在考慮爲每個運行chef-client :: config並設置環境屬性的環境設置角色,然後我可以只分配節點以適應環境的角色。使用角色的問題我認爲雖然會是額外的箍環,但我不得不跳過這些環節以在測試廚房中進行連接。
廚師們通常會如何解決這個問題?
您可以在引導時將節點分配給環境,但我已經有一堆坐在_default中的生產節點。如何自動將節點分配給環境?
我可以使用刀將它們分配給其他環境,或者我正在考慮爲每個運行chef-client :: config並設置環境屬性的環境設置角色,然後我可以只分配節點以適應環境的角色。使用角色的問題我認爲雖然會是額外的箍環,但我不得不跳過這些環節以在測試廚房中進行連接。
廚師們通常會如何解決這個問題?
合適的地方開始是knife exec
與轉換腳本。
這也許應該讓你開始:
knife exec -E 'nodes.transform("roles:foo") {|n| n.chef_environment = "foo" }'
的論點有一個搜索查詢(你也可以使用"*:*"
抓住所有節點),然後做塊中的每個節點對象的東西。如果塊的返回值是真的,它會被保存,如果是false-y它不會。
您是否曾經通過廚師客戶食譜爲節點分配環境? 「學習廚師」一書提到了這種方法,但我不明白它只是使用刀的優點。 – red888
還沒有看過這本書,所以你必須更具體。一般情況下,廚師客戶食譜中的東西都會寫入client.rb配置文件,非常非常不推薦,因爲它會不斷地覆蓋廚師服務器的信息。 – coderanger