What is it
Netplan is a YAML network configuration abstraction for various backends (NetworkManager, networkd).
It is an utility for easily configuring network on a system. It can be used by writing a simple YAML description of the required network interfaces with what they should be configured to do; and it will generate the required configuration for a chosen renderer tool.
Netplan reads network configuration from /etc/nplan/*.yaml which are written by administrators, installers, cloud image instantiations, or other OS deployments. During early boot it then generates backend specific configuration files in /run to hand off control of devices to a particular networking daemon.
The default renderer, if otherwise unspecified, is systemd-networkd.
How do I use it?
Netplan uses a set of subcommands to drive its behavior:
netplan generate: Use /etc/netplan to generate the required configuration for the renderers.
netplan apply: Apply all configuration for the renderers, restarting them as necessary.
netplan ifupdown-migrate: Attempt to generate an equivalent configuration to what is specified in /etc/network/interfaces.
Obviously, without configuration, netplan will not do anything. The most useful configuration snippet (to bring up things via dhcp) is as follows:
network: version: 2 renderer: NetworkManager
This will make NetworkManager manage all devices (and by default, any ethernet device will come up with DHCP once carrier is detected).
Using networkd as a renderer does not let devices automatically come up using DHCP; each interface needs to be specified in a file in /etc/netplan for its configuration to be written and for it to be used in networkd.
How can I contribute?
Netplan is developed using git on Launchpad, and uses merge proposals.
You can find the source code here: https://code.launchpad.net/netplan
The main Launchpad project page is here: https://launchpad.net/netplan
We try to stick to an agreed-upon design document; see Netplan Design