コンテナーがNetplanによって管理されているかどうか、LXDコンテナーのシェルスクリプトで把握したいと思います。 16.04システムと18.04システムが混在し、18.04システムがアップグレードされているため、これは少し未知のことです。
コンテナに正しいネットワーク構成を書き込むために、/etc/network/interfaces
またはNetplan yamlファイルで構成が静的かどうかを検出する必要があります。
netplan status
のようなものを実際に使用できますが、そのコマンドが存在しないため、代替手段が必要です。
私はかなり尋ねましたが、公式な方法はないようです。
cat /etc/network/interfaces
でNetplan情報メッセージを探します。これは明らかに破損しやすいため、このアプローチは好きではありません。Ifupdownのifstateファイルを確認できます。これにより、ネットワークの構成に使用されたものかどうかがわかります。
/run/network/ifstate
そこにテキストが含まれている場合は、ifupdownが使用されていると予想できます。存在しない場合、システムはネットプランを介して管理されている可能性があります(ただし、NetworkManagerかsystemdかはわかりません)
次に、特定のインターフェイスにどのバックエンドが使用されているかを知りたい場合は、netplanに問い合わせて、出力を解析して必要な情報を取得できます。
netplan generate --mapping enp3s0
次のようなテキストを出力します。
id=enp3s0, backend=NetworkManager, set_name=(null), match_name=enp3s0, match_mac=(null), match_driver=(null)
そうすれば、インターフェースが設定されたマッチングルールを使用して知ることもできます(インターフェースの「最終」名を使用してマッピングを確認し、ネットプランYAMLにマッチするマッチングルールを通知します)。