Markus Michalski FAQ

Server Tools: Installation

Server Tools installieren, aktualisieren und deinstallieren: Installer-Schritte, angelegte Pfade, MySQL-Zugang über .my.cnf, Betrieb ohne Installation und was die Deinstallation stehen lässt.

English Version

Zurück zur Übersicht


Installation

Installieren

git clone https://github.com/markus-michalski/server-tools-v2.git
cd server-tools-v2
git checkout "$(git tag -l 'v*' | sort -V | tail -1)"
sudo ./bin/server-tools install

Checke das neueste Release-Tag aus. Der Branch main kann ungetestete Änderungen enthalten.

sudo make install ruft denselben Installer auf (./bin/server-tools install).

Der Installer macht der Reihe nach:

Schritt Ergebnis
Config-Verzeichnis /etc/server-tools/ (755), falls es fehlt
Config-Datei Kopie von conf/server-tools.conf.example nach /etc/server-tools/config (600), nur wenn die Datei noch nicht existiert
Credential-Verzeichnis /root/db-credentials/ mit umask 077, falls es fehlt
Backup-Verzeichnis /root/server-tools-backups/ (700), falls es fehlt
Audit-Log-Verzeichnis /var/log/ bzw. das Verzeichnis von ST_AUDIT_LOG, falls es fehlt
Libraries Alle lib/*.sh und lib/webserver/*.sh nach /usr/local/lib/server-tools/ (644)
Versions-Marker Datei .version im Library-Verzeichnis, Inhalt von git describe --tags --always des Klons
Binary /usr/local/bin/server-tools (700), der Library-Pfad darin wird auf das Installationsverzeichnis umgeschrieben
Shortcuts Symlinks st und servertools neben der Binary

Die Pfade ändern sich, wenn deine bestehende Config-Datei andere Werte für ST_CREDENTIAL_DIR, ST_BACKUP_DIR, ST_AUDIT_LOG, ST_INSTALL_DIR oder ST_BIN_DIR setzt, denn der Installer lädt die Config vor der Installation.

Das Verzeichnis für Datenbank-Dumps (ST_DB_BACKUP_DIR) legt der Installer nicht an. db backup erstellt es bei Bedarf mit Rechten 700.

Weil die Binary Rechte 700 hat, startest du sie immer mit sudo.

Der Installer bricht ab, wenn du ihn aus der bereits installierten Kopie startest. Starte ihn aus dem Git-Klon.

Lässt sich die Version nicht per git describe ermitteln, schreibt der Installer dev in den Marker und gibt eine Warnung aus.

Ohne Installation starten

sudo ./bin/server-tools

Die Binary nutzt dann die Libraries aus ../lib relativ zu sich selbst. Ist keine Library dort, sucht sie unter /usr/local/lib/server-tools, sonst bricht sie mit ERROR: Cannot find server-tools libraries ab.

Aktualisieren

cd server-tools-v2
git fetch --tags
git checkout "$(git tag -l 'v*' | sort -V | tail -1)"
sudo ./bin/server-tools install

Ein erneuter Lauf überschreibt Libraries, Binary und Shortcuts. Eine vorhandene Config-Datei bleibt unverändert, auch wenn die Vorlage neue Variablen enthält. Neue Optionen trägst du selbst nach, siehe Konfiguration.

Deinstallieren

sudo server-tools uninstall

oder sudo make uninstall.

Wird entfernt Bleibt erhalten
/usr/local/bin/server-tools /etc/server-tools/config
Die Symlinks st und servertools, nur wenn sie auf die Binary zeigen Credential-Dateien in /root/db-credentials/
/usr/local/lib/server-tools/, nur wenn dort core.sh und install.sh liegen Backups in /root/server-tools-backups/ und /root/db-backups/
Das Audit-Log /var/log/server-tools-audit.log
Alles, was das Tool verwaltet hat: Datenbanken, VHosts, Zertifikate, SSH-User, Cron-Dateien, Logrotate-Dateien

Deinstallieren entfernt nur das Tool. Was ssl renew angelegt hat (/usr/local/bin/ssl-renewal.sh und /etc/cron.d/ssl-renewal), bleibt ebenfalls bestehen.

MySQL/MariaDB-Zugang

Das Datenbank-Management nutzt die Options-Datei aus ST_MYSQL_CONFIG_FILE (Standard /root/.my.cnf) als --defaults-file:

[client]
user=root
password=dein_root_passwort
sudo chmod 600 /root/.my.cnf

Sind die Rechte der Datei nicht 600 oder 400, gibt das Tool eine Warnung aus, arbeitet aber weiter. Fehlt die Datei, bricht jede Datenbank-Operation mit MySQL config not found ab.

Erster Test

sudo server-tools --version
sudo server-tools --config
sudo server-tools status

Weiter