Systemd-Konfiguration für später bereitgestelltes verschlüsseltes Volume mit darauf ausgeführten Diensten

Systemd-Konfiguration für später bereitgestelltes verschlüsseltes Volume mit darauf ausgeführten Diensten

Hallo allerseits,
ich arbeite an einem Banana Pi mit Arch Linux und versuche derzeit Folgendes zu erreichen:

  1. Nachdem jemand die verschlüsselten Schlüsseldateien für meinen externen Speicher gemountet hat, soll systemd diese verwenden und den externen Speicher mounten
  2. systemd startet alle Dienste, die auf dem externen Speicher laufen
  3. Beim Herunterfahren soll alles gestoppt werden, bevor das verschlüsselte Volume ausgehängt wird

Nach einigen Stunden hat es endlich geklappt und ich frage mich, ob es eine kleinere Lösung gibt:

/etc/systemd/system

luks.keys.pfad

[Unit]
Description=luks-keys found in /etc/luks-keys

[Path]
DirectoryNotEmpty=/etc/luks-keys/

[Install]
WantedBy=multi-user.target


luks.keys.service

[Unit]
Description=luks-keys availible
Conflicts=umount.target
Before=umount.target

[Service]
Type=simple
ExecStart=/usr/local/bin/storage
RemainAfterExit=yes


Speicherziel

[Unit]
Description=Storage
Requires=basic.target
After=multi-user.target
Requisite=luks.keys.service
AllowIsolate=yes


./storage.target.wants/minidlna.service

[Unit]
Description=minidlna server
After=network.target
Requisite=luks.keys.service

[Service]
Type=forking
ExecStart=/usr/bin/minidlnad -P /run/minidlna/minidlna.pid
PIDFile=/run/minidlna/minidlna.pid

[Install]
WantedBy=storage.target


/usr/local/bin/storage

#!/bin/bash

systemclt isolate storage.target

cryptsetup --key-file /etc/luks-keys/storage1 luksOpen /dev/sda1 storage1

mount /dev/mapper/storage1 /mnt/storage1




Pi-Boots:

  • systemd startet multi-user.target
  • aktiviert luks.keys.path, das auf Dateien in /etc/luks-keys wartet
  • Dateien gefunden
  • luks.keys.service wird aktiviert und startet storage.target
  • die anderen Dienste starten


Vor dem Aushängen:

  • systemctl versucht luks.keys.service zu stoppen
  • storage.target und die anderen Dienste werden gestoppt, weil sie dann luks.keys.service benötigen
  • luks.keys.service wird schließlich beendet und das Herunterfahren wird mit umount.target fortgesetzt

Wenn dies nicht mit weniger Aufwand zu erreichen ist, präsentiere ich Ihnen gerne die Antwort auf die Frage:

So konfigurieren Sie systemd für ein später bereitgestelltes verschlüsseltes Volume mit darauf ausgeführten Diensten

verwandte Informationen