--- - name: Check Traefik Gitea Configuration hosts: production gather_facts: yes become: no vars: traefik_stack_path: "{{ stacks_base_path }}/traefik" tasks: - name: Check Traefik logs for Gitea errors shell: | cd {{ traefik_stack_path }} echo "=== Traefik Logs - Gitea errors (Last 50 lines) ===" docker compose logs --tail=100 traefik 2>&1 | grep -i "gitea\|502\|bad gateway" | tail -50 || echo "No Gitea-related errors found" args: executable: /bin/bash register: traefik_errors ignore_errors: yes failed_when: false - name: Display Traefik errors debug: msg: "{{ traefik_errors.stdout_lines }}" - name: Check dynamic Gitea configuration on server shell: | cat {{ traefik_stack_path }}/dynamic/gitea.yml 2>&1 || echo "File not found" register: gitea_dynamic_config ignore_errors: yes failed_when: false - name: Display dynamic Gitea config debug: msg: "{{ gitea_dynamic_config.stdout_lines }}" - name: Test if Traefik can resolve gitea hostname shell: | docker exec traefik getent hosts gitea 2>&1 || echo "Cannot resolve gitea hostname" register: traefik_resolve ignore_errors: yes failed_when: false - name: Display Traefik resolve result debug: msg: "{{ traefik_resolve.stdout_lines }}" - name: Get Gitea container IP shell: | docker inspect gitea --format '{{ '{{' }}range.NetworkSettings.Networks{{ '}}' }}{{ '{{' }}if eq .NetworkID (printf "%s" (docker network inspect traefik-public --format "{{ '{{' }}.Id{{ '}}' }}")){{ '}}' }}{{ '{{' }}.IPAddress{{ '}}' }}{{ '{{' }}end{{ '}}' }}{{ '{{' }}end{{ '}}' }}' 2>&1 || echo "Could not get IP" register: gitea_ip ignore_errors: yes failed_when: false - name: Display Gitea IP debug: msg: "Gitea IP in traefik-public network: {{ gitea_ip.stdout }}" - name: Test connectivity from Traefik to Gitea IP shell: | GITEA_IP="{{ gitea_ip.stdout | default('172.21.0.3') }}" docker exec traefik wget -qO- --timeout=5 "http://$GITEA_IP:3000/api/healthz" 2>&1 || echo "Cannot connect to Gitea at $GITEA_IP:3000" register: traefik_connect ignore_errors: yes failed_when: false when: gitea_ip.stdout is defined and gitea_ip.stdout != "" - name: Display connectivity result debug: msg: "{{ traefik_connect.stdout_lines }}"