Entferne ignorierten Ordner aus Git-Tracking

This commit is contained in:
jonnybravo
2026-07-20 17:35:10 +02:00
parent fe25927607
commit dd6c146104
18 changed files with 56 additions and 342 deletions

56
README.md Normal file
View File

@@ -0,0 +1,56 @@
# Ansible Playbook Runner
Mit dieser Anwendung kannst du AnsiblePlaybooks über eine Weboberfläche ausführen.
Die App läuft auf deinem Rechner und ist über `https://man-dan-05` erreichbar.
## Was du brauchst
- **Python 3.11** (oder neuer)
- **Docker** und **Docker Compose** (für den NginxProxy)
- **Ansible** (auf deinem Rechner installiert)
- Die Dateien aus diesem Projekt
## So startest du die Anwendung
1. **Zertifikate bereitlegen**
Die Dateien `certs/man-dan-05.crt` und `certs/man-dan-05.key` müssen im Ordner `certs` liegen.
(Falls du andere Zertifikate hast, passe die Pfade in `nginx.conf` an.)
2. **Playbooks ablegen**
Lege deine `.yml` oder `.yaml`Playbooks in den Ordner `playbooks`.
3. **Starten**
Führe im Projektverzeichnis das Startskript aus:
```bash
./start.sh
```
Das Skript startet zuerst den NginxContainer und danach die ReflexApp.
4. **Öffnen**
Rufe im Browser `https://man-dan-05` auf.
(Beim ersten Mal musst du die Zertifikatswarnung akzeptieren.)
## Was die einzelnen Dateien tun
| Datei | Aufgabe |
|-------|---------|
| `app/app.py` | Die eigentliche Anwendung (Weboberfläche, PlaybookAusführung) |
| `rxconfig.py` | Einstellungen für Reflex (Ports, URLs, CORS) |
| `nginx.conf` | Konfiguration für den NginxReverseProxy (HTTPS, Weiterleitung) |
| `docker-compose.yml` | Startet den NginxContainer |
| `start.sh` | Startet Nginx und die App nacheinander |
| `certs/` | Ordner für die SSLZertifikate |
| `playbooks/` | Ordner für deine AnsiblePlaybooks |
| `outputs/` | Hier werden die Ausgaben der PlaybookLäufe gespeichert |
## Fehlerbehebung
- **Seite lädt nicht** → Prüfe, ob der NginxContainer läuft: `docker ps`
- **Keine Playbooks gefunden** → Liegen `.yml`Dateien im Ordner `playbooks`?
- **Zertifikatswarnung** → Das ist normal bei selbst erstellten Zertifikaten. Akzeptiere die Warnung.
- **WebSocketFehler** → Stelle sicher, dass in `rxconfig.py` die URL `wss://man-dan-05/api/_event` steht und in `nginx.conf` der Pfad `/api/_event` korrekt weitergeleitet wird.
## Anwendung beenden
- **ReflexApp**: `Strg + C` im Terminal, in dem `reflex run` läuft.
- **NginxContainer**: `docker compose down`

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-17T14:33:55Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-17T14:33:55Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T08:54:54Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T08:54:54Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T08:58:37Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T08:58:37Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:02:57Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:02:57Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:03:32Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:03:32Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:04:46Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:04:46Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:10:03Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:10:03Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:12:59Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:12:59Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:13:08Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:13:08Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:13:11Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:13:11Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:13:16Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:13:16Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T09:13:29Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T09:13:29Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T14:18:02Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T14:18:02Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,21 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo man-dan-05! Die Uhrzeit ist 2026-07-20T14:18:12Z"
}
TASK [Uhrzeit ausgeben] ********************************************************
ok: [localhost] => {
"msg": "Die Uhrzeit ist 2026-07-20T14:18:12Z"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,16 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo Welt"
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,16 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo Welt"
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

View File

@@ -1,16 +0,0 @@
PLAY [Hallo Welt ausgeben] *****************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Hallo Welt ausgeben] *****************************************************
ok: [localhost] => {
"msg": "Hallo Welt"
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'