ADD import roles

This commit is contained in:
2024-09-15 09:42:20 +02:00
parent 4798dde38c
commit e6027e9078
36 changed files with 1129 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
net_interfaces: []
interfaces_manage_ifupdown: true
+12
View File
@@ -0,0 +1,12 @@
---
- name: Reload udev
# TODO! FIXME!
systemd_service:
name: systemd-udev-trigger.service
state: restarted
- name: Reload ifupdown
# TODO! FIXME! This drops some packages. Can this be done better?
systemd_service:
name: networking.service
state: restarted
throttle: 1
+57
View File
@@ -0,0 +1,57 @@
---
- name: Set OS dependent variables
include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_distribution | lower }}_{{ ansible_distribution_version | lower }}.yml"
- "{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version | lower }}.yml"
- "{{ ansible_distribution | lower }}.yml"
- "{{ ansible_os_family | lower }}.yml"
- "{{ ansible_system | lower }}.yml"
paths:
- "{{ role_path }}/vars"
ignore_errors: True
tags:
- always
- name: OS is supported
assert:
that: __os_supported
quiet: True
vars:
__os_supported: "{{ lookup('vars', '{}_os_supported'.format(role_name)) | bool }}"
tags:
- always
- name: Install required packages
package:
name: "{{ item }}"
state: present
with_items: "{{ lookup('vars', '{}_packages'.format(role_name)) | list }}"
tags:
- install
- name: Install persistent if-names
template:
src: 60-persistent-net.rules.j2
dest: "/etc/udev/rules.d/60-persistent-net.rules"
owner: root
group: root
mode: 0644
tags:
- configure
no_log: false
notify: Reload udev
- name: Install ifupdown config
template:
src: ifupdown2.j2
dest: "/etc/network/interfaces.d/ansible"
owner: root
group: root
mode: 0644
tags:
- configure
no_log: false
notify: Reload ifupdown
@@ -0,0 +1,5 @@
{% for iface in net_interfaces %}
{% if iface.name is defined and iface.mac is defined %}
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="{{ iface.mac }}", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="e*", NAME="{{ iface.name }}"
{% endif %}
{% endfor %}
+43
View File
@@ -0,0 +1,43 @@
# {{ ansible_managed }}
{% macro iface_config(iface, type, inet) %}
iface {{ iface.name }} {{ type }} {{ inet.conf | default('manual') }}
{% if iface.vlan_raw_device is defined %}
vlan-raw-device {{ iface.vlan_raw_device }}
{% endif %}
{% if iface.dummy | default(false) %}
pre-up ip link show $IFACE > /dev/null || sudo ip link add $IFACE type dummy
post-down ip link show $IFACE > /dev/null && sudo ip link del $IFACE
{% endif %}
{% for addr in inet.addr %}
up ip addr add {{ addr }} dev $IFACE
pre-down ip addr del {{ addr }} dev $IFACE
{% endfor %}
{% if inet.gateway is defined and inet.gateway %}
up ip r add default via {{ inet.gateway }} dev $IFACE
pre-down ip r del default via {{ inet.gateway }} dev $IFACE
{% endif %}
{% if inet.routes is defined and inet.routes %}
{% for route in inet.routes %}
post-up ip r add {{ route.dst }} via {{ route.via }} dev $IFACE
pre-down ip r del {{ route.dst }} via {{ route.via }} dev $IFACE
{% endfor %}
{% endif %}
{% if inet.custom is defined and inet.custom %}
{{ inet.custom | default('') | indent(4) }}
{% endif %}
{% endmacro %}
{% for iface in net_interfaces %}
{% if interfaces_manage_ifupdown or (iface.ifupdown | default(false)) %}
# {{ iface.name }}
allow-hotplug {{ iface.name }}
{% if iface.inet is defined and iface.inet %}
{{ iface_config(iface, 'inet', iface.inet) }}
{% endif %}
{% if iface.inet6 is defined and iface.inet6 %}
{{ iface_config(iface, 'inet6', iface.inet6) }}
{% endif %}
{% endif %}
{% endfor %}
+5
View File
@@ -0,0 +1,5 @@
interfaces_os_supported: true
interfaces_packages:
- ifupdown
- udev
- vlan
+1
View File
@@ -0,0 +1 @@
interfaces_os_supported: false