Усі відповіді, які говорять вам про те, що ви прямо редагуєте /etc/netplan/50-cloud-init.yaml
, помилкові, оскільки CloudInit використовується та створить цей файл. У Ubuntu 18.04.2 всередині файлу чітко записано:
$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eno1:
dhcp4: true
version: 2
Таким чином, ви не повинні редагувати цей файл, а той, що знаходиться /etc/cloud/cloud.cfg.d/
внизу, якщо ви все ще хочете використовувати CloudInit.
Інший спосіб - повністю відключити CloudInit спочатку, створивши порожній файл /etc/cloud/cloud-init.disabled
(див. Https://cloudinit.readthedocs.io/en/latest/topics/boot.html ), а потім інші відповіді в порядку. Під Ubuntu 18.04.2 мені довелося використовувати, dpkg-reconfigure cloud-init
щоб він врахував файл /etc/cloud/cloud-init.disabled
. Я думаю, це трохи дивно.
Я пропоную вам перейменувати файл (не правильне ім’я, оскільки 50-cloud-init.yaml
подумаємо, що він все ще використовує CloudInit).
Тоді ви можете назвати файл, /etc/netplan/01-netcfg.yaml
який містить конфігурацію нижче. Зверніть увагу на використання networkd
рендерінгу замість того, NetworkManager
що конфігурація знаходиться на сервері.
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
addresses: [192.168.1.246/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]