Рейтинг:1

Как обеспечить запуск Cloud-Init ровно один раз и только один раз?

флаг us

Насколько я вижу, облачная инициализация запускается каждый раз при изменении конфигурации. Не только при первой загрузке системы, но и при каждом изменении предоставленной конфигурации. В этом есть определенный смысл, поскольку я думаю, что трудно определить «первый раз» (клонированная виртуальная машина уже запускалась до того, как была заморожена и использовалась в качестве шаблона, поэтому на самом деле это никогда не происходит впервые). Однако я — время от времени, довольно редко, но все же — обнаруживал, что облачная инициализация повторно запускается в уже подготовленной системе при перезагрузке.

Однако некоторые шаги, похоже, портят настройку, когда облачная инициализация выполняется на полностью настроенной системе. Например, если он запускается еще раз после первоначальной настройки и облачная инициализация устанавливает некоторую конфигурацию в значение Икс, но впоследствии вы вручную переопределили его на Д и сейчас облачная инициализация повторно запускается, чтобы установить его обратно в Икс. Или попросите систему заново создать ваши ключи хоста SSH.

Таким образом, я нашел весьма полезным запустить вручную:

sudo touch /etc/cloud/cloud-init.disabled

... после первоначальной настройки, чтобы он никогда не запускался облачная инициализация еще раз. (В случаях, когда облачная инициализация на самом деле используется только для первоначальных конфигураций типа «клонирование и установка IP-адресов/имени хоста».)

Но есть ли способ автоматизировать это? Например, добавить какой-либо параметр в /etc/cloud/cloud.cfg что отключил себя после следующего запуска?

Рейтинг:2
флаг jp

Разные облачная инициализация модули имеют разные частоты: один раз за экземпляр и всегда. Вы можете проверить атрибут Частота модуля для каждого модуля в Документация модулей. Например, bootcmd работает при каждой загрузке, но запуститьcmd только при первой загрузке.Частоты можно переопределить в списках модулей файла конфигурации облака - cloud_init_modules, cloud_config_modules и cloud_final_modules. Пример переопределения:

cloud_final_modules:
- [пользователь скриптов, всегда]

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.