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:
@@ -126,9 +126,9 @@
|
|||||||
|
|
||||||
- name: Backup existing .runner file
|
- name: Backup existing .runner file
|
||||||
copy:
|
copy:
|
||||||
src: "{{ gitea_runner_path }}/data/.runner"
|
src: "{{ gitea_runner_path }}/data/.runner"
|
||||||
dest: "{{ gitea_runner_path }}/data/.runner.backup.{{ ansible_date_time.epoch }}"
|
dest: "{{ gitea_runner_path }}/data/.runner.backup.{{ ansible_date_time.epoch }}"
|
||||||
remote_src: yes
|
remote_src: yes
|
||||||
when:
|
when:
|
||||||
- runner_file_exists.stat.exists
|
- runner_file_exists.stat.exists
|
||||||
- runner_needs_reregistration | bool
|
- runner_needs_reregistration | bool
|
||||||
|
|||||||
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