因此,我的目標是使用cloudformation在雲中發佈100個節點,並且我想在我的cloudformation腳本中標記具有廚師角色的節點,而不是使用刀子。我已經設置了我的雲信息節點來自動向主廚服務器註冊自己,並且我想使用向主廚服務器報告他們的角色,以便廚師服務器在每個節點上安裝正確的菜譜(取決於節點角色)。我知道這是可能的刀,但我想埋葬我的雲形成腳本中的節點角色。廚師角色的標籤節點使用cloudformation
我該怎麼做?
因此,我的目標是使用cloudformation在雲中發佈100個節點,並且我想在我的cloudformation腳本中標記具有廚師角色的節點,而不是使用刀子。我已經設置了我的雲信息節點來自動向主廚服務器註冊自己,並且我想使用向主廚服務器報告他們的角色,以便廚師服務器在每個節點上安裝正確的菜譜(取決於節點角色)。我知道這是可能的刀,但我想埋葬我的雲形成腳本中的節點角色。廚師角色的標籤節點使用cloudformation
我該怎麼做?
我和廚師一起做這個。我通常在S3中放入一個json文件,描述機器需要使用的角色。我在CloudFormation中創建一個可以訪問S3存儲桶的IAM用戶。然後,在我的用戶數據腳本中,我首先從S3獲取文件,然後運行chef-client -j/path/to/json/file。我使用驗證密鑰fwiw做同樣的事情,以便節點可以註冊自己。
HTH
我使用傀儡,這當然與廚師略有不同,但同樣的理論應該適用。當啓動一個新實例(也通過CloudFormation)時,我發送一個JSON對象作爲用戶數據,然後在Puppet中訪問這些數據以進行動態配置。
木偶會自動處理很多這樣的事情 - 例如它會自動爲我設置FACTOR_EC2_USER_DATA環境變量,所以我只需要將JSON解析爲諸如$ role和$ environment之類的變量,此時我可以動態地決定實例應分配給哪個角色。
所以只要你能找到某種方式來訪問Chef中的用戶數據,相同的方法應該可以工作。
謝謝。這是否意味着我需要爲我的部署中的每個角色分配一個json文件? – iCode
對於每個「節點類型」aka,run_list,您都需要一個。如果你的節點爲他們的run_list使用單一角色,那麼是的。這是我做什麼的要點:https://gist.github.com/4218533 – turtlebender