--- - name: Get current tailscale serve status ansible.builtin.command: tailscale serve status --json register: serve_status changed_when: false - name: Configure HTTPS services ansible.builtin.command: > tailscale serve --service="{{ item.name }}" --https={{ item.https.port }} {{ item.https.upstream }} loop: "{{ tailscale_services }}" when: item.https is defined register: https_result changed_when: "'already serving' not in https_result.stderr | default('')" failed_when: false - name: Configure TCP services ansible.builtin.command: > tailscale serve --service="{{ item.name }}" --tcp={{ item.tcp.port }} {{ item.tcp.upstream }} loop: "{{ tailscale_services }}" when: item.tcp is defined register: tcp_result changed_when: "'already serving' not in tcp_result.stderr | default('')" failed_when: false