Подтвердить что ты не робот

Как запустить cloud-init вручную?

Я пишу шаблон CloudFormation, и я пытаюсь отлаживать пользовательские данные script, которые я предоставляю в шаблоне. Как я могу запустить cloud-init вручную и заставить его выполнять те же действия, что и при запуске нового экземпляра?

4b9b3361

Ответ 1

Вы можете просто запустить его следующим образом:

/usr/bin/cloud-init -d init

Это запускает настройку облачной инициализации с использованием исходных модулей. (Опция -d предназначена для отладки) Если вы хотите запустить все модули, которые вы должны запустить:

/usr/bin/cloud-init -d modules

Имейте в виду, что во второй раз, когда вы запускаете их, это не делает многого, поскольку он уже запускается во время загрузки. Чтобы заставить работать после загрузки, вы можете запустить из командной строки:

( cd /var/lib/cloud/ && sudo rm -rf * )

В более старых версиях эквивалент cloud-init init:

/usr/bin/cloud-init start

Вы также можете найти этот вопрос полезным, хотя он относится к более старым версиям cloud-init: Как запускать сценарии запуска cloud-init каждый раз, когда загружается экземпляр EC2?

Документация для cloud init здесь дает вам примеры. Но это не объясняет параметры командной строки или каждый из модулей, поэтому вам нужно поиграть с разными значениями в конфигурации, чтобы получить желаемые результаты. Конечно, вы также можете посмотреть код.

Ответ 2

В CentOS7 в AWS вы можете перезапустить службу облачного init с помощью systemctl:

systemctl restart cloud-init.service

И затем проверьте вывод журнала, чтобы увидеть результаты:

journalctl -f

Ответ 3

Kudus to @Rico, а также, если вы хотите запустить один модуль - либо для тестирования, либо потому, что ваш дистрибутив не включает модуль по умолчанию (hi Precise!), вы можете

/usr/bin/cloud-init -d single -n <module-name>

Например, когда мой дистрибутив не запускает write_files по умолчанию (как и многие старые дистрибутивы), я использую это в верхней части runcmd:

runcmd:
 - /usr/bin/cloud-init -d single -n write-files

[Я знаю, что это не ответ на OP, но когда я решил решить мою проблему, этот вопрос был одним из лучших результатов, поэтому я считаю, что другие люди могут найти это полезным]