--- - name: Check state of /etc/network/interfaces stat: path: /etc/network/interfaces register: interfaces_file - debug: msg: A /etc/network/interfaces file already exists, nothing is done. when: interfaces_file.stat.exists - block: - name: "Parse addresses" shell: "grep Address= /etc/systemd/network/50-default.network | cut -d'=' -f2" register: network_address_grep check_mode: no - name: "Parse gateways" shell: "grep Gateway= /etc/systemd/network/50-default.network | cut -d'=' -f2" register: network_gateway_grep check_mode: no - name: Prepare variables set_fact: eni_interface_name: "{{ ansible_default_ipv4.interface }}" eni_ipv4_address: "{{ network_address_grep.stdout_lines | ipv4 | first }}" eni_ipv4_gateway: "{{ network_gateway_grep.stdout_lines | ipv4 | first }}" eni_ipv6_address: "{{ network_address_grep.stdout_lines | ipv6 | first }}" eni_ipv6_gateway: "{{ network_gateway_grep.stdout_lines | ipv6 | first }}" - name: "A new /etc/network/interfaces is generated" template: src: interfaces.j2 dest: /etc/network/interfaces mode: "0644" owner: root group: root - name: "Systemd 'networkd' unit is stopped and disabled" systemd: name: systemd-networkd.service enabled: False state: stopped - name: "Systemd 'networking' unit is restarted (it often results in error)" systemd: name: networking enabled: True state: restarted ignore_errors: True - debug: msg: You should verify your configuration, then reboot the server. when: not interfaces_file.stat.exists