2011-05-20 63 views
6

我正在玩廚師推出EC2實例。一切都很好,但廚師似乎沒有能力標記實例。我錯過了什麼嗎?如何在Chef中使用Ruby標記EC2實例?

否則,實現此目的的首選Ruby庫是什麼?我可以做,而不需要額外的寶石?

謝謝

回答

4

knife-ec2的版本0.5.12 Gem支持使用--tags選項創建標記EC2實例。

knife ec2 server create [... your options...] --tags Tag=Value 
+0

很酷。很高興這現在可用。感謝分享。 – Zach 2012-07-16 16:18:20

+0

@jtimberman - 因此,這標記在AWS的服務器,但它也標記在廚師的背景下的節點,或者你必須在一個單獨的命令做到這一點?也就是說,您可以在這裏管理節點上的標籤:http://wiki.opscode.com/display/chef/Managing+Nodes+With+Knife#ManagingNodesWithKnife-UsingTAGS – runamok 2012-12-13 19:22:45

+0

我從字面上看這裏的代碼:https:// github.com/opscode/knife-ec2/blob/master/lib/chef/knife/ec2_server_create.rb,當我運行 – runamok 2012-12-14 01:53:07

0

通常廚師是用來安裝東西的實例。我並不確定你是如何與廚師開始交流的,但也許你可以分享這些,我會延長我的回答?

否則,fog是一個偉大的圖書館來做這些事情。我只是剔除了源代碼,它似乎也支持標記。

變得霧:gem install fog

+0

這個答案看起來很合理。我懷疑有廚師自動標記意味着向主廚節點提供代碼,以及AWS賬戶的憑證使用霧庫來實現這一點。 – 2012-01-31 02:44:54

+0

正確。您需要將憑證分發給節點。我建議添加一個鎖定AWS用戶帳戶(使用IAM)並通過'user-script'將它傳遞給實例。 – Till 2012-01-31 16:29:02

2

知道這是舊的,但瀏覽和發現它。另一種選擇是使用AWS community cookbook - 假設您有關鍵信用 - 如果您想以編程方式作爲配方的一部分執行操作。

aws = data_bag_item('mydatabag', 'creds') 
aws_resource_tag node['ec2']['instance_id'] do 
    aws_access_key aws['access_key'] 
    aws_secret_access_key aws['secret_key'] 
    tags({ 
    "foo" => "bar" 
    }) 
    action :update 
end