Wszystkie odpowiedzi /etc/netplan/50-cloud-init.yaml
wymagające bezpośredniej edycji są niepoprawne, ponieważ CloudInit jest używany i wygeneruje ten plik. W Ubuntu 18.04.2 jest wyraźnie zapisane w pliku:
$ 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
Więc nie powinieneś edytować tego pliku, ale ten poniżej, /etc/cloud/cloud.cfg.d/
jeśli nadal chcesz korzystać z CloudInit.
Innym sposobem jest całkowite wyłączenie CloudInit najpierw poprzez utworzenie pustego pliku /etc/cloud/cloud-init.disabled
(patrz https://cloudinit.readthedocs.io/en/latest/topics/boot.html ), a następnie inne odpowiedzi są prawidłowe. W Ubuntu 18.04.2 musiałem użyć, dpkg-reconfigure cloud-init
aby uwzględnić ten plik /etc/cloud/cloud-init.disabled
. Myślę, że to trochę dziwne.
Sugeruję, aby zmienić nazwę pliku ( 50-cloud-init.yaml
niepoprawna nazwa, ponieważ uważamy, że nadal używa CloudInit).
Następnie możesz otrzymać nazwę pliku, /etc/netplan/01-netcfg.yaml
która zawiera konfigurację poniżej. Zwróć uwagę na użycie mechanizmu networkd
renderującego zamiast, NetworkManager
ponieważ konfiguracja jest na serwerze.
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]