Estou finalmente mudando para um sistema Chef para autoescala / descoberta, mas agora eu realmente controle o processo de inicialização do servidor diretamente do código-fonte da coisa que eu preciso do servidor para ser implantado. Não tenho certeza se você está na webstack ou se está usando o ruby, mas uma ferramenta muito boa para usar se você é: recapitular (baseado em Capistrano)
Ele permite que você execute scripts em qualquer número de servidores remotos. Ele funciona usando um 'Capfile' para definir seus servidores e tal, e então tem algumas tarefas internas que você pode estender. Uma delas é a tarefa: bootstrap. Então eu tenho uma cadeia simples ao provisionar novos servidores de
before 'bootstrap', 'bootstrap:dependencies'
...
namespace :bootstrap do
task :dependencies do
uname = capture('uname -r')
abort('ENV Not Supported') unless uname.strip == "some uname version"
sudo('apt-get -y install build-essential')
run('echo 'America/New_York' | sudo tee /etc/timezone')
end
end
...
Isso é apenas uma amostra de algumas coisas que você pode fazer usando os comandos 'capture', 'sudo' e 'run' que a recapitulação fornece a você. Obviamente, este exemplo supõe que o software que você está implementando está vinculado à pilha de ruby, mas o ponto é que existem ferramentas como essa para todos os tipos de linguagens / frameworks.
Minha sugestão é simplesmente vincular o provisionamento do servidor ao código que você está implantando nesse servidor, a menos que você queira usar uma ferramenta como o chef ou o fantoche.