71 lines
2.5 KiB
YAML

---
- name: Display os_systemd_networkd role
ansible.builtin.debug:
var: role_config
verbosity: 1
vars:
role_config:
systemd_networkd_conf_directory: "{{ systemd_networkd_conf_directory }}"
systemd_networkd_manage_nsswitch_config: "{{ systemd_networkd_manage_nsswitch_config }}"
systemd_networkd_enable_resolved: "{{ systemd_networkd_enable_resolved }}"
all_confs:
systemd_networkd_rt_tables: "{{ systemd_networkd_rt_tables }}"
systemd_networkd_link: "{{ systemd_networkd_link }}"
systemd_networkd_netdev: "{{ systemd_networkd_netdev }}"
systemd_networkd_network: "{{ systemd_networkd_network }}"
systemd_networkd_conf: "{{ systemd_networkd_conf }}"
tasks:
- "Use systemd-resolved service: {{ systemd_networkd_enable_resolved }}"
- "Use systemd-stub-resolver (/etc/resolv.conf): {{ systemd_networkd_symlink_resolv_conf }}"
- "Manage /etc/nsswitch.conf: {{ systemd_networkd_manage_nsswitch_config }}"
- Ensure required packages are installed
- "Ensure rtables in {{ systemd_networkd_rttables_conf_file }}: {{ systemd_networkd_rt_tables | length }} routes"
- Cleanup /etc/systemd/network path
- "Ensure '{{ systemd_networkd_conf_directory }}' is correctly setup"
- Ensure systemd-networkd service is updated and running
tags:
- config_show
- name: Import cleanup tasks
ansible.builtin.import_tasks: cleanup.yml
when: systemd_networkd_cleanup | bool
- name: Ensure systemd-resolved package status
become: true
ansible.builtin.package:
name: systemd-resolved
state: "{{ systemd_networkd_enable_resolved | ternary('present', 'absent') }}"
#when: systemd_networkd_enable_resolved
- name: Import config tasks
ansible.builtin.import_tasks: config.yml
- name: Enable systemd-networkd
become: true
ansible.builtin.systemd:
name: systemd-networkd
enabled: true
when: (systemd_networkd_network | length > 0) or (systemd_networkd_link | length > 0) or (systemd_networkd_netdev | length > 0)
- name: Start and enable systemd-resolved
become: true
ansible.builtin.systemd:
name: systemd-resolved
enabled: true
state: started
when: systemd_networkd_enable_resolved
ignore_errors: "{{ ansible_check_mode }}"
- name: Replace /etc/resolv.conf with a symlink to the systemd-resolved stub
become: true
ansible.builtin.file:
path: /etc/resolv.conf
src: /run/systemd/resolve/stub-resolv.conf
state: link
force: true
when: systemd_networkd_symlink_resolv_conf
# vim: set ts=2 sw=2: