Tanto quanto posso ver, cloud-init
é executado toda vez que a configuração muda. Não apenas na primeira vez que o sistema é inicializado, mas sempre que a configuração fornecida é alterada. Isso faz algum sentido, pois acho difícil definir a "primeira vez" (a VM clonada já foi executada antes de ser congelada e usada como modelo, portanto, nunca é a primeira vez). No entanto, de tempos em tempos, muito raramente, mas ainda assim, descobri que cloud-init
é executado novamente no sistema já provisionado quando é reinicializado.
Algumas etapas, no entanto, parecem atrapalhar a configuração quando cloud-init
executada em um sistema totalmente configurado. Por exemplo, se ele for executado mais uma vez após a configuração inicial e cloud-init
definir alguma configuração para value X
, mas você a substituiu manualmente posteriormente Y
e agora cloud-init
é executada novamente para defini-la novamente como X
. Ou faça com que o sistema recrie suas chaves de host SSH.
Assim, achei bastante útil executar manualmente:
sudo touch /etc/cloud/cloud-init.disabled
...após a configuração inicial para evitar que ele volte a ser executado cloud-init
. (Nos casos, where cloud-init
really é usado apenas para um tipo de configuração inicial "clone & set IPs/hostname".)
Mas existe alguma maneira de automatizar isso? Como adicionar algum parâmetro ao /etc/cloud/cloud.cfg
que se desativou após a próxima execução?