Попробуйте запустить cloud-init analyze show
оба раза (создание экземпляра и последовательная перезагрузка) и проверьте, нет ли различий.
К сожалению, облачные провайдеры как бы злоупотребляют возможностями cloud-init
, но не полностью. cloud-init
позволяет настраивать конфигурацию, предоставленную поставщиком / пользователем (кто что отменяет), изменять порядок этапов загрузки и т. Д. c. Это делается в основном потому, что разные облачные провайдеры нуждаются в сети / предоставлении / хранилище в разное время. Например, AWS подключает хранилище после сети (только EBS), Azure предоставляет виртуальную машину только после подключения хранилища и изначально предоставляется как NTFS (они действительно форматируют диск, если вам нужно что-то еще), et c.
Эти махинации, хотя и понятные (инфраструктура центра обработки данных определяет доступность пользователей), делают документацию cloud-init
просто предложением для изучения пользователем.
По моему опыту, Azure является наиболее близким к оригинальная реализация. Возможно, они еще не научились использовать потенциал в свою пользу.
Мое общее предложение для любой настройки экземпляра (почти всегда работает) - написать сценарий с write_files
и выполнить их с bootcmd/runcmd
, потому что они выполняются на этапе final
и обеспечивают наилучшую возможность переопределения. Отредактируйте hosts
, измените правила брандмауэра - большая часть работы не требует перезагрузки.