use as ferramentas do Amazon EC2 no Capistrano para fazer com que os servidores enviem o código

2

Estou tentando usar as ferramentas do EC2 para obter todas as máquinas com uma tag específica em algum tipo de matriz no arquivo /config/deploy/prod.rb no Capistrano. Algo parecido com isto:

No arquivo 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]
   }
Não tenho certeza de como podemos fazer isso em Capistrano, também sou novato em Ruby. Pessoal, qualquer ajuda sobre isso seria muito apreciada.

    
por APZ 21.11.2011 / 17:53

1 resposta

0

Recentemente encontrei o mesmo problema ou tive pensamentos semelhantes. Corri para essa questão enquanto trabalhava com outra coisa.

Então, eu queria executar certas configurações de fantoches com base no tipo de servidor para o qual ele foi configurado. Deve ser bastante simples fazer algo semelhante, mas usar atributos para executar tarefas diferentes, dependendo da situação.

Eu configurei para que os servidores fossem descritos normalmente no Capistrano, como:

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

Em seguida, criei uma tarefa para fazer o bootstrap de todos os servidores para garantir que eles tivessem fantoches. Depois disso, adicionei comandos para executar após a tarefa de autoinicialização e em qual função. Essas condições podem aproveitar os atributos.

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

Você pode ver o link a seguir para se inspirar na execução de tarefas com base em atributos: puxando strings de fantoches com capistrano

Este exemplo é para fantoches, mas você pode simplesmente desconsiderar o boneco e criar a estrutura capistrano que você quer.

Eu tenho um repo de teste configurado no github descrevendo isso. Eu ainda tenho que adicionar o readme, mas você deve encontrar o que você precisa aqui: bonecos-de-barraca

    
por 23.11.2012 / 10:59

Tags