- 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
69 lines
2.4 KiB
Markdown
69 lines
2.4 KiB
Markdown
# linux-workstations
|
|
|
|
Linux-Dualboot-Rollout auf Toms drei Arbeitsrechnern, parallel zu Windows.
|
|
|
|
## Zielgeräte
|
|
|
|
| Host | Rolle | Hardware | Status |
|
|
|------|-------|----------|--------|
|
|
| notebook | mobile Arbeit | TBD | geplant |
|
|
| pc | Hauptrechner | TBD | geplant |
|
|
| werkstatt | Werkstatt-PC | TBD | geplant |
|
|
|
|
> Hardware-Inventar wird pro Host in `ansible/host_vars/<host>.yml` gepflegt.
|
|
|
|
## Entscheidungen
|
|
|
|
- **Distribution:** Debian 13 "Trixie" Stable mit KDE Plasma 6 (Netinstall, `firmware-netinst`)
|
|
- **Konfigurationsmanagement:** Ansible-Playbook (in `ansible/`)
|
|
- **Bootloader/Dualboot:** GRUB neben bestehendem Windows-Bootloader; `os-prober` aktiviert
|
|
|
|
Begründung siehe `docs/distro-auswahl.md`.
|
|
|
|
## Struktur
|
|
|
|
```
|
|
linux-workstations/
|
|
├── README.md
|
|
├── docs/
|
|
│ ├── distro-auswahl.md # ADR Distribution
|
|
│ ├── installation.md # Schritt-für-Schritt Netinstall + Dualboot
|
|
│ └── postinstall-ansible.md # Bootstrap & Ablauf
|
|
└── ansible/
|
|
├── ansible.cfg
|
|
├── inventory.yml
|
|
├── site.yml # Top-Level Playbook
|
|
├── group_vars/all.yml
|
|
├── host_vars/{notebook,pc,werkstatt}.yml
|
|
└── roles/
|
|
├── base/ # APT-Quellen, Locale, Firmware, Grundpakete
|
|
├── desktop_kde/ # KDE Plasma 6 + SDDM + Apps
|
|
├── hardening/ # SSH, UFW, unattended-upgrades
|
|
├── dev_tools/ # Git, Node.js (NodeSource), Python, Perl
|
|
├── workstation_apps/ # Browser, Office, Multimedia
|
|
└── claude_workspace/ # Claude Code, ccusage, Workspace-Clone, ~/.claude/settings.json
|
|
```
|
|
|
|
## Workflow (Kurz)
|
|
|
|
Siehe `docs/installation.md` und `docs/postinstall-ansible.md` für Details.
|
|
|
|
```bash
|
|
# 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
|
|
|
|
- Gitea: http://docker.egonlebt.lan:3000/egon/linux-workstations
|
|
- Eingebunden als Submodule in `claude-workspace`
|