--- - name: Create route table if necessary become: true ansible.builtin.blockinfile: path: "{{ systemd_networkd_rttables_conf_file }}" block: "{{ lookup('template', 'rt_tables.j2') }}" marker: "# {mark} ANSIBLE MANAGED BLOCK" loop: "{{ systemd_networkd_rt_tables }}" - name: Create systemd conf folder become: true ansible.builtin.file: path: "{{ systemd_networkd_conf_directory }}" state: directory mode: "0755" owner: root group: root - name: Ensure systemd-networkd configuration files exist become: true vars: # Profiles to iterate over. Using a single looped task is more performant # than multiple tasks. all_files: - type: link files: "{{ systemd_networkd_link | dict2items }}" dest_folder: "{{ systemd_networkd_directory }}" - type: netdev files: "{{ systemd_networkd_netdev | dict2items }}" dest_folder: "{{ systemd_networkd_directory }}" - type: network files: "{{ systemd_networkd_network | dict2items }}" dest_folder: "{{ systemd_networkd_directory }}" - type: conf files: "{{ systemd_networkd_conf | dict2items }}" dest_folder: "{{ systemd_networkd_conf_directory }}" ansible.builtin.template: src: systemd_networkd_config.j2 dest: "{{ item.0.dest_folder }}/{{ item.1.key }}.{{ item.0.type }}" owner: root group: systemd-network mode: "0640" loop: "{{ query('subelements', all_files, 'files') }}" loop_control: label: "type: {{ item.0.type }}, name: {{ item.1.key }}" notify: Restart systemd-networkd register: systemd_networkd_status - name: Set systemd_network_status task ansible.builtin.set_fact: systemd_networkd_status: "{{ systemd_networkd_status }}" - name: Manage nsswitch configuration become: true ansible.builtin.template: src: nsswitch.conf.j2 dest: /etc/nsswitch.conf owner: root group: root mode: "0644" when: systemd_networkd_manage_nsswitch_config register: systemd_networkd_nssswitch_changed - name: Set systemd_networkd_nssswitch_changed task ansible.builtin.set_fact: systemd_networkd_nssswitch_changed: "{{ systemd_networkd_nssswitch_changed }}" # vim: set ts=2 sw=2: