Ubuntu
有沒有辦法自動將網路介面添加到 systemd-networkd 和/或 netplan?
我目前正在為 Ubuntu 18.04 伺服器建構預配置的磁碟映像。雖然硬體基本相同,但設備之間有一些不同的網路介面(有些是虛擬機而不是裸機)。正因為如此,我不知道事先會出現哪些網路設備或它們將被稱為什麼(有些只有一個稱為 ens33,其他有多個稱為 eno1、eno2 等)
systemd-networkd 不會自動打開介面,它們必須在配置文件中明確指定。
我目前正在通過使用 NetworkManager 而不是 networkd 來繞過它,因為它會自動打開它找到的任何介面,但考慮到 Ubuntu 安裝程序似乎會自動將它找到的任何介面添加到 netplan 的配置中,我認為必須有一種方法來設置服務或在啟動時做同樣事情的東西。有人知道這樣做的方法嗎?
systemd-networkd 可以使用萬用字元一次將配置應用於多個介面
[Match]
。例如:
# cat /etc/systemd/network/99-wildcard.network [Match] Name=en* [Network] DHCP=yes
這將在名稱以開頭的任何介面
en
(即每個有線介面)上啟動 DHCP。
這可以在 netplan 配置中使用匹配規則,對於那些希望將其全部保存在一個地方的人來說。這是一個簡單的解決方案,我在我的預配置圖像中使用了具有不同設備名稱的 USB 介面:
/etc/netplan/01-netcfg.yaml:
network: version: 2 renderer: networkd ethernets: eth: match: name: en* dhcp4: yes
更多詳細資訊:Netplan 參考