Назад | Перейти на главную страницу

Локальный этап Cloud-init на FreeBSD

Я установил 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 запускать что-то на «локальной» стадии?