FreeBSD-Upgrade: vom Desaster doch noch zum Erfolg? Es war schrecklich

Ich gebe es zu: Ich habe meinen Server, der online steht und, unter anderem, dieses Blog betreibt, ziemlich und auch lange vernachlässigt. Installiert war ein FreeBSD 13.3 amd64. Die aktuelle Version aus der 13er-Reihe war 13.4. So weit zurück war ich nicht, was aber das größere Problem war, waren die installierten Packages, allen voran PostgreSQL, MySQL und PHP.

Rauchender Server

Ich dachte mir, ich ziehe mein FreeBSD 13.3 direkt auf 14.2, damit zumindest das Grundsystem mal aktuell ist und Dienste wie SSH und ähnliche mit Sicherheitsupdates versorgt werden. Die Packages wollte ich dann irgendwann später nachziehen.

Also begann ich, das Upgrade durchzuführen. Das lief auch gut, bis zum ersten Reboot. Der Server kam nicht mehr hoch. Zumindest dachte ich das. Von Hetzner ließ ich mir eine KVM anschließen und war doch erstaunt: Der Server ist hochgefahren und der erste Schritt des Upgrades war erfolgreich. Jedoch hatte der Server kein Netzwerk mehr. Warum, weiß ich nicht, ich konnte es aber schnell lösen, indem ich von meiner statischen Netzwerkonfiguration auf DHCP umgestellt habe. Also weiter mit dem Upgrade.

Der zweite Reboot ging dann leider in die Hose. Ich habe mir wieder eine KVM von Hetzner anschließen lassen (die erste hatte ich nur für eine Stunde geliehen) und sah, dass ich beim Mergen der Konfigurationen irgendwo zwei Zeilen „wegoptmiert“ hatte und so ein Script, welches zum Booten benötigt wird, fehlschlug. Reboot. Die Maschine kam hoch, schmiss aber ein paar Fehlermeldungen. Problematisch war, dass ich mich mit keinem meiner Accounts anmelden konnte. Irgendwelche anderen Scripte waren auch kaputt.

Anscheinend habe ich es entweder geschafft, ein paar Dinge kaputt zu machen (was mir zuvor noch nie passiert war), oder es gab irgendwelche anderen Probleme. Durch den Boot in den Single-User-Mode konnte ich mich umsehen und habe versucht, die Probleme zu fixen. Vergeblich. Dann hatte ich aber auch keine Lust mehr und die KVM war ja auch nur für drei Stunden geliehen, es musste eine Lösung her. Fakt war, dass im etc-Verzeichnis einiges kaputt war.

Also kopierte ich das etc-Verzeichnis von einer funktionsfähigen Installation von FreeBSD 14.2, schob meine Konfigurationen hinein und kopierte alles per „scp“ auf meinen Server. Zumindest das Grundsystem funktionierte dann wieder und ich brauchte die KVM nicht mehr.

Doch kaum ein Dienst funktionierte. Wir (meine Familie und ich) sind allerdings auf ein paar Dienste angewiesen: Mail, Card– und CalDav, mein Blog, NextCloud, meine Projekte, Git, usw.

Es blieb mir nichts übrig, als alles hochzuziehen. Wieder einmal dachte ich mir, wie sinnvoll es wäre, verschiedene Dienste in verschiedenen Jails zu organisieren und regelmäßiger Updates und Upgrades durchzuführen. Es war gut ein Tag Arbeit, alles wieder ans Rennen zu bekommen, zumal auch Packages wegfielen (wxWidgets 2.8, welches ich für compow.de benötige).

FreeBSD-Grundkurs 033: MySQL für aufbauende Videos installieren

https://youtu.be/o7JoKRrQDkQIch möchte bald ein paar Videos machen, für die wir ein DMBS benötigen. In diesem Video zeige ich, wie man eine einfache (unsichere und für Produktivumgebungen nicht zu verwendende!) MySQL-Datenbank unter FreeBSD (14.2) installieren kann.

FreeBSD-Grundkurs: MySQL für spätere Videos installieren

Die Vorgehensweise

  1. # pkg install mysql90-server
  2. /etc/rc.conf bearbeiten
    • mysql_enable=“YES“
    • mysql_dbdir=“/server/database/mysql“
  3. Verzeichnis erstellen
    • # mkdir -p /server/database/mysql
    • # chown -R mysql:mysql /server/database/mysql
  4. MySQL starten
    • service mysql-server start
  5. Datenbank anlegen
    • mysqladmin create youtube
  6. Benutzer und Berechtigungen erstellen
    • # mysql mysql
    • > CREATE USER ‚youtube’@’%‘ IDENTIFIED BY ‚youtube‘;
    • > GRANT ALL PRIVILEGES ON * . * TO ‚youtube’@’%‘;
    • > FLUSH PRIVILEGES;

Hier geht es zum Video.

FreeBSD-Grundkurs 032: PostgreSQL für aufbauende Videos installieren

Ich möchte bald ein paar Videos machen, für die wir ein DMBS benötigen. In diesem Video zeige ich, wie man eine einfache (unsichere und für Produktivumgebungen nicht zu verwendende!) PostgreSQL-Datenbank (17) unter FreeBSD (14.2) installieren kann.

FreeBSD-Grundkurs: PostgreSQL für spätere Videos installieren

