feat: vollst. Installations-Doku, Ansible-Rollen ausimplementiert, claude_workspace-Rolle

- docs/installation.md: Netinstall + Dualboot Schritt-für-Schritt (LUKS nur am Notebook)
- docs/postinstall-ansible.md: Ablauf + restmanuelle Schritte
- roles/base: APT-Sources mit non-free-firmware + Backports, Locale, Tastatur, Zeitzone, Grundpakete
- roles/desktop_kde: Plasma 6 + SDDM (ohne Recommends, kompakt)
- roles/hardening: SSH key-only, UFW, unattended-upgrades
- roles/dev_tools: Node.js via NodeSource, Python, Perl, Git-Defaults
- roles/workstation_apps: Firefox, Thunderbird, LibreOffice, Codecs, KeePassXC
- roles/claude_workspace (NEU): Claude Code + ccusage, SSH-Key für Gitea, Workspace-Clone (recurse-submodules), ~/.claude/settings.json
- site.yml: alle Rollen mit Tags
This commit is contained in:
2026-05-17 21:46:23 +02:00
parent 0f81a6f6eb
commit 41c9ae303c
12 changed files with 579 additions and 24 deletions

View File

@@ -26,8 +26,9 @@ Begründung siehe `docs/distro-auswahl.md`.
linux-workstations/
├── README.md
├── docs/
── distro-auswahl.md # ADR Distribution
├── install/ # Netinstall-Preseed, Partitionierungsnotizen (folgt)
── distro-auswahl.md # ADR Distribution
├── installation.md # Schritt-für-Schritt Netinstall + Dualboot
│ └── postinstall-ansible.md # Bootstrap & Ablauf
└── ansible/
├── ansible.cfg
├── inventory.yml
@@ -35,20 +36,30 @@ linux-workstations/
├── group_vars/all.yml
├── host_vars/{notebook,pc,werkstatt}.yml
└── roles/
├── base/ # Grundsystem, APT-Quellen, Firmware
├── desktop_kde/ # KDE Plasma + Anwendungen
├── base/ # APT-Quellen, Locale, Firmware, Grundpakete
├── desktop_kde/ # KDE Plasma 6 + SDDM + Apps
├── hardening/ # SSH, UFW, unattended-upgrades
├── dev_tools/ # Editor, Git, Sprachen
── workstation_apps/ # Browser, Office, Mediencodecs
├── dev_tools/ # Git, Node.js (NodeSource), Python, Perl
── workstation_apps/ # Browser, Office, Multimedia
└── claude_workspace/ # Claude Code, ccusage, Workspace-Clone, ~/.claude/settings.json
```
## Workflow
## Workflow (Kurz)
Siehe `docs/installation.md` und `docs/postinstall-ansible.md` für Details.
```bash
# Auf einem Zielrechner nach Erstinstallation:
ssh-copy-id tom@notebook
# Nach Debian-Erstinstallation auf Zielrechner:
ssh-copy-id tom@notebook.egonlebt.lan
ansible -i ansible/inventory.yml notebook -m ping
ansible-playbook -i ansible/inventory.yml ansible/site.yml --limit notebook --check --diff
ansible-playbook -i ansible/inventory.yml ansible/site.yml --limit notebook
# Anschließend manuell pro Maschine (~1 min):
# 1. Public-Key aus ~/.ssh/id_ed25519_gitea.pub auf Gitea hochladen
# 2. ansible-playbook ... --tags claude_workspace (holt Workspace nach)
# 3. Auf dem Zielrechner: `claude` → OAuth-Login
```
## Repo