Files
ssh-jumphost/ansible/roles/sqlite_init/tasks/main.yml
2026-09-02 20:30:44 +02:00

37 lines
1.7 KiB
YAML

---
# Die Migrationen laufen bereits automatisch beim App-Start (app/db.py:init_db).
# Diese Rolle stellt lediglich sicher, dass Verzeichnis/Rechte VOR dem ersten
# Start korrekt sind und legt optional den initialen Admin-User an.
- name: Datenverzeichnis-Rechte sicherstellen
# Befund B6 (Umsetzungsauftrag_Sonnet5.md Teil A.3): guacd (Rolle "guacd")
# laeuft als eigener Systemuser "guacd", nicht als "{{ jumphost_app_user }}",
# braucht aber Zugriff auf {{ jumphost_data_dir }}/rdp-drives fuer die
# RDP-Laufwerksumleitung. Mit reinem 0700 kommt guacd nicht einmal an
# diesem Verzeichnis VORBEI (Traversal-Rechte fehlen), unabhaengig vom
# systemd-ReadWritePaths-Hardening der guacd-Unit -- jeder Host mit
# file_transfer_enabled scheitert dann mit EACCES. 0710 gibt der Gruppe
# ausschliesslich das Traversal-Bit (kein Lesen/Auflisten von recordings/
# oder der DB-Datei) -- die guacd-Rolle nimmt den guacd-User dafuer in
# diese Gruppe auf. rdp-drives selbst bleibt zusaetzlich mit eigenen,
# engeren Rechten geschuetzt (guacd:guacd 0750, siehe Rolle "guacd").
ansible.builtin.file:
path: "{{ jumphost_data_dir }}"
state: directory
owner: "{{ jumphost_app_user }}"
group: "{{ jumphost_app_group }}"
mode: "0710"
- name: Pruefen, ob bereits eine DB existiert
ansible.builtin.stat:
path: "{{ jumphost_data_dir }}/jumphost.db"
register: _db_stat
- name: Hinweis fuer manuellen Erstadmin-Anlegeschritt ausgeben
ansible.builtin.debug:
msg: >
Keine bestehende Datenbank gefunden. Nach dem ersten Start des Dienstes
(Rolle jumphost_app) einmalig ausfuehren:
{{ jumphost_venv }}/bin/python {{ jumphost_home }}/scripts/create_admin.py --username admin
when: not _db_stat.stat.exists