Насколько я вижу, облачная инициализация запускается каждый раз при изменении конфигурации. Не только при первой загрузке системы, но и при каждом изменении предоставленной конфигурации. В этом есть определенный смысл, поскольку я думаю, что трудно определить «первый раз» (клонированная виртуальная машина уже запускалась до того, как была заморожена и использовалась в качестве шаблона, поэтому на самом деле это никогда не происходит впервые). Однако я — время от времени, довольно редко, но все же — обнаруживал, что облачная инициализация повторно запускается в уже подготовленной системе при перезагрузке.
Однако некоторые шаги, похоже, портят настройку, когда облачная инициализация выполняется на полностью настроенной системе. Например, если он запускается еще раз после первоначальной настройки и облачная инициализация устанавливает некоторую конфигурацию в значение Икс, но впоследствии вы вручную переопределили его на Д и сейчас облачная инициализация повторно запускается, чтобы установить его обратно в Икс. Или попросите систему заново создать ваши ключи хоста SSH.
Таким образом, я нашел весьма полезным запустить вручную:
sudo touch /etc/cloud/cloud-init.disabled
... после первоначальной настройки, чтобы он никогда не запускался облачная инициализация еще раз. (В случаях, когда облачная инициализация на самом деле используется только для первоначальных конфигураций типа «клонирование и установка IP-адресов/имени хоста».)
Но есть ли способ автоматизировать это? Например, добавить какой-либо параметр в /etc/cloud/cloud.cfg что отключил себя после следующего запуска?