What does source /etc/network/interfaces.d/* do at the top of the /etc/network/interfaces file?

I've noticed that by default the below line is included in /etc/network/interfaces:

source /etc/network/interfaces.d/*

What is the purpose of this line and what does it actually do?

4
задан 3 July 2017 в 07:09
2 ответа

Из справочной страницы интерфейсов Ubuntu :

Строки, начинающиеся с «source», используются для включения строф из другие файлы, поэтому конфигурацию можно разделить на несколько файлов. Слово За словом "источник" следует путь к файлу, для которого будет создан источник. Оболочка могут использоваться подстановочные знаки. В настоящее время поддерживает только абсолютный путь имена.

5
ответ дан 3 December 2019 в 03:05

Обсуждение

Команда source является текстовой версией синтаксиса . (источник). Это позволяет включить / импортировать код из одного файла и объединить его в родительский. Однако, из базовой установки Ubuntu 16.04 неясно, почему строка source будет первой. То есть, если вы хотите использовать статический IP для интерфейса enp0s3 ниже, значит ли это, что сначала я должен прокомментировать / стереть строку iface для enp0s3? enter image description here

Файл и файл.d довольно распространены. Если вы запустили HTTP-сервер Apache, вы, вероятно, видели apache24/conf/httpd.conf, и с его стороны выбрасывается каталог extra/, который содержит больше *. conf файлов (обычно httpd-ssl.conf, httpd-vhosts.conf, php.conf, httpd-default.conf и т.д.). В этом случае сценарии оболочки не включены, но принцип в основном тот же.

Почему так?

1. Разделение проблем.

Лучше испортить только одну конфигурацию интерфейса, тогда сделайте что-нибудь, что может повлиять на несколько интерфейсов. Если держать все отдельно, то становится проще писать сценарии оболочки, которые автоматизируют процесс.

Вместо того, чтобы просеивать /etc/network/interfaces с помощью sed, grep и awk для правильного интерфейса, вы можете просто нацелиться на нужный файл в /etc/network/interfaces. d/ с помощью глобуса основного файла.

Сохраняя разрозненность, вы значительно снижаете шансы испортить все.

2. Лучшая организация в долгосрочной перспективе.

Если подумать о том, что содержит interface.d/, то он содержит "экземпляры" конфигураций сетевых интерфейсов (которые могут быть довольно сложными). Таким образом, время, сэкономленное на прокрутке, может сделать interfaces.d/ лучшим вариантом.


Заключение

Планируете ли вы профессиональную настройку? Используйте /etc/network/interfaces.d/ для хранения конфигураций Ваших сетевых интерфейсов (по одному файлу на интерфейс).

enter image description here

Вы любитель использовать Linux в своем подвале (на компьютере с одним интерфейсом) и могли бы меньше заботиться о том, чтобы сделать жизнь легче для кого-то другого? Используйте /etc/network/interfaces и продолжайте жить дальше. Прокомментируйте настройки конфигурации по умолчанию или удалите их вообще.

Помните, хотя в man-странице для интерфейсов сказано, что команды конфигурации интерфейсов являются кумулятивными, позволяющими использовать несколько протоколов и несколько IP-адресов (v4 и v6) на каждом интерфейсе. В конце концов, ВЫ решаете, что будет в /etc/network/interfaces. Например, конфигурация обратного шлейфа по умолчанию? Сбросьте конфигурацию в файл и поместите её в /etc/netowork/interfaces.d/.

Теперь сделайте то же самое для любых других настроек интерфейса установки по умолчанию. Оставьте замечание в /etc/network/interfaces.d/ о том, что этот файл говорит: "Этот файл не должен использоваться для изменения конфигурации интерфейса! Ищите нужный файл интерфейса в файле /etc/network/interfaces.d.

Назовите имена файлов в /etc/netowork/interfaces.d/ с аналогичным условным обозначением. Системы Red Hat используют соглашение с префиксом файла интерфейса ifcfg-

Таким образом, я могу использовать это соглашение в /etc/netowork/interfaces.d/, без указания.

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

Определенно читайте man интерфейсы.

Удачи!

.
1
ответ дан 3 December 2019 в 03:05

Теги

Похожие вопросы