--- - name: "Include OS-specific variables" ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" - name: "Ensure wireguard is installed" become: true ansible.builtin.package: name: "{{ wireguard_pkgs }}" state: "present" - name: "Deploy WireGuard configurations" become: true ansible.builtin.copy: content: "{{ wireguard_connections[item] }}" dest: "/etc/wireguard/{{ item }}.conf" owner: "root" group: "root" mode: "0600" backup: true loop: "{{ wireguard_connections.keys() }}" when: wireguard_connections | length > 0 tags: - molecule-idempotence-notest - name: "Configure autostart connection" become: true when: wireguard_autostart_connection != "" block: - name: "Ensure all wireguard connections are stopped" ansible.builtin.systemd_service: name: "wg-quick@{{ item }}" enabled: false state: "stopped" loop: "{{ wireguard_connections.keys() | list }}" - name: "Ensure all wireguard interfaces are down" ansible.builtin.command: cmd: "wg-quick down {{ item }}" loop: "{{ wireguard_connections.keys() | list }}" changed_when: false failed_when: false - name: "Enable and start wg-quick service for connection {{ wireguard_autostart_connection }}" ansible.builtin.systemd_service: name: "wg-quick@{{ wireguard_autostart_connection }}" enabled: true state: "started"