Fünf Distributionen (Debian 12/13, Ubuntu 22.04/24.04/26.04) und drei Profile liegen unter catalog/ und werden beim Start abgeglichen. Die Datei ist maßgeblich für den Inhalt, die Datenbank nur für „aktiv“; verschwundene Einträge werden markiert, nicht gelöscht. Unbekannte Schlüssel sind Fehler, damit Tippfehler nicht still verschwinden; eine kaputte Datei wird mit Pfad gemeldet und übersprungen, statt den Start zu verhindern. Prüfsummen-Parser kennt das Debian-, Ubuntu- und BSD-Format; bei mehreren LXC-Templates gewinnt die höchste Version. Closes #004 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
1.2 KiB
YAML
27 lines
1.2 KiB
YAML
# Grundausstattung für jeden Gast. Platzhalter: {{ var.<name> }} aus den Variablen unten,
|
|
# {{ os.id }}, {{ os.version_id }}, {{ os.codename }} aus der Distribution,
|
|
# {{ guest.name }}, {{ guest.user }} aus dem Deployment. `a ?? b` nimmt b, wenn a leer ist.
|
|
id: base
|
|
name: Basis
|
|
description: Updates, Guest-Agent, Zeitzone, Locale, Tastatur, automatische Sicherheitsupdates, Zeitsync, SSH-Härtung
|
|
variables:
|
|
- { name: zeitzone, label: Zeitzone, default: Europe/Berlin }
|
|
- { name: locale, label: Locale, default: de_DE.UTF-8 }
|
|
- { name: tastatur, label: Tastaturbelegung, default: de }
|
|
- { name: fail2ban, label: fail2ban installieren, type: boolean, default: false, help: Sperrt Adressen nach wiederholten SSH-Fehlversuchen. }
|
|
families:
|
|
debian:
|
|
- update: true
|
|
- guest_agent: true
|
|
- timezone: "{{ var.zeitzone }}"
|
|
- locale: "{{ var.locale }}"
|
|
- keyboard: "{{ var.tastatur }}"
|
|
- packages: [chrony, sudo, curl, ca-certificates]
|
|
- service: { name: chrony, enable: true, start: true }
|
|
- unattended_upgrades: true
|
|
- ssh_harden: { password_auth: false, root_login: false }
|
|
- packages: [fail2ban]
|
|
if: fail2ban
|
|
- service: { name: fail2ban, enable: true, start: true }
|
|
if: fail2ban
|