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

Заменить systemd-machine-id-setup альтернативой?

Мы используем ubuntu-18.04 шаблон в среде виртуализации. Поэтому перед созданием шаблона мы всегда очищаем /etc/machine-id файл, поэтому он воссоздается при первой загрузке.

Проблема в том, что если запускать сразу несколько виртуальных машин на базе ubuntu-18, systemd-machine-id-setup будет генерировать одинаковый идентификатор для всех, что приведет к дублированию IP-адресов. Я проверил эти серверы, и все они имеют одинаковый контент в /etc/machine-id файл.

Если машины включаются с определенным промежутком времени, назначаются разные IP-адреса, поэтому я предполагаю systemd-machine-id-setup генерируется на основе текущего времени (возможно). Это неприемлемо для нас из-за проблемы на изображении выше.

Есть ли способ заставить ОС генерировать /etc/machine-id при загрузке на основе альтернативного бинарника?

--- ОБНОВЛЕНИЕ 1 ---

По совету @GeraldSchneider я переключился обратно с netplan на ifdownup и IP-адреса перестали дублироваться, так что определенно это проблема netplan.

Даже если бы это могло решить проблему, мне любопытно, есть ли способ установить альтернативный способ создания /etc/machine-id файл, поэтому при использовании netplan не происходит дублирования.

... Мне любопытно, есть ли способ установить альтернативный способ создания файла / etc / machine-id ...

По страница руководства по идентификатору машины,

... В противном случае будет использоваться значение из / etc / machine-id. Если этот файл пуст или отсутствует, systemd попытается использовать идентификатор машины D-Bus из / var / lib / dbus / machine-id, значение параметра командной строки ядра container_uuid, KVM DMI product_uuid (в системах KVM) и, наконец, случайно сгенерированный UUID.

А также внизу страницы

Простой формат файла конфигурации / etc / machine-id происходит из файла / var / lib / dbus / machine-id, представленного D-Bus. Фактически, этот последний файл может быть символической ссылкой на / etc / machine-id.

Следовательно, также можно установить идентификатор машины, используя dbus-uuidgen, как видно из следующего ответа:

По страница руководства dbus-uuidgen,

Если вы запустите dbus-uuidgen без параметров, он просто напечатает новый uuid, созданный из воздуха.