Назад | Перейти на главную страницу

Что делает источник /etc/network/interfaces.d/* в верхней части файла / etc / network / interfaces?

Я заметил, что по умолчанию строка ниже включена в /etc/network/interfaces:

source /etc/network/interfaces.d/*

Какова цель этой линии и что она на самом деле делает?

Из Ubuntu страница руководства по интерфейсам:

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

Обсуждение

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

В файл и file.d Схема довольно распространенная. Если вы запускаете HTTP-сервер Apache, вы, вероятно, видели apache24 / conf / httpd.conf и это боковой удар экстра / каталог, содержащий больше файлов * .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 /, он содержит «экземпляры» конфигураций сетевых интерфейсов (которые могут быть довольно сложными). Таким образом, время, сэкономленное на прокрутке, может сделать интерфейсы.d / путь идти.


Вывод

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

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

Помните, хотя на странице руководства для интерфейсов говорится, что команды настройки интерфейса являются кумулятивными, что позволяет использовать несколько протоколов и несколько IP-адресов (v4 и v6) для каждого интерфейса. В конце концов, ВЫ решаете, что входит в /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.

Удачи!