- Update Ansible playbooks and roles for application deployment - Add new Gitea/Traefik troubleshooting playbooks - Update Docker Compose configurations (base, local, staging, production) - Enhance EncryptedEnvLoader with improved error handling - Add deployment scripts (autossh setup, migration, secret testing) - Update CI/CD workflows and documentation - Add Semaphore stack configuration
71 lines
2.4 KiB
YAML
71 lines
2.4 KiB
YAML
---
|
|
- 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 }}"
|