What is the most authoritative file/process for managing IP addresses on an 18.04 server?
The 18.04 server installation process creates /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg
, which, in turn, seems to generate /etc/netplan/50-cloud-init.yaml
. I can't seem to find exactly how 50-cloud-init.yaml
gets generated from 50-curtin-networking.cfg
though.
What is the recommended way to manage IP addresses on an 18.04 server? Edit 50-curtin-networking.cfg
, and then run some command (?) to update 50-cloud-init.yaml
? Or some other process?
Solution 1:
Make your networking changes to the /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg file as if you were putting them in the yaml file.
Then do the following:
sudo cloud-init clean
sudo cloud-init init
sudo netplan apply
This will process your 50-curtin-networking.cfg file, generate the 50-cloud-init.yaml file and apply the yaml file netplan configuration.
In this way, you can write your networking config in the 50-curtin-networking.cfg file as the comments imply you should do.
A lot of the confusion between setting networking up in the 50-cloud-init.yaml file vs the 01-netcfg.yaml found in the /etc/netplan directory comes down to the installer used for Ubuntu 18.04 LTS.
The live installer uses cloud-init, whereas the alternate installer does not.
So for networking your installer choice changes how you will set up networking.
ubuntu-18.04.1-server-amd64.iso -> 01-netcfg.yaml ubuntu-18.04.1-live-server-amd64.iso -> 50-curtin-networking.cfg
Solution 2:
I assume this is an ordinary server, behind a router or switch that then connects to the internet. I'd rename the 50-cloud-init.yaml
file:
sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml
Then find out the relevant interface name:
ifconfig
Assuming, for an example, that your relevant interface is enp0s25
, edit the file:
sudo nano /etc/netplan/01-netcfg.yaml
Amend the file to read:
network:
version: 2
renderer: networkd
ethernets:
enp0s25:
addresses: [192.168.100.40/22]
gateway4: 192.168.100.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
Of course, substitute your exact details here. Spacing, indentation, etc. are crucial. Proofread carefully. Save (Ctrl+O followed by Enter) and close (Ctrl+X) the text editor.
Next:
sudo netplan apply
sudo ip link set enp0s25 down
sudo ip link set enp0s25 up
Did you get the requested IP address?
ip addr show
Can you ping?
ping -c3 8.8.8.8
ping -c3 www.ubuntu.com
If you get ping returns, you are all set.