scripts/router-userdata.yaml (35 lines of code) (raw):

#cloud-config hostname: router package_update: true package_upgrade: true write_files: - content: | network: ethernets: ens192: dhcp6: false dhcp4: false addresses: [ __PRIMARY_IPADDRESS__/__PRIMARY_NETMASK__ ] routes: - to: default via: __PRIMARY_GATEWAY__ nameservers: addresses: [ 1.1.1.1 ] ens224: dhcp6: false dhcp4: false addresses: [ __SECONDIP_ADDRESS__/__SECONDARY_NETMASK__ ] path: /etc/netplan/50-cloud-init.yaml append: false chpasswd: list: | root:MSFTavs1! ubuntu:MSFTavs1! expire: false runcmd: # SSH with password - sed 's/PasswordAuthentication no/PasswordAuthentication yes/' -i /etc/ssh/sshd_config - systemctl restart sshd # Network setup - netplan apply # Routing capabilities - echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf - sysctl -p - iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - iptables-save >/etc/systemd/scripts/ip4save