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