*.service
ユニットサポートEnvironment=key=val
とアイテムを知っていますが、ドキュメントEnvironmentFile=fname
では*.network
それをサポートしていないようです。
Address
別のファイルや環境変数から特定の値を取得する別の方法はありますか?
たとえば、結果は次のようになります。
# /etc/some/conf
192.0.2.3
# some.network
[Match]
Name=some
[Network]
# (! invalid !) example of desired effect
Address=$(cat /etc/some/conf)
答え1
Systemd-networkdは外部ファイルからのデータロードをサポートしません(少なくとも2020年2月にsystemd 244まで)。したがって、最善の方法は、任意の.service
方法でキーを同期するファイルを作成し、それを追加してRequiredBy=systemd-networkd.service
確認Before=systemd-networkd.service
することです。適切な時間。
答え2
~からsystemd.netman:
これらのファイルは、システムネットワークディレクトリ、揮発性ランタイムネットワークディレクトリ、およびローカル管理ネットワークディレクトリにある
.network
ファイルから読み取られます。すべての構成ファイルは、そのファイルが配置されているディレクトリに関係なく、語彙の順序に従って中央でソートされ、処理されます。ただし、同じファイル名を持つファイルは互いに置き換えられます。のファイルが最も高い優先順位を持ち、 のファイルが の同じ名前のファイルよりも優先されます。必要に応じて、システム提供の構成ファイルをローカルファイルにオーバーライドするために使用できます。特別な場合には、空のファイル(ファイルサイズ0)または同じ名前のシンボリックリンクは、完全に無効なプロファイル(「マスク済み」)を指します。/usr/lib/systemd/network
/usr/local/lib/systemd/network
/run/systemd/network
/etc/systemd/network
/etc
/run
/usr
/dev/null
[...]
"
[Address]
"セクションでは、次のキーを受け入れます。[Address]
複数のアドレスを設定するには、複数の部分を指定してください。