Como executar um script em um Amazon EC2 quando a instância é iniciada pela primeira vez?

1

Eu fiz meu próprio AMI para propósito interno. Como faço para executar um script quando a instância é iniciada usando essa AMI? Como posso fazer isso?

Minha abordagem atual é adicionar o script, diga myscript.sh, a /etc/rc.d/rc.local . Essa é a abordagem correta para AMIs?

Editar: aqui está um cenário:

Eu criei uma AMI (imagem EC2) de uma instância do EC2. Agora, quando um colega usou essa imagem e iniciou uma instância, eu quero que um script seja executado apenas uma vez quando a instância for iniciada. Eu não quero que isso seja executado toda vez que a instância for reinicializada. Em vez disso, apenas no momento de iniciar a instância pela primeira vez.

    
por Ashwin kumar 23.07.2014 / 16:01

2 respostas

6

Forneça seu script por meio de "dados do usuário" durante o processo de inicialização e ele será executado na primeira inicialização. Se você estiver usando o awscli, use a opção --user-data "

$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type m1.small --key-name foo-key --security-group-ids sg-xxxxxxxx --subnet-id subnet-xxxxxxxx --placement AvailabilityZone=us-west-2a --user-data file://path/to/script

Se você estiver usando a GUI, o campo de dados do usuário ficará oculto na seção "Avançado" na parte inferior da etapa 3 da caixa de diálogo de lançamento:

    
por 23.07.2014 / 16:49
2

Você viu isso? Este tópico descreve como adicionar dados do usuário a uma inicialização.

link

Isso permite que você execute um script uma vez na inicialização, mas você deve especificar os mesmos dados de usuário sempre que iniciar a AMI. Você quer que o mesmo script seja executado toda vez que este AMI for lançado sem ter que entrar nele ou a possibilidade de mudar?

    
por 31.07.2014 / 07:43