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.
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
mainkann 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