Neukunde: Unterschied zwischen den Versionen

Clawtronics (Diskussion | Beiträge)
Zentrale Checkliste für neue Kunden und Projekte angelegt
 
Clawtronics (Diskussion | Beiträge)
Interne Servereinrichtung mit konkreten Befehlen und Prüfungen erweitert
Zeile 98: Zeile 98:
== 6. Interner Server beim Kunden ==
== 6. Interner Server beim Kunden ==


Für jedes Projekt wird beim Kunden ein eigener Server für `megbes-internal` eingerichtet.
Für jedes Projekt wird beim Kunden ein eigener Server für `megbes-internal` eingerichtet. Die folgenden Schritte sind in dieser Reihenfolge abzuarbeiten.


# aktuelle Ubuntu-LTS-Version installieren.
=== 6.1 Ubuntu installieren und anmelden ===
# administrativen Benutzer einrichten; nicht dauerhaft als `root` arbeiten.
# System vollständig aktualisieren.
# feste lokale IP-Adresse passend zum Kundennetz konfigurieren.
# Docker installieren und Funktion prüfen.
# projektbezogene Umgebungsdatei erstellen.
# Zertifikate in einen eindeutig benannten, geschützten Ordner kopieren.
# freigegebenes `megbes-internal`-Image laden.
# Container mit automatischem Neustart, korrekten Ports und Volumes starten.
# Container-Protokoll prüfen.


Die Umgebungsdatei enthält nur projektspezifische Werte. Eine Konfiguration aus einem anderen Kundenprojekt darf nicht ungeprüft kopiert werden.
Die jeweils aktuelle Ubuntu-LTS-Version installieren. Während der Installation:


* eindeutigen Servernamen nach dem Projektschema vergeben
* Administrationsbenutzer anlegen
* OpenSSH-Server installieren
* keine unnötigen Zusatzpakete auswählen
* Installationsmedium nach Aufforderung entfernen
Nach dem Neustart lokal oder per SSH anmelden.
=== 6.2 Aktuelle Ubuntu-Version prüfen ===
lsb_release -a
Falls der Befehl fehlt:
cat /etc/os-release
Prüfen, ob tatsächlich die vorgesehene LTS-Version installiert ist.
=== 6.3 System vollständig aktualisieren ===
Zuerst aktuelle Paketlisten abrufen:
sudo apt update
Der Befehl muss ohne Zeilen mit `E:` oder `Error` enden. Danach verfügbare Aktualisierungen installieren:
sudo apt upgrade
Die Paketliste prüfen und die Rückfrage mit `Y` beziehungsweise `J` bestätigen. Nach Abschluss den Neustartbedarf prüfen:
if [ -f /run/reboot-required ]; then cat /run/reboot-required; else echo "Kein Neustart erforderlich"; fi
Falls ein Neustart erforderlich ist:
sudo reboot
Danach neu anmelden und prüfen:
systemctl --failed
Die vollständige Anleitung einschließlich Fehlerbehandlung und Funktionstest steht unter [[Ubuntu aktualisieren]].
=== 6.4 Feste lokale IP-Adresse einrichten ===
Die Netzwerkschnittstelle, IP-Adresse, Netzmaske, Gateway und DNS-Server anhand der Kundennetz-Dokumentation bestimmen. Keine Beispieladresse ungeprüft übernehmen. Die konkrete Anleitung folgt unter [[Feste IP-Adresse unter Ubuntu]].
Nach der Änderung Verbindung, Gateway und DNS testen:
ip address
ip route
ping -c 4 <Gateway-Adresse>
getent hosts download.docker.com
=== 6.5 Docker installieren ===
Docker aus der offiziellen Docker-Paketquelle installieren. Nicht mehr die veraltete GPG-/Repository-Anleitung aus dem Word-Dokument verwenden.
Die vollständige Schrittfolge steht unter [[Docker installieren]]. Abschließend müssen diese Prüfungen erfolgreich sein:
docker --version
sudo systemctl status docker --no-pager
sudo docker run --rm hello-world
=== 6.6 Projektordner vorbereiten ===
Einen eindeutig benannten Ordner für die geschützten Zertifikatsdateien anlegen. Beispiel – Benutzer und Projektkürzel anpassen:
mkdir -p /home/<Benutzername>/certs/<Projektkürzel>
chmod 700 /home/<Benutzername>/certs/<Projektkürzel>
Anschließend kontrollieren:
ls -ld /home/<Benutzername>/certs/<Projektkürzel>
=== 6.7 Projektbezogene Dateien übertragen ===
Benötigt werden mindestens:
* projektspezifische Umgebungsdatei
* Key- und Truststore beziehungsweise aktuell verwendete Zertifikatsdateien
* dokumentierter Container-Name
* festgelegter External-/Internal-Port
* UDP-Port und lokales Subnetz
* freigegebener Release
Dateien nach dem Übertragen mit `ls -l` kontrollieren. Geheimnisdateien dürfen nicht für alle Benutzer lesbar sein.
=== 6.8 megbes-internal starten ===
Der projektspezifische Docker-Befehl wird anhand der geprüften Vorlage erstellt. Keine Befehlszeile eines anderen Kunden ungeprüft kopieren. Vor dem Start insbesondere kontrollieren:
* Container-Name
* External-zu-Container-Port
* UDP-Port
* Pfad und Name der Umgebungsdatei
* Zertifikats-Volume
* Docker-Image und Release
* Neustartregel `unless-stopped`
Die ausführliche Anleitung folgt unter [[megbes-internal]].
=== 6.9 Start prüfen ===
sudo docker ps
sudo docker logs --tail 100 <Containername>
Der Container muss `Up` sein. Wiederholte Exceptions, Zertifikats- oder Verbindungsfehler müssen vor dem nächsten Schritt behoben werden.
=== 6.10 Neustarttest ===
Server kontrolliert neu starten:
sudo reboot
Danach neu anmelden und prüfen:
sudo systemctl status docker --no-pager
sudo docker ps
Der MegBes-Container muss aufgrund der Neustartregel automatisch wieder laufen.
== 7. Router, DynDNS und Portfreigabe ==
== 7. Router, DynDNS und Portfreigabe ==