--- ## TODO: add support for ubuntu netplan - name: create interface config copy: dest: "/etc/network/interfaces.d/{{ vm_host.network.interface }}" content: | auto {{ vm_host.network.interface }} iface {{ vm_host.network.interface }} inet static address {{ vm_host.network.ip }} netmask {{ vm_host.network.mask }} bridge_ports none bridge_stp off bridge_waitport 0 bridge_fd 0 up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf up modprobe br_netfilter up /sbin/sysctl net.bridge.bridge-nf-call-iptables=0 up /sbin/sysctl net.bridge.bridge-nf-call-ip6tables=0 up /sbin/sysctl net.bridge.bridge-nf-call-arptables=0 {% if 'nat' in vm_host.network and vm_host.network.nat %} up /usr/sbin/iptables -t nat -A POSTROUTING -o {{ ansible_default_ipv4.interface }} -s {{ (vm_host.network.ip + '/' + vm_host.network.mask) | ipaddr('network/prefix') }} -j SNAT --to {{ ansible_default_ipv4.address }} down /usr/sbin/iptables -t nat -D POSTROUTING -o {{ ansible_default_ipv4.interface }} -s {{ (vm_host.network.ip + '/' + vm_host.network.mask) | ipaddr('network/prefix') }} -j SNAT --to {{ ansible_default_ipv4.address }} {% endif %} register: vmhost_interface_config ## We don't try to be to clever here: aka don't call ifdown before ifup because ## if there are VMs running they would end up with a broken network - name: bring vm-host interface up when: vmhost_interface_config is changed command: "/usr/sbin/ifup {{ vm_host.network.interface }}"