summaryrefslogtreecommitdiff
path: root/roles/vm/guest/network/tasks
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-12-27 20:46:21 +0100
committerChristian Pointner <equinox@spreadspace.org>2021-12-27 20:46:21 +0100
commit67db0fd753e18532aab373851e85e791008b5384 (patch)
treea4d011f54ba9f36cd4b4190c894896188b2c01ca /roles/vm/guest/network/tasks
parentalso fix sample config for grafana datasources (diff)
implement vm/guest/network role for OpenBSD
Diffstat (limited to 'roles/vm/guest/network/tasks')
-rw-r--r--roles/vm/guest/network/tasks/Debian.yml40
-rw-r--r--roles/vm/guest/network/tasks/OpenBSD.yml15
-rw-r--r--roles/vm/guest/network/tasks/main.yml50
3 files changed, 66 insertions, 39 deletions
diff --git a/roles/vm/guest/network/tasks/Debian.yml b/roles/vm/guest/network/tasks/Debian.yml
new file mode 100644
index 00000000..27a7682a
--- /dev/null
+++ b/roles/vm/guest/network/tasks/Debian.yml
@@ -0,0 +1,40 @@
+---
+- name: configure systemd link units
+ when: network_cooked.systemd_link is defined
+ block:
+ - name: remove legacy systemd.link units
+ loop:
+ - 50-virtio-kernel-names.link
+ - 99-default.link
+ file:
+ name: "/etc/systemd/network/{{ item }}"
+ state: absent
+
+ - name: install systemd network link units
+ loop: "{{ network_cooked.systemd_link.interfaces }}"
+ loop_control:
+ label: "{{ item.name }}"
+ index_var: interface_index
+ template:
+ src: systemd.link.j2
+ dest: "/etc/systemd/network/{{ '%02d' | format(interface_index + 11) }}-{{ item.name }}.link"
+ notify: rebuild initramfs
+
+
+- name: install basic interface config
+ template:
+ src: interfaces.j2
+ dest: /etc/network/interfaces
+ mode: 0644
+
+- name: remove resolvconf package
+ apt:
+ name: resolvconf
+ state: absent
+ force_apt_get: yes
+ purge: yes
+
+- name: generate resolv.conf
+ template:
+ src: resolv.conf.j2
+ dest: /etc/resolv.conf
diff --git a/roles/vm/guest/network/tasks/OpenBSD.yml b/roles/vm/guest/network/tasks/OpenBSD.yml
new file mode 100644
index 00000000..4357ea4e
--- /dev/null
+++ b/roles/vm/guest/network/tasks/OpenBSD.yml
@@ -0,0 +1,15 @@
+---
+- name: generate network interface configs
+ loop: "{{ network_cooked.interfaces }}"
+ loop_control:
+ loop_var: interface
+ label: "{{ interface.name }}"
+ copy:
+ dest: "/etc/hostname.{{ interface.name }}"
+ content: |
+ inet {{ interface.address | ipaddr('address') }} {{ interface.address | ipaddr('netmask') }}
+ {% for route in interface.static_routes | default([]) %}
+ !route add -net {{ route.destination }} {{ route.gateway }}
+ {% endfor %}
+
+## TODO: configure default gateway - for now we rely on installer to do the right thing
diff --git a/roles/vm/guest/network/tasks/main.yml b/roles/vm/guest/network/tasks/main.yml
index 27a7682a..410a07cb 100644
--- a/roles/vm/guest/network/tasks/main.yml
+++ b/roles/vm/guest/network/tasks/main.yml
@@ -1,40 +1,12 @@
---
-- name: configure systemd link units
- when: network_cooked.systemd_link is defined
- block:
- - name: remove legacy systemd.link units
- loop:
- - 50-virtio-kernel-names.link
- - 99-default.link
- file:
- name: "/etc/systemd/network/{{ item }}"
- state: absent
-
- - name: install systemd network link units
- loop: "{{ network_cooked.systemd_link.interfaces }}"
- loop_control:
- label: "{{ item.name }}"
- index_var: interface_index
- template:
- src: systemd.link.j2
- dest: "/etc/systemd/network/{{ '%02d' | format(interface_index + 11) }}-{{ item.name }}.link"
- notify: rebuild initramfs
-
-
-- name: install basic interface config
- template:
- src: interfaces.j2
- dest: /etc/network/interfaces
- mode: 0644
-
-- name: remove resolvconf package
- apt:
- name: resolvconf
- state: absent
- force_apt_get: yes
- purge: yes
-
-- name: generate resolv.conf
- template:
- src: resolv.conf.j2
- dest: /etc/resolv.conf
+- name: load os/distrubtion/version specific tasks
+ vars:
+ params:
+ files:
+ - "{{ ansible_distribution_release }}.yml"
+ - "{{ ansible_distribution }}.yml"
+ - "{{ ansible_os_family }}.yml"
+ loop: "{{ q('first_found', params) }}"
+ loop_control:
+ loop_var: tasks_file
+ include_tasks: "{{ tasks_file }}"