summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2020-07-18 20:15:13 +0200
committerChristian Pointner <equinox@spreadspace.org>2020-07-20 23:06:59 +0200
commit0448ed6524ea9fb5f588a51d4316c4db7e8b8a49 (patch)
treedfc70389ed68007fa15907f09c69921704ee832d
parentgeneric playbooks: cook some variables (diff)
vm/guest/network: simplify template
-rw-r--r--inventory/host_vars/ch-mimas.yml1
-rw-r--r--inventory/host_vars/ele-gwhetzner.yml1
-rw-r--r--inventory/host_vars/emc-master.yml1
-rw-r--r--inventory/host_vars/lw-master.yml1
-rw-r--r--inventory/host_vars/sk-testvm.yml1
-rw-r--r--inventory/host_vars/sk-tomnext-hp.yml1
-rw-r--r--inventory/host_vars/sk-tomnext-nc.yml1
-rw-r--r--inventory/host_vars/sk-torrent.yml1
-rw-r--r--roles/vm/guest/network/templates/interfaces.j238
-rw-r--r--roles/vm/guest/network/templates/interfaces/overlay.j214
-rw-r--r--roles/vm/guest/network/templates/interfaces/simple.j211
-rw-r--r--roles/vm/guest/network/templates/interfaces/simple6.j210
12 files changed, 45 insertions, 36 deletions
diff --git a/inventory/host_vars/ch-mimas.yml b/inventory/host_vars/ch-mimas.yml
index 356d3b8b..b8f49a4a 100644
--- a/inventory/host_vars/ch-mimas.yml
+++ b/inventory/host_vars/ch-mimas.yml
@@ -24,6 +24,7 @@ network:
name: eth0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/ele-gwhetzner.yml b/inventory/host_vars/ele-gwhetzner.yml
index 5a15196a..fe0dc028 100644
--- a/inventory/host_vars/ele-gwhetzner.yml
+++ b/inventory/host_vars/ele-gwhetzner.yml
@@ -24,6 +24,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/emc-master.yml b/inventory/host_vars/emc-master.yml
index b39839a4..f7d3e5c9 100644
--- a/inventory/host_vars/emc-master.yml
+++ b/inventory/host_vars/emc-master.yml
@@ -27,6 +27,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/lw-master.yml b/inventory/host_vars/lw-master.yml
index b39839a4..f7d3e5c9 100644
--- a/inventory/host_vars/lw-master.yml
+++ b/inventory/host_vars/lw-master.yml
@@ -27,6 +27,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/sk-testvm.yml b/inventory/host_vars/sk-testvm.yml
index e16d187d..e0e86352 100644
--- a/inventory/host_vars/sk-testvm.yml
+++ b/inventory/host_vars/sk-testvm.yml
@@ -24,6 +24,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/sk-tomnext-hp.yml b/inventory/host_vars/sk-tomnext-hp.yml
index 53d22fec..5bf39fd8 100644
--- a/inventory/host_vars/sk-tomnext-hp.yml
+++ b/inventory/host_vars/sk-tomnext-hp.yml
@@ -31,6 +31,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/sk-tomnext-nc.yml b/inventory/host_vars/sk-tomnext-nc.yml
index c43235ec..652770d4 100644
--- a/inventory/host_vars/sk-tomnext-nc.yml
+++ b/inventory/host_vars/sk-tomnext-nc.yml
@@ -30,6 +30,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/inventory/host_vars/sk-torrent.yml b/inventory/host_vars/sk-torrent.yml
index f2ece040..a164b7b0 100644
--- a/inventory/host_vars/sk-torrent.yml
+++ b/inventory/host_vars/sk-torrent.yml
@@ -28,6 +28,7 @@ network:
name: primary0
address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}"
gateway: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[vm_host.name]) | ipaddr('address') }}"
+ config: overlay
overlay: "{{ (vm_host.network.bridges.public.overlays.default.prefix | ipaddr(vm_host.network.bridges.public.overlays.default.offsets[inventory_hostname])).split('/')[0] }}"
interfaces:
- *_network_primary_
diff --git a/roles/vm/guest/network/templates/interfaces.j2 b/roles/vm/guest/network/templates/interfaces.j2
index 8c288669..8e2f324c 100644
--- a/roles/vm/guest/network/templates/interfaces.j2
+++ b/roles/vm/guest/network/templates/interfaces.j2
@@ -13,44 +13,10 @@ auto {{ interface.name }}
iface {{ interface.name }} inet static
pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
- address {{ interface.address | ipaddr('address') }}
- netmask {{ interface.address | ipaddr('netmask') }}
-{% if 'overlay' in interface %}
- up /bin/ip addr add dev $IFACE {{ interface.overlay }}/32
-{% for route in interface.static_routes | default([]) %}
- up /bin/ip route add {{ route.destination }} via {{ route.gateway }} src {{ interface.overlay }}
-{% endfor %}
-{% if 'gateway' in interface %}
- up /bin/ip route add default via {{ interface.gateway }} src {{ interface.overlay }}
- down /bin/ip route del default via {{ interface.gateway }} src {{ interface.overlay }}
-{% for route in interface.static_routes | default([]) | reverse %}
- down /bin/ip route del {{ route.destination }} via {{ route.gateway }} src {{ interface.overlay }}
-{% endfor %}
-{% endif %}
- down /bin/ip addr del dev $IFACE {{ interface.overlay }}/32
-{% else %}
-{% if 'gateway' in interface %}
- gateway {{ interface.gateway }}
-{% endif %}
-{% for route in interface.static_routes | default([]) %}
- up /bin/ip route add {{ route.destination }} via {{ route.gateway }}
-{% endfor %}
-{% for route in interface.static_routes | default([]) | reverse %}
- down /bin/ip route del {{ route.destination }} via {{ route.gateway }}
-{% endfor %}
-{% endif %}
+{% include 'interfaces/' + (interface.config | default('simple')) + '.j2' %}
{% if 'address6' in interface %}
iface {{ interface.name }} inet6 static
- address {{ interface.address6 }}
-{% if 'gateway6' in interface %}
- gateway {{ interface.gateway6 }}
-{% endif %}
-{% for route in interface.static_routes6 | default([]) %}
- up /bin/ip -6 route add {{ route.destination }} via {{ route.gateway }}
-{% endfor %}
-{% for route in interface.static_routes6 | default([]) | reverse %}
- down /bin/ip -6 route del {{ route.destination }} via {{ route.gateway }}
-{% endfor %}
+{% include 'interfaces/' + (interface.config | default('simple6')) + '.j2' %}
{% endif %}
{% endfor %}
diff --git a/roles/vm/guest/network/templates/interfaces/overlay.j2 b/roles/vm/guest/network/templates/interfaces/overlay.j2
new file mode 100644
index 00000000..a3262f9c
--- /dev/null
+++ b/roles/vm/guest/network/templates/interfaces/overlay.j2
@@ -0,0 +1,14 @@
+ address {{ interface.address | ipaddr('address') }}
+ netmask {{ interface.address | ipaddr('netmask') }}
+ up /bin/ip addr add dev $IFACE {{ interface.overlay }}/32
+{% for route in interface.static_routes | default([]) %}
+ up /bin/ip route add {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}
+{% endfor %}
+{% if 'gateway' in interface %}
+ up /bin/ip route add default via {{ interface.gateway }} src {{ interface.overlay }}
+ down /bin/ip route del default via {{ interface.gateway }} src {{ interface.overlay }}
+{% for route in interface.static_routes | default([]) | reverse %}
+ down /bin/ip route del {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}
+{% endfor %}
+{% endif %}
+ down /bin/ip addr del dev $IFACE {{ interface.overlay }}/32
diff --git a/roles/vm/guest/network/templates/interfaces/simple.j2 b/roles/vm/guest/network/templates/interfaces/simple.j2
new file mode 100644
index 00000000..c5b7dadc
--- /dev/null
+++ b/roles/vm/guest/network/templates/interfaces/simple.j2
@@ -0,0 +1,11 @@
+ address {{ interface.address | ipaddr('address') }}
+ netmask {{ interface.address | ipaddr('netmask') }}
+{% if 'gateway' in interface %}
+ gateway {{ interface.gateway }}
+{% endif %}
+{% for route in interface.static_routes | default([]) %}
+ up /bin/ip route add {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}
+{% endfor %}
+{% for route in interface.static_routes | default([]) | reverse %}
+ down /bin/ip route del {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}
+{% endfor %}
diff --git a/roles/vm/guest/network/templates/interfaces/simple6.j2 b/roles/vm/guest/network/templates/interfaces/simple6.j2
new file mode 100644
index 00000000..37fda07a
--- /dev/null
+++ b/roles/vm/guest/network/templates/interfaces/simple6.j2
@@ -0,0 +1,10 @@
+ address {{ interface.address6 }}
+{% if 'gateway6' in interface %}
+ gateway {{ interface.gateway6 }}
+{% endif %}
+{% for route in interface.static_routes6 | default([]) %}
+ up /bin/ip -6 route add {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}
+{% endfor %}
+{% for route in interface.static_routes6 | default([]) | reverse %}
+ down /bin/ip -6 route del {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}
+{% endfor %}