--- - name: Remove existing WireGuard interface community.routeros.command: commands: - /interface wireguard remove [find name="wg-{{ gateway_config.lab_name }}"] ignore_errors: yes - name: Create WireGuard interface community.routeros.command: commands: - /interface wireguard add name="wg-{{ gateway_config.lab_name }}" listen-port={{ gateway_config.wg_listen_port }} private-key="{{ gateway_config.wg_private_key }}" - /ip address add address={{ gateway_config.wg_ip }}/{{ gateway_config.wg_net | ipaddr("prefix") }} interface="wg-{{ gateway_config.lab_name }}" - name: Configure WireGuard peers community.routeros.command: commands: - /interface wireguard peers add interface="wg-{{ gateway_config.lab_name }}" public-key="{{ peer.public_key }}" endpoint-address={{ peer.endpoint }} endpoint-port={{ gateway_config.wg_listen_port }} allowed-address={{ peer.wg_ip }}/32 persistent-keepalive=25s loop: "{{ gateway_config.peers }}" loop_control: loop_var: peer