Усі відповіді, які говорять вам про те, що ви прямо редагуєте /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]