From b13af9ddfd01117b350243dd1cc483a35a420611 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 22 Jun 2020 01:12:15 +0200 Subject: all vm hosts/guests use the new network config schema --- chaos-at-home/ch-gnocchi.yml | 22 +++++++- chaos-at-home/vm-install.yml | 3 +- common/vm-install.yml | 6 +- dan/vm-install.yml | 3 +- inventory/group_vars/all/users.yml | 4 ++ inventory/group_vars/vmhost-ch-atlas/main.yml | 25 +++++++++ inventory/group_vars/vmhost-ch-gnocchi/main.yml | 25 +++++++++ inventory/group_vars/vmhost-ch-hroottest/main.yml | 25 +++++++++ inventory/group_vars/vmhost-sk-2019vm/main.yml | 39 +++++++++++++ inventory/group_vars/vmhost-sk-tomnext/main.yml | 27 +++++++++ inventory/host_vars/ch-atlas.yml | 32 ++++------- inventory/host_vars/ch-gnocchi.yml | 68 ++--------------------- inventory/host_vars/ch-gw-lan.yml | 9 +-- inventory/host_vars/ch-hroottest-obsd.yml | 9 +-- inventory/host_vars/ch-hroottest-vm1.yml | 9 +-- inventory/host_vars/ch-hroottest.yml | 31 ++--------- inventory/host_vars/ch-jump.yml | 16 +++--- inventory/host_vars/ch-k8s-m0.yml | 18 +++--- inventory/host_vars/ch-k8s-m1.yml | 18 +++--- inventory/host_vars/ch-k8s-m2.yml | 17 +++--- inventory/host_vars/ch-k8s-w0.yml | 17 +++--- inventory/host_vars/ch-k8s-w1.yml | 17 +++--- inventory/host_vars/ch-keyserver.yml | 21 ++++--- inventory/host_vars/ch-mimas.yml | 18 +++--- inventory/host_vars/ch-router-obsd.yml | 14 ++--- inventory/host_vars/ch-testvm.yml | 15 ++--- inventory/host_vars/ele-gwhetzner.yml | 11 ++-- inventory/host_vars/ele-mur.yml | 22 ++++---- inventory/host_vars/emc-master.yml | 18 +++--- inventory/host_vars/lw-master.yml | 18 +++--- inventory/host_vars/r3-vex2.yml | 21 ++++--- inventory/host_vars/sk-2019vm.yml | 45 ++------------- inventory/host_vars/sk-testvm.yml | 18 +++--- inventory/host_vars/sk-tomnext-hp.yml | 23 ++++---- inventory/host_vars/sk-tomnext-nc.yml | 18 +++--- inventory/host_vars/sk-tomnext.yml | 33 ++--------- inventory/host_vars/sk-torrent.yml | 18 +++--- roles/vm/guest/tasks/main.yml | 2 +- roles/vm/host/tasks/network.yml | 53 +++++++++--------- spreadspace/vm-install.yml | 3 +- 40 files changed, 400 insertions(+), 411 deletions(-) create mode 100644 inventory/group_vars/vmhost-ch-atlas/main.yml create mode 100644 inventory/group_vars/vmhost-ch-gnocchi/main.yml create mode 100644 inventory/group_vars/vmhost-ch-hroottest/main.yml create mode 100644 inventory/group_vars/vmhost-sk-2019vm/main.yml create mode 100644 inventory/group_vars/vmhost-sk-tomnext/main.yml diff --git a/chaos-at-home/ch-gnocchi.yml b/chaos-at-home/ch-gnocchi.yml index c3811c50..fd519bfd 100644 --- a/chaos-at-home/ch-gnocchi.yml +++ b/chaos-at-home/ch-gnocchi.yml @@ -15,4 +15,24 @@ - name: install network interface config copy: dest: /etc/network/interfaces - content: "{{ __interface_configs__ }}" + content: | + # This file describes the network interfaces available on your system + # and how to activate them. For more information, see interfaces(5). + + # The loopback network interface + auto lo + iface lo inet loopback + {% for interface in (__vmhost_bridge_interface_zones__.keys() | sort) %} + + + auto {{ interface }} + iface {{ interface }} inet manual + {% for zone in __vmhost_bridge_interface_zones__[interface] %} + + auto {{ interface }}.{{ network_zones[zone].vlan }} + iface {{ interface }}.{{ network_zones[zone].vlan }} inet manual + {% endfor %} + {% endfor %} + + + source /etc/network/interfaces.d/* diff --git a/chaos-at-home/vm-install.yml b/chaos-at-home/vm-install.yml index cf19d046..b6a69b67 100644 --- a/chaos-at-home/vm-install.yml +++ b/chaos-at-home/vm-install.yml @@ -6,9 +6,10 @@ - set_fact: install_cooked: "{{ install }}" network_cooked: "{{ network }}" + vm_host_cooked: "{{ vm_host }}" - name: cook variables for host - hosts: "{{ hostvars[install_hostname].install.vm.host }}" + hosts: "{{ hostvars[install_hostname].vm_host.name }}" gather_facts: no tasks: - set_fact: diff --git a/common/vm-install.yml b/common/vm-install.yml index 4c33bcc4..b0c3815a 100644 --- a/common/vm-install.yml +++ b/common/vm-install.yml @@ -11,15 +11,15 @@ - name: check if the host system belongs to the kvmhosts group fail: - msg: "the host '{{ install_cooked.vm.host }}' does not belong to the group 'kvmhosts'" + msg: "the host '{{ vm_host_cooked.name }}' does not belong to the group 'kvmhosts'" when: - - "'kvmhosts' not in hostvars[install_cooked.vm.host].group_names" + - "'kvmhosts' not in hostvars[vm_host_cooked.name].group_names" # TODO: add some more sanity checks - name: create temporary host group for vm host add_host: - name: "{{ install_cooked.vm.host }}" + name: "{{ vm_host_cooked.name }}" inventory_dir: "{{ inventory_dir }}" group: _vmhost_ diff --git a/dan/vm-install.yml b/dan/vm-install.yml index cf19d046..b6a69b67 100644 --- a/dan/vm-install.yml +++ b/dan/vm-install.yml @@ -6,9 +6,10 @@ - set_fact: install_cooked: "{{ install }}" network_cooked: "{{ network }}" + vm_host_cooked: "{{ vm_host }}" - name: cook variables for host - hosts: "{{ hostvars[install_hostname].install.vm.host }}" + hosts: "{{ hostvars[install_hostname].vm_host.name }}" gather_facts: no tasks: - set_fact: diff --git a/inventory/group_vars/all/users.yml b/inventory/group_vars/all/users.yml index d4ec2b5f..bc63cb24 100644 --- a/inventory/group_vars/all/users.yml +++ b/inventory/group_vars/all/users.yml @@ -19,6 +19,10 @@ users: ssh: - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd1se9DUnMWXjF4a770J4rl6L9zFmNKc7TzN0hsapUS bene@klapprechner + antares: + ssh: + - "# TODO: add me" + ssh_key_map: diff --git a/inventory/group_vars/vmhost-ch-atlas/main.yml b/inventory/group_vars/vmhost-ch-atlas/main.yml new file mode 100644 index 00000000..4b7af32f --- /dev/null +++ b/inventory/group_vars/vmhost-ch-atlas/main.yml @@ -0,0 +1,25 @@ +--- +vm_host: + name: ch-atlas + network: + dns: + - 89.106.208.7 + - 89.106.208.12 + bridges: + public: + interfaces: + - eth0 + prefix: 89.106.215.16/28 + gateway: 89.106.215.30 + prefix6: 2a02:3e0:407::/64 + gateway6: 2a02:3e0:407::1 + offsets: + ch-keyserver: 3 + ch-testvm: 4 + ele-mur: 5 + r3-vex2: 11 + ch-atlas: 13 + k8stest: {} + funkfeuer: + interfaces: + - eth0.502 diff --git a/inventory/group_vars/vmhost-ch-gnocchi/main.yml b/inventory/group_vars/vmhost-ch-gnocchi/main.yml new file mode 100644 index 00000000..5b36795e --- /dev/null +++ b/inventory/group_vars/vmhost-ch-gnocchi/main.yml @@ -0,0 +1,25 @@ +--- +__vmhost_bridge_interface_zones__: + enp1s0: + - lan + - svc + enp2s0: + - magenta + enp3s0: + - mgmt + - iot + +__vmhost_bridge_interface_zones_yaml__: | + {% for interface in (__vmhost_bridge_interface_zones__.keys() | sort) %} + {% for zone in __vmhost_bridge_interface_zones__[interface] %} + {{ zone }}: + interfaces: + - {{ interface }}.{{ network_zones[zone].vlan }} + {% endfor %} + {% endfor %} + + +vm_host: + name: ch-gnocchi + network: + bridges: "{{ __vmhost_bridge_interface_zones_yaml__ | from_yaml }}" diff --git a/inventory/group_vars/vmhost-ch-hroottest/main.yml b/inventory/group_vars/vmhost-ch-hroottest/main.yml new file mode 100644 index 00000000..84c826b1 --- /dev/null +++ b/inventory/group_vars/vmhost-ch-hroottest/main.yml @@ -0,0 +1,25 @@ +--- +vm_host: + name: ch-hroottest + network: + dns: + - 213.133.100.100 + - 213.133.98.98 + - 213.133.99.99 + bridges: + public: + prefix: 192.168.250.0/24 + offsets: + ch-hroottest-vm1: 100 + ch-hroottest-obsd: 101 + ch-k8s-m2: 200 + ch-k8s-w0: 210 + ch-k8s-w1: 211 + ch-hroottest: 254 + nat: yes + zfs: + default: + pool: storage + name: vm + properties: + compression: lz4 diff --git a/inventory/group_vars/vmhost-sk-2019vm/main.yml b/inventory/group_vars/vmhost-sk-2019vm/main.yml new file mode 100644 index 00000000..93f7948c --- /dev/null +++ b/inventory/group_vars/vmhost-sk-2019vm/main.yml @@ -0,0 +1,39 @@ +--- +vm_host: + name: sk-2019vm + network: + dns: + - 213.133.100.100 + - 213.133.98.98 + - 213.133.99.99 + bridges: + public: + prefix: 192.168.250.0/24 + offsets: + sk-torrent: 136 +# emc-master: 137 + lw-master: 137 + ele-gwhetzner: 138 + ch-k8s-m0: 139 + ch-k8s-m1: 140 + ch-mimas: 142 + sk-testvm: 253 + sk-2019vm: 254 + nat: yes + overlay: + prefix: 178.63.180.136/29 + offsets: + sk-torrent: 0 +# emc-master: 1 + lw-master: 1 + ele-gwhetzner: 2 + ch-k8s-m0: 3 + ch-k8s-m1: 4 + ch-mimas: 6 + sk-testvm: 7 + zfs: + default: + pool: storage + name: vm + properties: + compression: lz4 diff --git a/inventory/group_vars/vmhost-sk-tomnext/main.yml b/inventory/group_vars/vmhost-sk-tomnext/main.yml new file mode 100644 index 00000000..eacc58a2 --- /dev/null +++ b/inventory/group_vars/vmhost-sk-tomnext/main.yml @@ -0,0 +1,27 @@ +--- +vm_host: + name: sk-tomnext + network: + dns: + - 213.133.100.100 + - 213.133.98.98 + - 213.133.99.99 + bridges: + public: + prefix: 192.168.250.0/24 + offsets: + sk-tomnext-nc: 103 + sk-tomnext-hp: 104 + sk-tomnext: 254 + nat: yes + overlay: + prefix: 94.130.206.64/26 + offsets: + sk-tomnext-nc: 39 + sk-tomnext-hp: 40 + zfs: + default: + pool: storage + name: vm + properties: + compression: lz4 diff --git a/inventory/host_vars/ch-atlas.yml b/inventory/host_vars/ch-atlas.yml index ea8ba310..aa2c2e0c 100644 --- a/inventory/host_vars/ch-atlas.yml +++ b/inventory/host_vars/ch-atlas.yml @@ -1,23 +1,11 @@ --- -vm_host: - network: - dns: - - 89.106.208.7 - - 89.106.208.12 - bridges: - public: - interfaces: - - eth0 - prefix: 89.106.215.29/28 - gateway: 89.106.215.30 - prefix6: 2a02:3e0:407::29/64 - gateway6: 2a02:3e0:407::1 - offsets: - ch-keyserver: 3 - ch-testvm: 4 - ele-mur: 5 - r3-vex2: 11 - k8stest: {} - funkfeuer: - interfaces: - - eth0.502 +network: + nameservers: "{{ vm_host.network.dns }}" + domain: "{{ host_domain }}" + interfaces: + - name: br-public + 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.gateway }}" +# address6: "{{ vm_host.network.bridges.public.prefix6 | ipaddr(vm_host.network.bridges.public.offsets6[inventory_hostname]) | ipaddr('address/prefix') }}" + address6: "{{ vm_host.network.bridges.public.prefix6 | ipaddr(41) | ipaddr('address/prefix') }}" + gateway6: "{{ vm_host.network.bridges.public.gateway6 }}" diff --git a/inventory/host_vars/ch-gnocchi.yml b/inventory/host_vars/ch-gnocchi.yml index a6452c12..c52a1cf4 100644 --- a/inventory/host_vars/ch-gnocchi.yml +++ b/inventory/host_vars/ch-gnocchi.yml @@ -9,7 +9,10 @@ install: - console=ttyS0,115200n8 network: - domain: spreadspace.org + domain: "{{ host_domain }}" + interfaces: + - name: br-mgmt + address: "{{ network_zones.mgmt.prefix | ipaddr(network_zones.mgmt.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" apt_repo_components: @@ -23,66 +26,3 @@ installer_lvm: lv: installer size: 10G fs: ext4 - - - -__interface_zones__: - enp1s0: - - lan - - svc - enp2s0: - - magenta - enp3s0: - - name: mgmt - prefix: "{{ network_zones.mgmt.prefix | ipaddr(network_zones.mgmt.offsets[inventory_hostname]) }}" - - iot - - -__interface_zones_yaml__: | - {% for interface in (__interface_zones__.keys() | sort) %} - {% for zone in __interface_zones__[interface] %} - {% if zone is mapping %} - {{ zone.name }}: - interfaces: - - {{ interface }}.{{ network_zones[zone.name].vlan }} - prefix: {{ zone.prefix }} - {% else %} - {{ zone }}: - interfaces: - - {{ interface }}.{{ network_zones[zone].vlan }} - {% endif %} - {% endfor %} - {% endfor %} - - -vm_host: - network: - bridges: "{{ __interface_zones_yaml__ | from_yaml }}" - - -__interface_configs__: | - # This file describes the network interfaces available on your system - # and how to activate them. For more information, see interfaces(5). - - # The loopback network interface - auto lo - iface lo inet loopback - {% for interface in (__interface_zones__.keys() | sort) %} - - - auto {{ interface }} - iface {{ interface }} inet manual - {% for zone in __interface_zones__[interface] %} - - {% if zone is mapping %} - auto {{ interface }}.{{ network_zones[zone.name].vlan }} - iface {{ interface }}.{{ network_zones[zone.name].vlan }} inet manual - {% else %} - auto {{ interface }}.{{ network_zones[zone].vlan }} - iface {{ interface }}.{{ network_zones[zone].vlan }} inet manual - {% endif %} - {% endfor %} - {% endfor %} - - - source /etc/network/interfaces.d/* diff --git a/inventory/host_vars/ch-gw-lan.yml b/inventory/host_vars/ch-gw-lan.yml index 7158e127..35f98291 100644 --- a/inventory/host_vars/ch-gw-lan.yml +++ b/inventory/host_vars/ch-gw-lan.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-gnocchi - install: vm: - host: "{{ _vm_host_ }}" mem: 512 numcpu: 2 autostart: True @@ -12,7 +9,7 @@ install: scsi: sda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 10g interfaces: @@ -28,9 +25,9 @@ network: interfaces: "{{ install.interfaces }}" primary: &_network_primary_ name: svc0 - prefix: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address/prefix) }}" + address: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" gateway: "{{ network_zones.svc.gateway }}" interfaces: - *_network_primary_ - name: lan0 - prefix: "{{ network_zones.lan.prefix | ipaddr(network_zones.lan.offsets[inventory_hostname]) | ipaddr('address/prefix) }}" + address: "{{ network_zones.lan.prefix | ipaddr(network_zones.lan.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" diff --git a/inventory/host_vars/ch-hroottest-obsd.yml b/inventory/host_vars/ch-hroottest-obsd.yml index c1007c8a..f7d5cba7 100644 --- a/inventory/host_vars/ch-hroottest-obsd.yml +++ b/inventory/host_vars/ch-hroottest-obsd.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-hroottest - install: vm: - host: "{{ _vm_host_ }}" mem: 1024 numcpu: 1 autostart: True @@ -19,11 +16,11 @@ install: name: vio0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" primary: &_network_primary_ name: vio0 - address: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" + 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') }}" interfaces: - *_network_primary_ diff --git a/inventory/host_vars/ch-hroottest-vm1.yml b/inventory/host_vars/ch-hroottest-vm1.yml index 9e7688fc..4f9e7e82 100644 --- a/inventory/host_vars/ch-hroottest-vm1.yml +++ b/inventory/host_vars/ch-hroottest-vm1.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-hroottest - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 4 autostart: True @@ -28,13 +25,13 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" primary: &_network_primary_ name: primary0 - address: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" + 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') }}" interfaces: - *_network_primary_ diff --git a/inventory/host_vars/ch-hroottest.yml b/inventory/host_vars/ch-hroottest.yml index 555791ca..f07198b1 100644 --- a/inventory/host_vars/ch-hroottest.yml +++ b/inventory/host_vars/ch-hroottest.yml @@ -7,7 +7,12 @@ install: layout: sata_raid root_lvm_size: 10G -network: {} +network: + nameservers: "{{ vm_host.network.dns }}" + domain: "{{ host_domain }}" + interfaces: + - name: br-public + address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" apt_repo_components: @@ -30,27 +35,3 @@ zfs_sanoid_modules: use_template: production recursive: yes process_children_only: yes - - -vm_host: - network: - dns: - - 213.133.100.100 - - 213.133.98.98 - - 213.133.99.99 - bridges: - public: - prefix: 192.168.250.254/24 - offsets: - ch-hroottest-vm1: 100 - ch-hroottest-obsd: 101 - ch-k8s-m2: 200 - ch-k8s-w0: 210 - ch-k8s-w1: 211 - nat: yes - zfs: - default: - pool: storage - name: vm - properties: - compression: lz4 diff --git a/inventory/host_vars/ch-jump.yml b/inventory/host_vars/ch-jump.yml index 463503cb..954819ba 100644 --- a/inventory/host_vars/ch-jump.yml +++ b/inventory/host_vars/ch-jump.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-gnocchi - install: vm: - host: "{{ _vm_host_ }}" mem: 768 numcpu: 2 autostart: True @@ -12,7 +9,7 @@ install: scsi: sda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 10g interfaces: @@ -26,8 +23,11 @@ network: domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: svc0 - ip: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ network_zones.svc.prefix | ipaddr('netmask') }}" + primary: &_network_primary_ + name: svc0 + address: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" gateway: "{{ network_zones.svc.gateway }}" + interfaces: + - *_network_primary_ + - name: mgmt0 + address: "{{ network_zones.mgmt.prefix | ipaddr(network_zones.mgmt.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" diff --git a/inventory/host_vars/ch-k8s-m0.yml b/inventory/host_vars/ch-k8s-m0.yml index 30239ab3..dc42824f 100644 --- a/inventory/host_vars/ch-k8s-m0.yml +++ b/inventory/host_vars/ch-k8s-m0.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 2 autostart: True @@ -21,16 +18,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/ch-k8s-m1.yml b/inventory/host_vars/ch-k8s-m1.yml index 30239ab3..dc42824f 100644 --- a/inventory/host_vars/ch-k8s-m1.yml +++ b/inventory/host_vars/ch-k8s-m1.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 2 autostart: True @@ -21,16 +18,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/ch-k8s-m2.yml b/inventory/host_vars/ch-k8s-m2.yml index a41c97a8..da9fbe18 100644 --- a/inventory/host_vars/ch-k8s-m2.yml +++ b/inventory/host_vars/ch-k8s-m2.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-hroottest - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 2 autostart: True @@ -21,15 +18,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" + primary: &_network_primary_ + 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') }}" + interfaces: + - *_network_primary_ + docker_lvm: vg: "{{ host_name }}" diff --git a/inventory/host_vars/ch-k8s-w0.yml b/inventory/host_vars/ch-k8s-w0.yml index 5cf6d444..979efc24 100644 --- a/inventory/host_vars/ch-k8s-w0.yml +++ b/inventory/host_vars/ch-k8s-w0.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-hroottest - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 4 autostart: True @@ -21,15 +18,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" + primary: &_network_primary_ + 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') }}" + interfaces: + - *_network_primary_ + docker_lvm: vg: "{{ host_name }}" diff --git a/inventory/host_vars/ch-k8s-w1.yml b/inventory/host_vars/ch-k8s-w1.yml index 5cf6d444..979efc24 100644 --- a/inventory/host_vars/ch-k8s-w1.yml +++ b/inventory/host_vars/ch-k8s-w1.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-hroottest - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 4 autostart: True @@ -21,15 +18,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" + primary: &_network_primary_ + 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') }}" + interfaces: + - *_network_primary_ + docker_lvm: vg: "{{ host_name }}" diff --git a/inventory/host_vars/ch-keyserver.yml b/inventory/host_vars/ch-keyserver.yml index 851116a5..60ab034b 100644 --- a/inventory/host_vars/ch-keyserver.yml +++ b/inventory/host_vars/ch-keyserver.yml @@ -1,11 +1,8 @@ --- apt_repo_provider: ffgraz -_vm_host_: ch-atlas - install: vm: - host: "{{ _vm_host_ }}" mem: 2048 numcpu: 2 autostart: True @@ -14,22 +11,24 @@ install: scsi: sda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 10g interfaces: - bridge: br-public name: primary0 + mac: 52:54:00:f9:e6:7f network: nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway }}" - prefix6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix6 | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway6 }}" + primary: &_network_primary_ + 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.gateway }}" + address6: "{{ vm_host.network.bridges.public.prefix6 | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" + gateway6: "{{ vm_host.network.bridges.public.gateway6 }}" + interfaces: + - *_network_primary_ diff --git a/inventory/host_vars/ch-mimas.yml b/inventory/host_vars/ch-mimas.yml index c0991944..dfec3866 100644 --- a/inventory/host_vars/ch-mimas.yml +++ b/inventory/host_vars/ch-mimas.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 2048 numcpu: 4 autostart: True @@ -19,15 +16,16 @@ install: name: eth0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: eth0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/ch-router-obsd.yml b/inventory/host_vars/ch-router-obsd.yml index 412482de..71137da1 100644 --- a/inventory/host_vars/ch-router-obsd.yml +++ b/inventory/host_vars/ch-router-obsd.yml @@ -1,9 +1,6 @@ --- -_vm_host_: ch-gnocchi - install: vm: - host: "{{ _vm_host_ }}" mem: 512 numcpu: 1 autostart: True @@ -12,7 +9,7 @@ install: virtio: vda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 10g interfaces: @@ -22,8 +19,9 @@ install: network: nameservers: "{{ network_zones.svc.dns }}" domain: "{{ host_domain }}" - primary: - interface: vio0 - ip: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ network_zones.svc.prefix | ipaddr('netmask') }}" + primary: &_network_primary_ + name: vio0 + address: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" gateway: "{{ network_zones.svc.gateway }}" + interfaces: + - *_network_primary_ diff --git a/inventory/host_vars/ch-testvm.yml b/inventory/host_vars/ch-testvm.yml index d1bdb64e..5b5e465e 100644 --- a/inventory/host_vars/ch-testvm.yml +++ b/inventory/host_vars/ch-testvm.yml @@ -1,11 +1,8 @@ --- apt_repo_provider: ffgraz -_vm_host_: ch-atlas - install: vm: - host: "{{ _vm_host_ }}" mem: 1024 numcpu: 1 autostart: False @@ -14,7 +11,7 @@ install: scsi: sda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 5g interfaces: @@ -23,15 +20,15 @@ install: mac: 52:54:00:42:e6:df network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" primary: &_network_primary_ name: primary0 - address: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway }}" - address6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix6 | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway6 }}" + 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.gateway }}" + address6: "{{ vm_host.network.bridges.public.prefix6 | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" + gateway6: "{{ vm_host.network.bridges.public.gateway6 }}" interfaces: - *_network_primary_ diff --git a/inventory/host_vars/ele-gwhetzner.yml b/inventory/host_vars/ele-gwhetzner.yml index bd20ea1e..d349ddcc 100644 --- a/inventory/host_vars/ele-gwhetzner.yml +++ b/inventory/host_vars/ele-gwhetzner.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 1024 numcpu: 1 autostart: False @@ -19,15 +16,15 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" primary: &_network_primary_ name: primary0 - prefix: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" interfaces: - *_network_primary_ diff --git a/inventory/host_vars/ele-mur.yml b/inventory/host_vars/ele-mur.yml index 88e3b0ed..b7d4d38e 100644 --- a/inventory/host_vars/ele-mur.yml +++ b/inventory/host_vars/ele-mur.yml @@ -5,11 +5,8 @@ ssh_users_root: apt_repo_provider: ffgraz -_vm_host_: ch-atlas - install: vm: - host: "{{ _vm_host_ }}" mem: 1024 numcpu: 1 autostart: False @@ -18,7 +15,7 @@ install: scsi: sda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 5g interfaces: @@ -30,14 +27,15 @@ install: mac: 52:54:00:37:fd:8b network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway }}" - prefix6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix6 | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway6 }}" + primary: &_network_primary_ + 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.gateway }}" + address6: "{{ vm_host.network.bridges.public.prefix6 | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" + gateway6: "{{ vm_host.network.bridges.public.gateway6 }}" + interfaces: + - *_network_primary_ diff --git a/inventory/host_vars/emc-master.yml b/inventory/host_vars/emc-master.yml index b2050fde..8005b9d9 100644 --- a/inventory/host_vars/emc-master.yml +++ b/inventory/host_vars/emc-master.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 10240 numcpu: 6 autostart: True @@ -22,16 +19,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/lw-master.yml b/inventory/host_vars/lw-master.yml index b2050fde..8005b9d9 100644 --- a/inventory/host_vars/lw-master.yml +++ b/inventory/host_vars/lw-master.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 10240 numcpu: 6 autostart: True @@ -22,16 +19,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/r3-vex2.yml b/inventory/host_vars/r3-vex2.yml index d43862e9..d5471743 100644 --- a/inventory/host_vars/r3-vex2.yml +++ b/inventory/host_vars/r3-vex2.yml @@ -1,11 +1,8 @@ --- apt_repo_provider: ffgraz -_vm_host_: ch-atlas - install: vm: - host: "{{ _vm_host_ }}" mem: 2048 numcpu: 2 autostart: True @@ -14,22 +11,24 @@ install: scsi: sda: type: lvm - vg: "{{ hostvars[_vm_host_].host_name }}" + vg: "{{ hostvars[vm_host.name].host_name }}" lv: "{{ inventory_hostname }}" size: 15g interfaces: - bridge: br-public name: primary0 + mac: 52:54:00:f9:e6:6f network: nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway }}" - prefix6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix6 | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" - gateway6: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.gateway6 }}" + primary: &_network_primary_ + 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.gateway }}" + address6: "{{ vm_host.network.bridges.public.prefix6 | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" + gateway6: "{{ vm_host.network.bridges.public.gateway6 }}" + interfaces: + - *_network_primary_ diff --git a/inventory/host_vars/sk-2019vm.yml b/inventory/host_vars/sk-2019vm.yml index de162712..0c990b74 100644 --- a/inventory/host_vars/sk-2019vm.yml +++ b/inventory/host_vars/sk-2019vm.yml @@ -7,7 +7,12 @@ install: layout: nvme_raid root_lvm_size: 10G -network: {} +network: + nameservers: "{{ vm_host.network.dns }}" + domain: "{{ host_domain }}" + interfaces: + - name: br-public + address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" base_intel_nic_stability_fix: true ssh_users_root: @@ -46,41 +51,3 @@ zfs_sanoid_modules: storage/vm/sk-testvm: use_template: ignore recursive: yes - - -vm_host: - network: - dns: - - 213.133.100.100 - - 213.133.98.98 - - 213.133.99.99 - bridges: - public: - prefix: 192.168.250.254/24 - offsets: - sk-torrent: 136 -# emc-master: 137 - lw-master: 137 - ele-gwhetzner: 138 - ch-k8s-m0: 139 - ch-k8s-m1: 140 - ch-mimas: 142 - sk-testvm: 253 - nat: yes - overlay: - prefix: 178.63.180.136/29 - offsets: - sk-torrent: 0 -# emc-master: 1 - lw-master: 1 - ele-gwhetzner: 2 - ch-k8s-m0: 3 - ch-k8s-m1: 4 - ch-mimas: 6 - sk-testvm: 7 - zfs: - default: - pool: storage - name: vm - properties: - compression: lz4 diff --git a/inventory/host_vars/sk-testvm.yml b/inventory/host_vars/sk-testvm.yml index 4074b049..8e285363 100644 --- a/inventory/host_vars/sk-testvm.yml +++ b/inventory/host_vars/sk-testvm.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 1024 numcpu: 1 autostart: False @@ -19,16 +16,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/sk-tomnext-hp.yml b/inventory/host_vars/sk-tomnext-hp.yml index 667cb76d..2db59ed3 100644 --- a/inventory/host_vars/sk-tomnext-hp.yml +++ b/inventory/host_vars/sk-tomnext-hp.yml @@ -1,9 +1,11 @@ --- -_vm_host_: sk-tomnext +ssh_users_root: + - equinox + - dan + - antares install: vm: - host: "{{ _vm_host_ }}" mem: 8192 numcpu: 4 autostart: True @@ -13,7 +15,7 @@ install: sda: type: zfs name: root - size: 20g + size: 25g interfaces: - bridge: br-public name: primary0 @@ -21,15 +23,16 @@ install: vm_guest_autologin_on_serial: no network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/sk-tomnext-nc.yml b/inventory/host_vars/sk-tomnext-nc.yml index 48742dd4..6473b6e1 100644 --- a/inventory/host_vars/sk-tomnext-nc.yml +++ b/inventory/host_vars/sk-tomnext-nc.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-tomnext - install: vm: - host: "{{ _vm_host_ }}" mem: 16384 numcpu: 8 autostart: True @@ -25,16 +22,17 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ external_ip: "{{ network.primary.overlay }}" diff --git a/inventory/host_vars/sk-tomnext.yml b/inventory/host_vars/sk-tomnext.yml index 555d2f0a..eca2de34 100644 --- a/inventory/host_vars/sk-tomnext.yml +++ b/inventory/host_vars/sk-tomnext.yml @@ -7,7 +7,12 @@ install: layout: nvme_raid root_lvm_size: 10G -network: {} +network: + nameservers: "{{ vm_host.network.dns }}" + domain: "{{ host_domain }}" + interfaces: + - name: br-public + address: "{{ vm_host.network.bridges.public.prefix | ipaddr(vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address/prefix') }}" base_intel_nic_stability_fix: true ssh_users_root: @@ -46,29 +51,3 @@ zfs_sanoid_modules: storage/vm/sk-tomnext-nc: use_template: ignore recursive: yes - - -vm_host: - network: - dns: - - 213.133.100.100 - - 213.133.98.98 - - 213.133.99.99 - bridges: - public: - prefix: 192.168.250.254/24 - offsets: - sk-tomnext-nc: 103 - sk-tomnext-hp: 104 - nat: yes - overlay: - prefix: 94.130.206.64/26 - offsets: - sk-tomnext-nc: 39 - sk-tomnext-hp: 40 - zfs: - default: - pool: storage - name: vm - properties: - compression: lz4 diff --git a/inventory/host_vars/sk-torrent.yml b/inventory/host_vars/sk-torrent.yml index b5bbb8a2..96ddfc4f 100644 --- a/inventory/host_vars/sk-torrent.yml +++ b/inventory/host_vars/sk-torrent.yml @@ -1,9 +1,6 @@ --- -_vm_host_: sk-2019vm - install: vm: - host: "{{ _vm_host_ }}" mem: 4096 numcpu: 4 autostart: True @@ -23,15 +20,16 @@ install: name: primary0 network: - nameservers: "{{ hostvars[_vm_host_].vm_host.network.dns }}" + nameservers: "{{ vm_host.network.dns }}" domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" - gateway: "{{ hostvars[_vm_host_].vm_host.network.bridges.public.prefix | ipaddr('address') }}" - overlay: "{{ (hostvars[_vm_host_].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[_vm_host_].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + primary: &_network_primary_ + 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') }}" + overlay: "{{ (vm_host.network.bridges.public.overlay.prefix | ipaddr(vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + interfaces: + - *_network_primary_ transmission_rpc_password: "{{ vault_transmission_rpc_password }}" diff --git a/roles/vm/guest/tasks/main.yml b/roles/vm/guest/tasks/main.yml index 72ea3272..e68f04df 100644 --- a/roles/vm/guest/tasks/main.yml +++ b/roles/vm/guest/tasks/main.yml @@ -39,4 +39,4 @@ content: | [Service] ExecStart= - ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --noclear --autologin root --login-pause --host {{ install_cooked.vm.host }} %I $TERM + ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --noclear --autologin root --login-pause --host {{ vm_host_cooked.name }} %I $TERM diff --git a/roles/vm/host/tasks/network.yml b/roles/vm/host/tasks/network.yml index 0688ec42..802ffd8b 100644 --- a/roles/vm/host/tasks/network.yml +++ b/roles/vm/host/tasks/network.yml @@ -9,19 +9,22 @@ copy: dest: "/etc/network/interfaces.d/br-{{ item.key }}" content: | - auto br-{{ item.key }} - {% if 'prefix' in item.value %} - iface br-{{ item.key }} inet static - address {{ item.value.prefix | ipaddr('address') }} - netmask {{ item.value.prefix | ipaddr('netmask') }} - {% if 'gateway' in item.value %} - gateway {{ item.value.gateway }} + {% set bridge_name = 'br-'+item.key %} + {% set bridge = item.value %} + {% set interface = (network.interfaces | selectattr('name', 'eq', bridge_name) | first | default({})) %} + auto {{ bridge_name }} + {% if 'address' in interface %} + iface {{ bridge_name }} inet static + address {{ interface.address | ipaddr('address') }} + netmask {{ interface.address | ipaddr('netmask') }} + {% if 'gateway' in interface %} + gateway {{ interface.gateway }} {% endif %} {% else %} - iface br-{{ item.key }} inet manual + iface {{ bridge_name }} inet manual {% endif %} - {% if 'interfaces' in item.value and (item.value.interfaces | length) > 0 %} - bridge_ports {{ item.value.interfaces | join(' ') }} + {% if 'interfaces' in bridge and (bridge.interfaces | length) > 0 %} + bridge_ports {{ bridge.interfaces | join(' ') }} {% else %} bridge_ports none {% endif %} @@ -34,29 +37,29 @@ 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 'prefix' in item.value %} - {% if 'nat' in item.value and item.value.nat %} + {% if 'address' in interface and 'prefix' in bridge %} + {% if 'nat' in bridge and bridge.nat %} up echo 1 > /proc/sys/net/ipv4/conf/$IFACE/forwarding up echo 1 > /proc/sys/net/ipv4/conf/{{ ansible_default_ipv4.interface }}/forwarding - up /sbin/iptables -t nat -A POSTROUTING -o {{ ansible_default_ipv4.interface }} -s {{ item.value.prefix | ipaddr('network/prefix') }} -j SNAT --to {{ ansible_default_ipv4.address }} + up /sbin/iptables -t nat -A POSTROUTING -o {{ ansible_default_ipv4.interface }} -s {{ bridge.prefix }} -j SNAT --to {{ ansible_default_ipv4.address }} {% endif %} - {% if 'overlay' in item.value %} - {% for dest, offset in (item.value.overlay.offsets | dictsort(by='value')) %} - up /bin/ip route add {{ (item.value.overlay.prefix | ipaddr(offset)).split('/')[0] }}/32 via {{ (item.value.prefix | ipaddr(item.value.offsets[dest])).split('/')[0] }} # {{ dest }} + {% if 'overlay' in bridge %} + {% for dest, offset in (bridge.overlay.offsets | dictsort(by='value')) %} + up /bin/ip route add {{ (bridge.overlay.prefix | ipaddr(offset)).split('/')[0] }}/32 via {{ (bridge.prefix | ipaddr(bridge.offsets[dest])).split('/')[0] }} # {{ dest }} {% endfor %} - up /bin/ip route add unreachable {{ item.value.overlay.prefix }} - down /sbin/ip route del {{ item.value.overlay.prefix }} + up /bin/ip route add unreachable {{ bridge.overlay.prefix }} + down /sbin/ip route del {{ bridge.overlay.prefix }} {% endif %} - {% if 'nat' in item.value and item.value.nat %} - down /sbin/iptables -t nat -D POSTROUTING -o {{ ansible_default_ipv4.interface }} -s {{ item.value.prefix | ipaddr('network/prefix') }} -j SNAT --to {{ ansible_default_ipv4.address }} + {% if 'nat' in bridge and bridge.nat %} + down /sbin/iptables -t nat -D POSTROUTING -o {{ ansible_default_ipv4.interface }} -s {{ bridge.prefix }} -j SNAT --to {{ ansible_default_ipv4.address }} {% endif %} {% endif %} - {% if 'prefix6' in item.value %} + {% if 'address6' in interface %} - iface br-{{ item.key }} inet6 static - address {{ item.value.prefix6 }} - {% if 'gateway6' in item.value %} - gateway {{ item.value.gateway6 }} + iface {{ bridge_name }} inet6 static + address {{ interface.address6 }} + {% if 'gateway6' in interface %} + gateway {{ interface.gateway6 }} {% endif %} {% endif %} register: vmhost_bridge_config diff --git a/spreadspace/vm-install.yml b/spreadspace/vm-install.yml index cf19d046..b6a69b67 100644 --- a/spreadspace/vm-install.yml +++ b/spreadspace/vm-install.yml @@ -6,9 +6,10 @@ - set_fact: install_cooked: "{{ install }}" network_cooked: "{{ network }}" + vm_host_cooked: "{{ vm_host }}" - name: cook variables for host - hosts: "{{ hostvars[install_hostname].install.vm.host }}" + hosts: "{{ hostvars[install_hostname].vm_host.name }}" gather_facts: no tasks: - set_fact: -- cgit v1.2.3