Die Vorgehensweise

  1. pkg install postgresql17-server
  2. /etc/rc.conf bearbeiten
    • postgresql_enable=“YES“
    • postgresql_data=“/server/database/postgres“
    • postgresql_flags=“-w -s -m fast“
    • postgresql_initdb_flags=“–encoding=utf-8 –lc-collate=C“
  3. Datenbankverzeichnis erstellen
    • # mkdir -p /server/database/postgres
    • # chown -R postgres:postgres /server/database/postgres
  4. PostgreSQL initialisieren
    • # service postgresql initdb
  5. Konfigurationen bearbeiten
    • /server/database/postgres/pg_hba.conf
    • /server/database/postgres/postgresql.conf
  6. Datenbankbenutzer erstellen
    • # createuser -s -P youtube
  7. Datenbank erstellen
    • # createdb -O youtube -E unicode

Hier geht es zum Video.

Redmine 5.1 auf FreeBSD

Obwohl es bereits Redmine 6.0.1 zum jetzigen Zeitpunkt gibt, haben wir unter FreeBSD bisher leider „nur“ Version 5.1 zur Verfügung. Allerdings gab es auch eine ganze Weile lang keine lauffähige Redmine-Version für FreeBSD in den Packages und Ports.

Ich habe Version 5.1 testweise in einer VM installiert und es funktionierte problemlos. Letztlich kann man nach dieser Anleitung vorgehen:

Ich freue mich darüber, dass es funktioniert und wir Redmine weiterhin unter FreeBSD nutzen können und hoffe, dass es bald auch eine aktuellere Version gibt.

Bald neue Videos

Viele haben mir geschrieben, dass ich doch weitere Videos bzw. Tutorials machen soll. Das freut mich sehr.

Zur Zeit nimmt mich die neue Arbeitstelle und meine Familie gut ein, ich habe aber schon die nächsten Videos geplant (Themen: wxWidgets, Qt und auch FreeBSD) und freue mich, sie bald machen und veröffentlichen zu können. Es dauert allerdings noch ein paar Tage. Aber: Es wird mit den Tutorials weiter gehen.

Wenn ihr Vorschläge für bestimmte Themen habt, gerne her damit.

AESNI und FreeBSD – „Crypto: accelerated software“ nutzt Hardware

Nur kurz am Rande: meine Verwirrung war groß, als ich bei geli las „Crypto: accelerated software“. Ich dachte, der Hardwareteil der Algorithmik für AESNI würde nicht genutzt. Also suchte ich zuerst im BIOS meines HP MicroServer Gen8 mit XEONProzessor nach AES, wurde aber nicht fündig. Dann durchsuchte ich das Internet.

Durch bsdforen.de fanden wir aber heraus: es gab lediglich eine Namensänderung (:. Es steht jetzt „accelerated software“ drin und bedeutet, dass die Hardware mitgenutzt wird, ansonsten sollte nur „software“ darin stehen.

FreeBSD-Grundkurs 031: Virtualisierung mit bhyve und vm-bhyve

Wer mit FreeBSD Virtualisierung durchführen möchte, hat mehrere Möglichkeiten: Jails, VirtualBox und QEmu. Mit bhyve bietet FreeBSD aber ein eigenes Virtualisierungsprogramm an, welches sehr einfach mit vm-byhve zu benutzen ist. Wie das geht, zeigt dieses Video.

Virtualisierung mit bhyve und vm-bhyve
Virtualisierung mit bhyve und vm-bhyve

In diesem Beispiel zeige ich, wie man vm-byhve und grub2-bhyve installiert, konfiguriert und ein Debian darin installiert.

Virtualisiertes Debian unter bhyve
Virtualisiertes Debian unter bhyve

Hier einige Kommandos:

# SSH-Verbindung, falls nötig, zum Host aufbauen und darauf achten, dass Escape-Sequenzen von SSH ignoriert werden, da diese sonst nicht an die Console von bhyve geschickt werden können (cu)
ssh -e none $servername

# Installation der benötigten Pakete
pkg install vm-bhyve grub2-bhyve

# ZFS-Dataset erstellen
zfs create storage/bhyve

# /etc/rc.conf bearbeiten
sysrc vm_enable="YES"
sysrc vm_dir="zfs:server/bhyve"

# vm-byhve initialisieren
vm init

# Template kopieren und bearbeiten
cp /usr/local/share/examples/vm-bhyve/debian.conf /server/bhyve/.templates/mydebian.conf

# Switch erstellen und Netzwerk-Interface hinzufügen
vm switch create public
vm switch add public bge0

# ISO-Datei für die Installation von Debian herunterladen
vm iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.5.0-amd64-netinst.iso

# Virtuelle Maschine erstellen, Festplattengröße auf 16GB setzen
vm create -t mydebian -s 16g mydebian

# Virtuelle Maschine installieren
vm install -f mydebian debian-11.5.0-amd64-netinst.iso

# Virtuelle Maschinen auflisten (inkl. Status)
vm list

# Vorhandene ISO-Dateien ansehen
vm iso

# Automatischer Start der virtuellen Maschinen
vm_list="vm1 vm2"
vm_delay="5"

Hier geht es zum Video.

FreeBSD-Grundkurs 029: RAID1 mit GMIRROR

Datenredundanz ist mitunter ein sehr wichtiges Theman. Wie man ein (Software-) RAID1 mit FreeBSD und GMIRROR aufbaut, zeigt dieses Video.

RAID1 mit GMIRROR
RAID1 mit GMIRROR

Die Erstellung eines einfach RAID1 funktioniert so:

# Erste Festplatte labeln
gmirror label -b round-robin $name $device1

# gmirror laden (für den Boot 'geom_mirror_load="YES"' in /boot/loader.conf eintragen
gmirror load

# Zweite Festplatte einbinden
gmirror insert $name $device2

# Status ansehen
gmirror status

Alle wichtigen Dinge und auch Beispiele stehen in der Manpage. Bitte immer lesen!

Hier geht es zum Video.