Eu tenho um script em uma instância do EC2 que inicia remotamente outra instância.
Depois que esta instância estiver totalmente carregada (inicialização concluída), desejo que ela execute automaticamente um script bash, qual seria a melhor maneira de fazer isso?
Eu preciso que tudo seja iniciado completamente, basicamente o script bash executa um script de conversão de imagem (usando o ImageMagick e executa o comando "wget" algumas vezes)
Atualmente, o script está localizado aqui:
/home/root/beginProcess.sh
E eu posso iniciá-lo manualmente executando
bash beginProcess.sh
RHEL-6.2-Starter-EBS-i386
Também há um volume EBS anexado a isso, se isso ajudar, obrigado!
fonte
/etc/rc.local
está trabalhando maravilhosamente, aplausosSe você estivesse usando uma AMI com o
cloud-init
pacote instalado (como Amazon Linux ou Ubuntu), poderia simplesmente passar o script bash (que começa com #!) Como o arquivo de dados do usuário e ele seria executado automaticamente no final do processo de inicialização.Por exemplo, poderia ser tão simples quanto:
Aqui está o artigo em que introduzi o conceito de script de dados do usuário, agora disponível nas principais AMIs do EC2, como Amazon Linux e Ubuntu: http://alestic.com/2009/06/ec2-user-data-scripts
Infelizmente, parece que você deseja usar um RHEL AMI. Fiz uma cópia disso e não consegui encontrar nenhuma referência ao cloud-init ou à execução de scripts de dados do usuário na primeira inicialização, nem fiz um teste do mesmo trabalho.
Não estou dizendo que você deve trocar as distribuições do Linux apenas por isso, mas o Amazon Linux é baseado no RHEL, para que possa funcionar para você.
Aqui está um artigo que escrevi que pode ajudá-lo a depurar seu script de dados do usuário se ele não funcionar pela primeira vez: http://alestic.com/2010/12/ec2-user-data-output
fonte