Я установил cloud-init на FreeBSD из репозитория pkg. FreeBSD работает на oVirt, используя источник данных config-drive. Я использую его для установки другого имени хоста машины при загрузке.
Моя проблема в том, что я не запускаю его на «локальном» этапе. Самый ранний этап, который у меня работает, - это этап «инициализации», но на этом этапе /etc/rc.conf уже установил имя хоста и получил IP-адрес с DHCP, который автоматически передает имя хоста в DNS. Когда cloud-init впоследствии устанавливает другое имя хоста, я не могу получить доступ к хосту через это имя хоста, потому что DNS ничего об этом не знает.
В /usr/local/etc/rc.d/cloudinitlocal есть сценарий rc cloudinitlocal, который может выполняться на «локальном» этапе. Я попытался добиться этого с помощью следующего в /usr/local/etc/cloud/cloud.cfg:
datasource:
ConfigDrive:
dsmode: local
Но желаемого эффекта это не дало. Я также попытался добавить следующее, чтобы cloud-init запускал локальный этап:
cloud_local_modules:
- set_hostname
- update_hostname
Который, похоже, тоже ничего не запустил на «местной» стадии.
Итак, мой вопрос: как я могу заставить cloud-init на FreeBSD запускать что-то на «локальной» стадии?