Inhaltsverzeichnis
Tutorial
Version | Status | Datum | Author | URL |
---|---|---|---|---|
0.1 | Erster Entwurf | TT.MM.JJJJ | Vorname Nachname | |
0.2 | Ergänzungen | TT.MM.JJJJ | Vorname Nachname | |
1.0 | Review und Freigabe | TT.MM.JJJJ | Vorname Nachname |
1. Kurzfassung
Mit diesem Tutorial soll ersichtlich werden wie man eine Gitlab-Umgebung mit der Backup-Suite backuppc sichert. Mit Sudoers und Rsync werden alle wichtigen Befehle ausgeführt. Es wird ein Dump erstellt und extra Konfigurationsdatei zusätzlich abgespeichert. Mit dem Dump kann man einen einfachen Restore durchführen. Um einen Bare-Metal-Restore durchzuführen muss man sich aber an die offizielle Dokumentation wenden.
2. Tutorial
Vorbereitung: Um ein Backup einer Gitlab-Umgebung durchführen zu können, braucht man zuerst eine Gitlab-Maschine sowie ein Backup-Server.
-Anleitung Gitlab Installation-
-Anleitung backuppc Installation-
Backup von Gitlab
Es wird angenommen das man Sudoers installiert hat und man jegliche Rsync-Konfigurationen schon umgesetzt hat (sudoers, ssh-keys, DNS). Da der Backup-Befehl als Git-User ausgeführt wird muss man dem Git-User die Berechtigungen per Sudoer verteilen.
Auf dem Backup-Server richtet man den Pre-Dump wie folgt ein: „$sshPath -q -x -l sysadmin $host sudo gitlab-backup create BACKUP=dump“ Mit diesem Befehl wird unter /var/opt/gitlab/backups ein Backup erstellt. Mit Rsync speichert man zwei Verzeichnisse ab: Wichtig ist, dass man beim RsyncClientPath sudo -u git eingibt. Da nur der Git-User auf die Backup-Datei Zugriff hat. Das Redis-Verzeichnis ist wichtig für den Bare-Metal-Restore.
Da der Dump keine wichtigen Konfigurations-Files abspeichert muss man einen zweiten Backup-Job einrichten der das /etc/gitlab Verzeichnis sichert. Dieser ist aufgebaut wie ein simpler Rsync-Job.
Restore von Gitlab
Beim Restore vom einem Bare-Metal-Gitlab folgt man am besten der offiziellen Dokumentation: https://docs.gitlab.com/ee/administration/backup_restore/
WICHTIG: Bis jetzt konnte ich nicht auf die Datenbank-Verzeichnisse zugreifen. Dies hat höchst wahrscheinlich mit dem Git-Datenbank-User zu tun.
3. Testing
3.1 Test 1 (Beispiel)
Testfall Nr. | #1 |
---|---|
Beschreibung | Die Namensauflösung im Netzwerk funktioniert |
Vorgehen | mit nslookup die Namen von internen und externen Hosts auflösen: |
nslookup srv-zh-01.dotcom.intern | |
nslookup pc-zh-01.dotcom.intern | |
Voraussetzung / Umfeld | Auf dem AD-Server srv-zh-01 ist der DNS-Dienst aktiviert |
Erwartetes Resultat | Die Namen werden richtig aufgelöst |
OK / nicht OK | OK |
Aufgetretene Fehler / Bemerkungen | Keine |
3.2 Test 2
Testfall Nr. | #2 |
---|---|
Beschreubung | |
Vorgehen | |
Voraussetzung / Umfeld | |
Erwartetes Resultat | |
OK / nicht OK | |
Aufgetretene Fehler / Bemerkungen |
3.3 Test 3
Testfall Nr. | #3 |
---|---|
Beschreubung | |
Vorgehen | |
Voraussetzung / Umfeld | |
Erwartetes Resultat | |
OK / nicht OK | |
Aufgetretene Fehler / Bemerkungen |
4. Auswertung
Was hat funktiniert[(ref note example)], was nicht, was waren die grössten Herausforderungen/Probleme, wie habe ich die Probleme gelöst, was mache ich beim nächsten Mal besser, Reflexion