With the switch to systemd-networkd the veth pairs for flat networking and lbaas aren't created. This creates veth pairs if the server has the appropriate server_networks defined. * Create the veth network files With this simple Match directive networkd will bring the interface up. Change-Id: I0ae4375be128594a861c18aa33a98378859dd9d3
104 lines
2.1 KiB
Django/Jinja
104 lines
2.1 KiB
Django/Jinja
#!/bin/bash
|
|
# this script generates the networking using systemd-networkd
|
|
{% set server_networks = hostvars[item]['server_networks'] %}
|
|
|
|
mkdir -p /etc/systemd/network
|
|
systemctl disable network
|
|
systemctl disable NetworkManager
|
|
systemctl enable systemd-networkd
|
|
systemctl enable systemd-resolved
|
|
systemctl start systemd-resolved
|
|
rm -f /etc/resolv.conf
|
|
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
|
{% if hostvars[item]['server_hostname'] == 'loadbalancer1' %}
|
|
# set nonlocal binding for haproxy
|
|
echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf
|
|
sysctl -p
|
|
{% endif %}
|
|
|
|
{% for key, value in server_networks.items()|sort(attribute='1.iface') %}
|
|
# generate physical network devices
|
|
cat <<EOF >/etc/systemd/network/{{ value.iface }}.network
|
|
[Match]
|
|
Name={{ value.iface }}
|
|
|
|
[Network]
|
|
Bridge=br-{{ key }}
|
|
EOF
|
|
|
|
# generate bridge net devices
|
|
cat <<EOF >/etc/systemd/network/br-{{ key }}.netdev
|
|
[NetDev]
|
|
Name=br-{{ key }}
|
|
Kind=bridge
|
|
EOF
|
|
|
|
# generate network files
|
|
cat <<EOF >/etc/systemd/network/br-{{ key }}.network
|
|
[Match]
|
|
Name=br-{{ key }}
|
|
|
|
[Network]
|
|
{% if value.inet_type == 'dhcp' %}
|
|
DHCP=yes
|
|
|
|
[DHCP]
|
|
UseDNS=yes
|
|
UseNTP=yes
|
|
{% elif value.address is defined %}
|
|
Address={{ value.address }}
|
|
{% endif %}
|
|
EOF
|
|
|
|
# generate files for flat networking
|
|
{% if value.iface is defined and key == "flat" %}
|
|
cat <<EOF >/etc/systemd/network/br-veth-{{ key }}.netdev
|
|
[NetDev]
|
|
Name=v{{ value.iface }}
|
|
Kind=veth
|
|
|
|
[Peer]
|
|
Name=br-veth-{{ key }}
|
|
EOF
|
|
|
|
cat <<EOF >/etc/systemd/network/br-veth-{{ key }}.network
|
|
[Match]
|
|
Name=br-veth-{{ key }}
|
|
|
|
[Network]
|
|
Bridge=br-{{ key }}
|
|
ConfigureWithoutCarrier=yes
|
|
EOF
|
|
|
|
cat <<EOF >/etc/systemd/network/v{{ value.iface }}.network
|
|
[Match]
|
|
Name=v{{ value.iface }}
|
|
EOF
|
|
{% endif %}
|
|
|
|
# generate files for lbaas
|
|
{% if value.iface is defined and key == "lbaas" %}
|
|
cat <<EOF >/etc/systemd/network/br-veth-{{ key }}.netdev
|
|
[NetDev]
|
|
Name=v{{ value.iface }}
|
|
Kind=veth
|
|
|
|
[Peer]
|
|
Name=br-veth-{{ key }}
|
|
EOF
|
|
|
|
cat <<EOF >/etc/systemd/network/br-veth-{{ key }}.network
|
|
[Match]
|
|
Name=br-veth-{{ key }}
|
|
|
|
[Network]
|
|
Bridge=br-{{ key }}
|
|
ConfigureWithoutCarrier=yes
|
|
EOF
|
|
cat <<EOF >/etc/systemd/network/v{{ value.iface }}.network
|
|
[Match]
|
|
Name=v{{ value.iface }}
|
|
EOF
|
|
{% endif %}
|
|
{% endfor %}
|