Como eu testei, havia alguns dados de bootstrap no diretório /var/lib/cloud
.
Depois de limpar o diretório, o script Dados do usuário funcionou normalmente.
rm -rf /var/lib/cloud/*
Fazemos AMI's e ultimamente eu queria executar alguns scripts de dados de usuários para notificar a formação de nuvens quando a instância é inicializada e colocá-la em serviço. Eu estou usando o sinal de cfn para fazer isso. Na imagem original do Ubuntu, o script será executado, mas depois de assar nossa AMI personalizada, o script de dados do usuário não será executado.
Se eu colocar "# cloud-boothook" na parte superior do script, ele é executado, mas porque é executado tão cedo que não é útil para notificar quando a máquina está ativa. Espero que alguém saiba onde o sinalizador ou arquivo indica que a cloudinit é o primeiro boot de uma máquina.
Eu também tentei modificar a configuração como foi sugerido Aqui
Eu sei que deve haver um sinalizador ou arquivo que eu possa remover antes do processo de criação da AMI, mas não consigo encontrar informações sobre o sinalizador ou arquivo.
Como eu testei, havia alguns dados de bootstrap no diretório /var/lib/cloud
.
Depois de limpar o diretório, o script Dados do usuário funcionou normalmente.
rm -rf /var/lib/cloud/*
Você precisa ter certeza de que o cloud-init não está em execução durante esse período. Caso contrário, você precisará excluí-lo novamente.
Isso é especialmente verdadeiro se você tentar excluir /var/lib/cloud/
dos dados do usuário. Neste caso, você deve usar algo como:
echo "rm -rf /var/lib/cloud/*" | at now + 1 min
no final do script de dados do usuário.