summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/base/tasks/Debian.yml17
-rw-r--r--roles/base/tasks/intel-nic.yml23
2 files changed, 25 insertions, 15 deletions
diff --git a/roles/base/tasks/Debian.yml b/roles/base/tasks/Debian.yml
index 7551670f..13c3c9f9 100644
--- a/roles/base/tasks/Debian.yml
+++ b/roles/base/tasks/Debian.yml
@@ -111,19 +111,6 @@
when: install is defined and install.kernel_cmdline is defined
notify: update grub
-- name: disable TSO (intel nic stability fix)
+- name: apply stability fix/workaround for machines using intel NIC
when: base_intel_nic_stability_fix
- copy:
- # TODO: copy settings from /usr/lib/systemd/network/99-default.link
- content: |
- [Match]
- MACAddress={{ ansible_default_ipv4.macaddress }}
-
- [Link]
- NamePolicy=keep kernel database onboard slot path
- MACAddressPolicy=persistent
-
- TCPSegmentationOffload=false
- GenericSegmentationOffload=false
- GenericReceiveOffload=false
- dest: /etc/systemd/network/00-disable-offloading.link
+ import_tasks: intel-nic.yml
diff --git a/roles/base/tasks/intel-nic.yml b/roles/base/tasks/intel-nic.yml
new file mode 100644
index 00000000..2b9be474
--- /dev/null
+++ b/roles/base/tasks/intel-nic.yml
@@ -0,0 +1,23 @@
+---
+- name: fetch default link options for network interfaces
+ slurp:
+ src: /usr/lib/systemd/network/99-default.link
+ register: base_systemd_default_link_unit
+
+- name: disable TSO (intel nic stability fix)
+ vars:
+ default_link_options: "{{ (base_systemd_default_link_unit.content | b64decode | from_ini)['Link'] }}"
+ copy:
+ content: |
+ [Match]
+ MACAddress={{ ansible_default_ipv4.macaddress }}
+
+ [Link]
+ {% for name, value in default_link_options.items() | sort(attribute='0') %}
+ {{ name }}={{ value }}
+ {% endfor %}
+
+ TCPSegmentationOffload=false
+ GenericSegmentationOffload=false
+ GenericReceiveOffload=false
+ dest: /etc/systemd/network/00-disable-offloading.link