Ubuntuサーバー18.04でDHCPクライアントを構成する方法を見つけようとしています。
Cloud-initからの次のネットプラン構成があります。
network:
version: 2
ethernets:
ens160:
dhcp4: true
match:
macaddress: 02:dc:01:00:38:4c
set-name: ens160
これは、IPアドレス、DNS、デフォルトゲートウェイ、および検索ドメインを使用して、ネットワークインターフェースを適切に構成しているようです。ただし、DHCPからホスト名を取得する方法は疑問です。私は、使用できる便利なフックを提供するdhclientを調べてきましたが、dhclientフックが呼び出されているようには見えません。 cloud-initはログごとにdhclientを呼び出しますが、フックを無視しているように見えるサンドボックスバージョンのように見えます。
また、systemd-networkdがDHCPリースに関するDHCPアクティビティを報告することにも気付きました。
誰かがプロセスに光を当てることができますか?
私はこれについてさらに掘り下げたので、他の人にいくつかの情報を残しました。
Ubuntu 18.04はdhclientを使用しなくなったようです。これはifupdown
によってデーモンモードで呼び出されました。代わりに、systemd-networkd
がDHCPのすべてを処理します。 DHCPクライアントフックを作成するには、systemd
を使用する必要があります(ntp
のファイルを見ると、この方法の例を見ることができます:/lib/systemd/system/ntp-systemd-netif.{path|service}
)。
質問で述べたように、cloud-initはサンドボックスでdhclientを呼び出しますが、一部の特定のクラウドに対してのみです。
ホスト名の設定に関しては、systemd-networkd
とcloud-init
の間に競合がある可能性があります。 Cloud-init nocloud set hostname from dynamic from dhcp を参照してください。