使用Capistrano中的Amazon EC2工具来获取服务器来推送代码

我正在尝试使用EC2工具来获取Capistrano中/config/deploy/prod.rb文件中某些types数组中的特定标记的所有计算机。 像这样的东西:

在prod.rb文件中:

//untested command workers-array[]=$(ec2-describe-instances -F vpc-id=1234 -F tag:Env=prod -F tag:SystemType=worker) for(i=0;i<workers-array.len;i++){ role :worker-A, workers-array[i] } 

我不知道我们怎么能在capistrano做到这一点,也是ruby新手。 任何人的帮助将非常感激。

我最近遇到了同样的问题,或者有类似的想法。 在处理其他事情的时候也会遇到这个问题。

所以我想根据configuration的服务器types运行某些puppetconfiguration。 做类似的事情应该相当简单,但根据情况使用属性来运行不同的任务。

我build立了这样的服务器在Capistrano像往常一样描述,如:

 role :web, "mywebhost" #attributes to the server can be added at the end 

然后我创build了一个引导所有服务器的任务,以确保他们有木偶。 之后,我添加了在启动任务后运行的命令,以及在哪个angular色上运行。 这些条件可以利用属性。

 after "bootstrap", :roles=>[:web] do # here we place code specific for configuring the web role using puppet try_sudo("puppet apply config/puppet/web.pp") end 

你可以看看下面的链接,以获取灵感:根据属性来运行任务: 用capistrano拉动木偶string

这个例子是傀儡,但你可以忽略傀儡,并创build你想要的卡皮斯特拉诺结构。

我有一个testing回购在github上设置描述这个。 我仍然需要添加自述文件,但是您应该在这里find您需要的: capdriven-puppet