From 67db0fd753e18532aab373851e85e791008b5384 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 27 Dec 2021 20:46:21 +0100 Subject: implement vm/guest/network role for OpenBSD --- roles/vm/guest/network/tasks/Debian.yml | 40 +++++++++++++++++++++++++ roles/vm/guest/network/tasks/OpenBSD.yml | 15 ++++++++++ roles/vm/guest/network/tasks/main.yml | 50 +++++++------------------------- 3 files changed, 66 insertions(+), 39 deletions(-) create mode 100644 roles/vm/guest/network/tasks/Debian.yml create mode 100644 roles/vm/guest/network/tasks/OpenBSD.yml (limited to 'roles/vm/guest/network') 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 }}" -- cgit v1.2.3