Depois que o cloud-init executa um script de dados do usuário na primeira inicialização de uma instância do EC2, presumivelmente é gravado um arquivo de estado para que o cloud-init não execute o script novamente nas reinicializações subsequentes. Há casos em que eu gostaria de excluir esse arquivo de estado para que o script de dados do usuário seja executado novamente. Cadê?
amazon-ec2
cloud-init
Mike
fonte
fonte
curl
é desnecessário para o serviço de metadados para obter o ID da instância atual, porque/var/lib/cloud/instance
já é um link simbólico para a instância atual em/var/lib/cloud/instances
. :-)Você pode colocar seu script em /etc/rc.local, que executará o script a cada reinicialização.
fonte
/etc/rc.local
não tem nada a ver com dados do usuário do EC2.Você também pode configurar os dados do usuário para executar novamente em cada inicialização, em vez de remover o arquivo de estado. É necessário usar
cloud_final_modules
no script userdata para executar novamente o script userdata e, para isso, é necessário customizar uderdata para ter vários arquivos em userdata. Exemplo de arquivo userdata seria como:Isso fará com que o script userdata seja executado na última etapa de cada processo de inicialização. Aqui apenas uma única linha
bin/echo "Hello World" >> /tmp/userdata-test.txt
a ser executada, substitua-a pelo seu shell script que precisa ser executado toda vez que uma máquina for inicializada.fonte