Есть ли способ автоматического добавления сетевых интерфейсов в systemd-networkd и / или netplan?
В настоящее время я создаю предварительно настроенные образы дисков для серверов Ubuntu 18.04. Хотя аппаратное обеспечение в основном одинаковое, между устройствами имеется несколько различных сетевых интерфейсов (и некоторые из них являются виртуальными машинами, а не "голыми железными"). Из-за этого я не знаю точно, какие сетевые устройства будут присутствовать заранее или как они будут называться (у некоторых есть одно, называемое ens33, у других есть кратные, называемые eno1, eno2 и т. Д.)
systemd-network d не вызывает автоматически интерфейсы, они должны быть явно указаны в файлах конфигурации.
В настоящее время я обхожу это с помощью NetworkManager вместо network d, поскольку он автоматически вызывает все интерфейсы, которые находит, но, учитывая, что установщик Ubuntu, кажется, автоматически добавляет любые интерфейсы, которые он находит, в конфигурацию netplan, я полагаю, что должен быть способ настроить служба или что-то, что делает то же самое при запуске. Кто-нибудь знает способ сделать это?
1 ответ
systemd-networkd может применить конфигурацию к нескольким интерфейсам одновременно, используя подстановочный знак [Match]
,
Например:
# cat /etc/systemd/network/99-wildcard.network
[Match]
Name=en*
[Network]
DHCP=yes
Это вызовет DHCP на любом интерфейсе, имя которого начинается с en
(который является любым проводным интерфейсом).
Это возможно, используя правило соответствия в конфигурации netplan, для тех, кто предпочитает хранить все это в одном месте. Вот простое решение, которое я использовал в своих предварительно настроенных образах для интерфейсов USB с разными именами устройств:
/etc/netplan/01-netcfg.yaml:
network:
version: 2
renderer: networkd
ethernets:
eth:
match:
name: en*
dhcp4: yes
Более подробная информация здесь: ссылка на Netplan