Sonntag, 6. August 2023

nextcloud zu Hause - sicher mit nextcloudpi

Wie der Name sagt, wurde nextcloudpi ursprünglich für den Raspberry Pi entwickelt und ist eine Art Komplettlösung. Primär gibt es dafür ein Systemimage, ich habe das auf einem Pi3 ausprobiert und kann sagen: das wird schnell langsam. Vielleicht geht es auf einem Pi4, aber darunter (läuft ab Pi2) kann ich es nicht empfehlen.

Ich habe es auf einem Intel Celeron N5105 System mit 8 GB RAM installiert, da finde ich es ganz brauchbar. Man kann später sehr viel bei nextcloud dazu installieren - ich denke, da kann man jede beliebige Hardware ausreizen.

Mein Ziel ist eine eigene Cloud zu Hause, alle Bewohner können die Daten ihrer Smartphones, vorhandene Bildarchive usw. darauf speichern und von unterwegs will man natürlich mal ein paar Bilder zeigen oder auf Dokumente zugreifen.

Ich möchte die Setup Schritte hier notieren, da es viele Möglichkeiten zum "abbiegen" gibt.

Freitag, 4. August 2023

Remote Cloud - die Cloud direkt in Linux mounten

Wenn man die Suche bemüht findet man primär jede Menge Tools, meist speziell ein Tool für eine Cloud. Die Technologien sind bei jedem Anbieter ein wenig anders. Die Technologie ändert sich von Zeit zu Zeit, so sind viele Tools nach kurzer Zeit veraltet.

Es gibt aber ein gut gepflegtes Tool, das erledigt diesen Job für so ziemlich alle Cloud Anbieter: rclone 

Dienstag, 2. Mai 2023

HowTo - live backup und restore einer virtuellen Maschine mit libvirt

Einleitung

Das Management User Interface libvirt steuert QEMU welches auf KVM aufsetzt. Die Basis für dieses Backup/Restore bildet die Verkettung von Diskimages.

Da hier und in der restlichen Dokumentation nichts über ein restore zu finden ist und das backup bekanntlich erst nach einem restore erfolgreich sein kann - habe ich ein kurzes HowTo geschrieben. Das ist noch nicht perfekt! 

Bitte am Ende den Abschnitt ToDo beachten!

Wem das zu sehr ins Detail geht, es gibt auf GitHub auch ein installierbares Tool welches die API von libvirt nutzt.

Donnerstag, 26. Januar 2023

Raspberry konservieren

Es gibt verschiedene Überlegungen warum man einen Raspberry mit "Schreibschutz" ausstatten sollte. Meine war: Hat man Geräte im Einsatz die eventuell rau behandelt werden und eigentlich keine Daten produzieren, kann man doch auch jeden Schreibvorgang verhindern. 

Geht das überhaupt und ist das auch für den Administrator praxistauglich ? Das Raspberry OS hat sogar (fast) alles vorbereitet: Stichwort Overlay Filesystem.

Mittwoch, 18. Januar 2023

ssh Zugang für fhem über Script einrichten

Ich mache einige Dinge aus dem Docker Container heraus über ssh auf dem Docker Host, anstatt den Container zu sehr zu verbiegen. (Artikel andocken).

Dafür habe ich mal ein Script gebastelt und ein paar Aufruf Varianten ausgearbeitet. Damit sollte mit wenigen Handgriffen die Einrichtung des ssh public key Zuganges innerhalb FHEM auf einen anderen Host gelingen. 

Das Script hat nur wenige Zeilen es werden beliebig Hostnamen oder IP Adressen als Argumente übergeben. 

  1. Die eventuell vorhandenen Einträge in known_host werden gelöscht und neu eintragen.
  2. Es wird überprüft ob bereits ein ssh Key vorhanden ist, falls nicht wird ein Neuer erzeugt.
  3. Der public key wird zur möglichen Weiterverarbeitung (in authorized_keys) ausgegeben.

Ich zeige den Aufruf 

  • als komplettes Here Doc, als lokales Script oder Script vom GitHub, 
  • als anderer User,
  • oder direkt im Docker Container.

