web-dev-qa-db-ja.com

systemd-machine-id-setupを別のものに置き換えますか?

仮想化環境ではubuntu-18.04テンプレートを使用しています。したがって、テンプレートを作成する前に、/etc/machine-idファイルを常に空にして、最初の起動時に再作成されるようにします。

問題は、複数のubuntu-18ベースのVMが同時に起動されると、systemd-machine-id-setupがそれらすべてに対して同じIDを生成し、IPが重複することです。これらのサーバーを確認したところ、/etc/machine-idファイルの内容はすべて同じでした。

IP duplication

マシンの電源が一定の間隔で投入されている場合、異なるIPが割り当てられるため、systemd-machine-id-setupは現在の時刻に基づいて(おそらく)生成されると想定しています。上の画像の問題のため、これは受け入れられません。

OSに代替バイナリに基づいてブート時に/etc/machine-idを生成させる方法はありますか?

---更新1 ---

@GeraldSchneiderのヒントでは、私は netplanからifdownupに切り替えました であり、IPの複製が停止したため、これは間違いなくnetplanの問題です。

no duplicated IPs

これで問題が解決できるとしても、/etc/machine-idファイルを生成する別の方法を設定してネットプランを使用しても重複が発生しないようにする方法があるかどうか知りたいです。

5
nKn

.../etc/machine-idファイルを生成する別の方法を設定する方法があるかどうか知りたい...

machine-idマニュアルページ ごとに、

...それ以外の場合は、/ etc/machine-idの値が使用されます。このファイルが空または欠落している場合、systemdは/ var/lib/dbus/machine-idからのD-BusマシンID、カーネルコマンドラインオプションの値container_uuid、KVM DMIを使用しようとしますproduct_uuid(KVMシステム上)、最後にランダムに生成されたUUID。

また、ページの下部に向かって、

/ etc/machine-idの単純な構成ファイル形式は、D-Busによって導入された/ var/lib/dbus/machine-idファイルに由来しています。実際、この後者のファイルは/ etc/machine-idへのシンボリックリンクである可能性があります。

したがって、次の回答に示すように、dbus-uuidgenを使用してmachine-idを設定することもできます。

dbus-uuidgenマニュアルページ ごとに、

オプションなしでdbus-uuidgenを実行すると、薄い空気で構成された新しいuuidが出力されます。

1
rage