docs: Add documentation and playbooks for fixing Gitea runner configuration
- Add FIX_RUNNER_CONFIG.md with manual steps to re-register runner - Add fix-gitea-runner-config.yml to diagnose runner issues - Add register-gitea-runner.yml to re-register runner via Ansible - Fixes issue where runner falls back to GitHub on 504 errors
This commit is contained in:
92
deployment/gitea-runner/FIX_RUNNER_CONFIG.md
Normal file
92
deployment/gitea-runner/FIX_RUNNER_CONFIG.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# Gitea Runner Konfiguration korrigieren
|
||||
|
||||
## Problem
|
||||
|
||||
Der Gitea Runner verwendet gemischte URLs (GitHub + Gitea) und fällt bei 504-Fehlern auf GitHub zurück, was zu Timeouts führt.
|
||||
|
||||
## Lösung: Runner neu registrieren
|
||||
|
||||
### Schritt 1: Runner stoppen
|
||||
|
||||
```bash
|
||||
cd deployment/gitea-runner
|
||||
docker compose stop gitea-runner
|
||||
```
|
||||
|
||||
### Schritt 2: Backup erstellen und .runner Datei entfernen
|
||||
|
||||
```bash
|
||||
# Backup erstellen
|
||||
cp data/.runner data/.runner.backup.$(date +%s)
|
||||
|
||||
# .runner Datei entfernen (wird bei neuer Registration neu erstellt)
|
||||
rm -f data/.runner
|
||||
```
|
||||
|
||||
### Schritt 3: Runner starten
|
||||
|
||||
```bash
|
||||
docker compose up -d gitea-runner
|
||||
```
|
||||
|
||||
### Schritt 4: Runner neu registrieren
|
||||
|
||||
```bash
|
||||
# .env Datei laden
|
||||
source .env
|
||||
|
||||
# Runner registrieren (nur mit korrekter Gitea-URL)
|
||||
docker compose exec -T gitea-runner act_runner register \
|
||||
--instance "${GITEA_INSTANCE_URL}" \
|
||||
--token "${GITEA_RUNNER_REGISTRATION_TOKEN}" \
|
||||
--name "${GITEA_RUNNER_NAME}" \
|
||||
--labels "${GITEA_RUNNER_LABELS}"
|
||||
```
|
||||
|
||||
**Wichtig**: Bei der Aufforderung "Runner is already registered, overwrite local config? [y/N]" mit `y` antworten.
|
||||
|
||||
### Schritt 5: Verifikation
|
||||
|
||||
1. **Prüfe .runner Datei:**
|
||||
```bash
|
||||
cat data/.runner | grep -E "(address|instance)"
|
||||
```
|
||||
Sollte nur `https://git.michaelschiemer.de` enthalten, keine GitHub-URLs.
|
||||
|
||||
2. **Prüfe Runner-Logs:**
|
||||
```bash
|
||||
docker compose logs gitea-runner --tail=50 | grep -E "(github|instance|declare)"
|
||||
```
|
||||
Sollte `declare successfully` zeigen und keine GitHub-URLs mehr enthalten.
|
||||
|
||||
3. **Prüfe in Gitea UI:**
|
||||
- Gehe zu: https://git.michaelschiemer.de/admin/actions/runners
|
||||
- Runner sollte als "Online" angezeigt werden
|
||||
|
||||
## Automatisierung
|
||||
|
||||
Falls der Runner automatisch neu registriert werden soll:
|
||||
|
||||
```bash
|
||||
cd deployment/gitea-runner
|
||||
./unregister.sh # Falls vorhanden
|
||||
./register.sh # Neu registrieren
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Runner registriert sich nicht:**
|
||||
- Prüfe, ob Gitea erreichbar ist: `curl https://git.michaelschiemer.de/api/healthz`
|
||||
- Prüfe, ob der Registration Token noch gültig ist
|
||||
- Prüfe Runner-Logs: `docker compose logs gitea-runner`
|
||||
|
||||
**Runner verwendet immer noch GitHub:**
|
||||
- Stelle sicher, dass die `.runner` Datei nur die korrekte Gitea-URL enthält
|
||||
- Prüfe, ob es mehrere Runner-Instanzen gibt: `docker ps | grep runner`
|
||||
- Prüfe Workflow-Definitionen auf GitHub-URLs
|
||||
|
||||
**504 Gateway Timeout:**
|
||||
- Prüfe Gitea-Container: `docker logs gitea`
|
||||
- Prüfe Traefik-Logs: `docker logs traefik`
|
||||
- Stelle sicher, dass Gitea nicht überlastet ist
|
||||
|
||||
Reference in New Issue
Block a user