web-dev-qa-db-ja.com

/ etc / network / interfacesファイルの先頭にあるsource /etc/network/interfaces.d/*は何をしますか?

デフォルトでは、以下の行が/etc/network/interfacesに含まれていることに気付きました。

source /etc/network/interfaces.d/*

このラインの目的は何ですか?それは実際に何をしますか?

4
Greg

Ubuntuから interfaces man page

「source」で始まる行は、他のファイルのスタンザを含めるために使用されるため、構成を多くのファイルに分割できます。 「ソース」という単語の後に、ソースとなるファイルのパスが続きます。シェルワイルドカードを使用できます。現在、絶対パス名のみをサポートしています。

5
Paul

討論

sourceコマンドは、_._(ソース)構文のテキストバージョンです。これにより、1つのファイルからコードをインクルード/インポートし、それを親にマージできます。ただし、Ubuntu 16.04のベースインストールから明確でないのは、source行が最初になる理由です。つまり、以下のインターフェイス_enp0s3_に静的IPを使用したい場合、最初に_enp0s3_のiface行をコメント化/消去する必要があるということですか? enter image description here

fileおよびfile.dスキームはかなり一般的です。 Apache HTTP Serverを実行している場合は、おそらくApache24/conf/httpd.confを見たことがあり、extra /より多くの* .confファイルを含むディレクトリ(通常httpd-ssl.confhttpd-vhosts.confphp.confhttpd-default.confなど)。この場合、シェルスクリプトは含まれていませんが、基本的には同じです。

なぜこのようにするのですか?

1。懸念の分離

1つのインターフェース構成だけを台無しにしてから、複数のインターフェースに影響を与える可能性のあることを行う方がよいでしょう。物事を分離しておくことで、ものを自動化するシェルスクリプトを実際に作成しやすくなります。

sedgrep、およびawkを使用して_/etc/network/interfaces_をふるいにかける代わりに、基本的な方法で_/etc/network/interfaces.d/_の正しいファイルをターゲットにするだけでファイルのグロビング。

物事を分離しておくことで、物事を台無しにする可能性が劇的に減少します。

2。長期的に見れば、より良い組織です。

Interfaces.d /が保持するものについて考えると、ネットワークインターフェース構成の「インスタンス」が保持されます(かなり複雑になる可能性があります)。このようにして、スクロールしなくて済む時間を節約することで、interfaces.d /に進むことができます。


結論

あなたはプロのセットアップを計画していますか? _/etc/network/interfaces.d/_を使用して、ネットワークインターフェイスの構成を保持します(インターフェイスごとに1つのファイル)。

enter image description here

あなたは地下室でLinuxを使用している(1つのインターフェースを持つコンピューター上で)趣味であり、他の誰かの生活を楽にすることにあまり関心がありませんか? _/etc/network/interfaces_を使用して、あなたの人生を続けます。デフォルトの構成設定をコメント化するか、それらを完全に削除します。

ただし、インターフェイスのマニュアルページには、インターフェイス構成コマンドが累積されており、各インターフェイスで複数のプロトコルと複数のIPアドレス(v4およびv6)が許可されていると記載されています。 1日の終わりに、あなたは_/etc/network/interfaces_に何を入れるかを決定します。デフォルトのループバック構成と同じですか?構成をファイルにダンプし、それを_/etc/netowork/interfaces.d/_に入れます。

ここで、他のデフォルトのインストールインターフェイス設定についても同じようにします。 _/etc/network/interfaces_に、「このファイルはインターフェース設定の変更に使用するものではありません。/etc/network/interfaces.dで正しいインターフェースファイルを確認してください。

同様の規則で_/etc/netowork/interfaces.d/_のファイルに名前を付けます。 Red Hatシステムは、ifcfg-のインターフェースファイルプレフィックス規則を使用します。

したがって、私は先に進み、ガイダンスのない_/etc/network/interfaces/d_でその規則を使用する場合があります。

_/etc/network/interfaces.d/ifcfg-lo
/etc/network/interfaces.d/ifcfg-enp0s3
_

_man interfaces_を必ず読んでください。

幸運を!

2