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

Как перезапустить cloud-init без перезагрузки

Я использую openstack для создания виртуальной машины с помощью команды "nova boot". Мое изображение облачно-init включено. Я передаю -user-data script, который представляет собой формат оболочки bash для cloud-init для запуска во время загрузки VM. Все это происходит успешно. Теперь мой прецедент - перезапустить cloud-init для выполнения одних и тех же пользовательских данных script без перезагрузки виртуальной машины. Я видел /usr/bin/cloud -init опции, и они говорят о запуске определенных модулей, но ничто не может заставить его выполнять одни и те же пользовательские данные script. Как это можно достичь? Любая помощь будет оценена по достоинству.

4b9b3361

Ответ 1

Для того, чтобы cloud-init был reset, вам нужно выполнить rm -rf /var/lib/cloud/instances.

Затем запустите cloud-init start и снова запустит процесс полной загрузки script.

Ответ 2

Так как это продолжает появляться в результатах поиска, что работает для меня:

  • Удалить семафоры в /var/lib/cloud/instances/i-xxxxxxx/sem. Cloud-init не будет повторно запускаться, если эти файлы присутствуют.
  • Изменить /var/lib/cloud/instances/i-xxxxxxxx/scripts/part-001. Это ваши пользовательские данные script.
  • Выполните только модуль пользовательских скриптов cloud-init. Это не приведет к повторной загрузке пользовательских данных, но будет выполняться уже загруженный (и теперь измененный) script с шага 2.

    sudo /usr/bin/cloud-init single -n cc_scripts_user

Ответ 3

Чтобы запустить модуль пакетов облачной конфигурации облачной инициализации, вы можете запустить

# cloud-init-cfg all config

Чтобы запустить модуль runcmd облачной конфигурации части cloud-init, вы можете запустить

# cloud-init-cfg all final