Service Configuration Management
CI-Typen und Regeln
Auszug aus dem CI-Design vom 2026-10-25. Ein CI ist die kleinste Einheit, die einzeln installiert, konfiguriert, gesichert, gemessen und einer AD-Gruppe zugeordnet wird. Herkunft: K Katalog, A aufbau.yml, E beim Lauf erzeugt, M gemessen.
19 Kopffelder
| # | Feld | Bezeichnung | Format | Herkunft |
|---|---|---|---|---|
| 1 | ci_id | CI-ID | <besitzer>/<typ>/<name>, Instanz <konfiguration>:… | E |
| 2 | typ | CI-Typ | 14 Werte | K |
| 3 | name | Name | a-z0-9- | K |
| 4 | bezeichnung | Bezeichnung | Text | K |
| 5 | besitzer | Anwendung | Verweis auf dienst.yml | K |
| 6 | profil | Server-Profil | infra · projekte | erbt |
| 7 | maschine | Maschine | Verweis auf Maschinen-CI | E |
| 8 | status | Status | Lebenszyklus | K, dann E |
| 9 | verantwortung | Verantwortung | AD-Gruppe | erbt, A |
| 10 | tier | Tier | 0 · 1 · 2 | erbt |
| 11 | quelle | Quelle | art + ort | K |
| 12 | version | Version | gepinnt, Image mit Digest | K |
| 13 | pfade | Pfade | konfig, daten | K |
| 14 | ressourcen | Ressourcen (Soll) | cpu, ram, platte | K, A |
| 15 | sicherung | Sicherung | keine · datei · dump | K |
| 16 | beziehungen | Beziehungen | Liste {art, ziel} | K |
| 17 | messwerte | Messwerte | Kennzahlen | K, Werte M |
| 18 | pruefungen | Prüfungen | Liste | K |
| 19 | lauf | Letzter Lauf | Lauf-ID | E |
Dazu im CI-zentrischen Modell (Vorlage und Instanz, Konfigurationen; nicht in der dienst.yml):
| Feld | Bezeichnung | Format | Herkunft |
|---|---|---|---|
| ebene | Ebene | vorlage · instanz (Bibliothek = Filter ebene=vorlage) | K, E |
| abgeleitet_von | Vorlage | Instanz → Vorlage-CI | E |
| konfiguration | Konfiguration | Instanz → Konfiguration | E |
| herkunft | Herkunft | M gepflegt · E vom Modell erzeugt | E |
14 CI-Typen
im Katalog: 281 CIs
| Typ | Was es ist | Zusatzfelder | Messwerte | Sicherung | Prüfung | Anzahl |
|---|---|---|---|---|---|---|
| anwendung | eine Anwendung als Ganzes (eine dienst.yml); gepflegt in „Anwendungen“, als CI abgeleitet | it_service, kategorie, titel, etappe | – | keine (Sicherung je CI) | – | 0 |
| maschine | ein Server | anbieter, ip, ipv6, tunnel_ip, betriebssystem, standort, kerne, ram_gb, platte_gb | CPU, RAM, Platte, Last, Uptime | keine (Neuaufbau aus Git) | Ping, SSH-Banner | 2 |
| host-software | Paket oder Programm direkt auf dem Host | art, paket, systemd_unit, hold, pruefsumme | läuft ja/nein, Version gegen Soll | datei (Konfiguration) | systemd-Unit aktiv | 12 |
| container | ein Swarm-Dienst aus einem Image | image, digest, replikate, netze, ports_intern, healthcheck, docker_secrets | CPU, RAM, Neustarts, Digest gegen Soll | keine (Daten im Datenpfad) | Healthcheck des Images | 38 |
| datenbank | eine logische Datenbank in einem Container | engine, db_name, liegt_in, dump_methode | Größe, Alter des letzten Dumps | dump | Dump < 26 h alt, Restore-Test | 6 |
| datenpfad | ein Verzeichnis mit Daten unter /srv | pfad, klasse, groesse_soll, aufbewahrung | Belegung, Wachstum pro Tag | datei | Pfad vorhanden, Rechte | 30 |
| netz | ein Netz, an das CIs angeschlossen sind | art, cidr, verschluesselt | – | keine | Netz vorhanden | 11 |
| endpunkt | eine erreichbare Adresse | fqdn, port, protokoll, sichtbarkeit, anmeldung, erlaubte_gruppen, freigegeben | Erreichbarkeit, Antwortzeit | keine | Blackbox-Probe | 30 |
| zertifikat | ein TLS-Zertifikat | namen, aussteller, verfahren | Restlaufzeit in Tagen | keine (wird neu ausgestellt) | Restlaufzeit ≥ 14 Tage | 3 |
| identitaet | ein Konto, eine Gruppe oder ein SSO-Client | art, verzeichnis, konten, rechte | letzte Anmeldung, aktiv ja/nein | keine (AD und Keycloak sichern sich selbst) | Konto existiert, Gruppe korrekt | 27 |
| secret | ein geheimer Wert, nur als Verweis | eintrag, sammlung, laenge, ablage, rotation_tage | Alter in Tagen | Vaultwarden | Eintrag in Vaultwarden vorhanden | 52 |
| dns-eintrag | ein DNS-Eintrag (A, AAAA, PTR, …); für Endpunkte vom Modell erzeugt, sonst gepflegt | zone, dns_name, art, wert, ttl | öffentlich auflösbar = Soll | keine (Zone entsteht aus Git) | dig gegen Soll | 32 |
| route | ein Router im Reverse Proxy (Traefik), vom Modell aus einem HTTP(S)-Endpunkt erzeugt | host, pfad, entrypoint, ziel_port, middlewares, tls | Anfragen, Fehlerquote | keine (Labels aus Git) | Router in Traefik aktiv | 20 |
| ufw-regel | eine Freigabe in der Host-Firewall, vom Modell aus einem öffentlichen Endpunkt erzeugt | port, protokoll, richtung, aktion, quelle_netz | Port offen = Soll | keine (Regeln aus Git) | ufw status gegen Soll | 18 |
Beziehungen
| Beziehung | von → nach |
|---|---|
| laeuft_auf | Host-Software, Container → Maschine |
| liegt_in | Datenbank → Container |
| nutzt | Container, Host-Software, Identität → Datenpfad, Secret |
| angeschlossen_an | Container oder Host-Software → Netz |
| veroeffentlicht | Endpunkt → Container, Host-Software |
| geschuetzt_durch | Endpunkt → Zertifikat |
| meldet_an | Container, Identität → Identität, Container |
| zeigt_auf | DNS-Eintrag, Route, UFW-Regel → Endpunkt oder Maschine |
| eingetragen_in | DNS-Eintrag, Route, UFW-Regel → Dienst, der sie ausliefert (DNS-Server, Traefik, UFW) |
| haengt_ab_von | Anwendung → Anwendung (Anwendungs-CI, aus abhaengig_von) |
| braucht | Anwendung → Anwendung (abhaengig_von) |
Lebenszyklus und Prüfregeln
| Status | Gesetzt von | Nächster Status |
|---|---|---|
| geplant | PR im Baukasten | gebaut |
| gebaut | Lauf (P2) | aktiv |
| aktiv | Lauf (P2/P3) | ausser-betrieb |
| ausser-betrieb | PR im Baukasten | entfernt oder geplant |
| entfernt | Lauf | – |
| Regel | Prüfung | Stufe |
|---|---|---|
| CI-KOPF | alle Pflichtfelder gesetzt, Formate stimmen | Fehler |
| CI-BEZUG | jedes Ziel existiert; Container und Host-Software laufen auf genau einer Maschine | Fehler |
| CI-BESITZ | gemeinsame CIs gehören der anlegenden Anwendung | Fehler |
| CI-SICHERUNG | Datenpfad und Datenbank haben Sicherung oder Begründung | Fehler |
| CI-ENDPUNKT | öffentlicher Endpunkt hat Zertifikat und Anmeldung, außer freigegeben | Fehler |
| CI-SECRET | jedes Secret wird genutzt, kein Wert im Repo | Fehler |
| CI-VERSION | Image mit Digest, kein latest | Fehler |
| CI-RESSOURCEN | Summe der Soll-Ressourcen ≤ Maschine | Warnung |
| CI-EINTRAG | DNS-Eintrag, Route und UFW-Regel stehen in genau einem Dienst; Route und Regel zeigen auf genau einen Endpunkt | Fehler |