Das eigentliche Ziel: der public key von User fhem auf dem HostA wird dem User userB auf HostB gegeben damit User fhem sich als userB ohne Passworteingabe an HostB anmelden / Befehle ausführen kann.

Man beachte in allen Beispielen die unterschiedliche Verwendung der Shell Optionen -c und -s!

Mittwoch, 11. Januar 2023

SD Card Image anpassen

Man hat ein Image einer großen SD Card gemacht und will dieses Image auf eine kleinere SD Card speichern. Wie kann man das Image an den eigentlichen Platzbedarf anpassen ohne den Inhalt der SD Card zu verlieren? Ich habe sogar ein paar Einzeiler im Netz gefunden, aber die haben alle nicht funktioniert. Ich habe mit Hilfe dieses Artikels ein paar Schritte entwickelt die hoffentlich leicht nachzuvollziehen und eindeutig sind.

Zunächst ganz vereinfacht ein paar Grundlagen

  • Eine gesteckte SD Card stellt ein Blockdevice dar, ein Image davon kann auch als Blockdevice eingebunden werden. Ein Blockdevice enthält Partitionen, eine Partion enthält ein Filesystem.
  • Gespeichert wird in Sektoren (Sectorsize 512 Byte), die Sektoren werden in Blöcken zu 4096 Byte (bzw. 4K Blocksize) organisiert. 
  • Die typischen Zahlenangaben für das Filesystem sind Blöcke, für die Partition sind es Sektoren. Eine 16GB SD Card hat 3.906.250 Blöcke und 31.250.000 Sektoren.
  • Die Angabe GB basiert auf 1000³, die Angabe GiB basiert auf  1024³ (2^30). 16GB -> 14,9 GiB

Die gesamte Arbeit erfordert im wesentlichen root Kontext (sudo su). Ich erarbeite hier Einzeiler und kein komplettes Script, ich habe Ausgabezeilen eingefügt damit man die Abläufe verfolgen kann. 

Ich empfehle jede Zeile einzeln auszuführen! Tipp: Meine Codeblöcke sind editierbar: eigene Pfad- und Dateinamen reinschreiben und direkt copy & paste.

Donnerstag, 29. Dezember 2022

OpenWrt - sysupgrade ohne Bedenken

Es gibt ein (für mich) neues Feature bei OpenWrt: Attended SysUpgrade

Das vereinfacht den Vorgang ein neues Image einzuspielen erheblich, man hat quasi keine Nacharbeit mehr! 

Nachdem ich mich mal wieder mit hotplug und opkg-extras beschäftigt habe, entdeckte ich in dem Wiki Artikel ganz zum Schluss den entsprechenden Hinweis. 

Damit braucht man jetzt nur noch zwei Dinge beim sysupgrade: 

  1. eine angepasstes Backup Archiv Configuration
    • Pfade bzw. Dateien eintragen und mit "Open list" prüfen ob alle wichtigen Dateien im Archiv enthalten sind.
    • Obwohl das sysUpgrade genau diese Dateien von sich aus behält (Keep Settings...), sollte man immer ein Archiv separat erzeugen und herunterladen!
  2. Das installierte luci-app-attendedsysupgrade Package.

Im Menü System einfach Attended Sysupgrade auswählen, der Rest ist selbsterklärend. Im Reiter Configuration kann man den Advanced Mode einschalten. Damit kann man die Pakete verifizieren und eventuell noch etwas ändern. Man kann auch ein angepasstes Image der bereits installierten Version herunterladen. 

Hinweis: Am Ende bleibt irgendwie die UI hängen, man kann diese schließen und sich nach dem Neustart neu verbinden.

Ich habe z.B. um folgende Dateien/Pfade ergänzt:

/etc/wireguard/
/etc/adblock/ad*list
/root/speedtest
/root/.config

Hatte man hotplug-extras installiert, kann man die installierten Scripts wieder entfernen (auch oben in der Liste):

rm /etc/hotplug.d/iface/90-online
rm /etc/hotplug.d/online/10-sleep
rm /etc/hotplug.d/online/50-opkg-restore

Fehlt noch was?