Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
GitLab ArchLinux - Restore
GitLab ist ein, in der Community Edition unter einer MIT-Lizenz zur Verfügung gestelltes System, zur Verwaltung von Git-Repositorys im Browser, was den unentgeltlichen Betrieb auf einem eigenen Server ermöglicht.
Beschreibung | Externer Link |
---|---|
Homepage | https://gitlab.com/ |
Dokumentation | https://docs.gitlab.com/ |
Versionsvergleich | https://about.gitlab.com/install/ce-or-ee/ |
Installation | https://wiki.archlinux.org/title/PostgreSQL https://wiki.archlinux.org/title/Redis https://wiki.archlinux.org/title/GitLab |
Restore Dokumentation | https://docs.gitlab.com/ee/administration/backup_restore/restore_gitlab.html |
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root
zu werden, geben Sie bitte nachfolgenden Befehl ein:
$ su - Password:
Vorwort
Als grobe Richtlinie gilt:
Wenn eine Architektur mit weniger als 100 GB Daten Verwendung findet, sind die nachfolgenden drei Schritte für ein erfolgreiches Restore ausreichend:
- Restore-Befehl ausführen.
- Objektspeicher wiederherstellen, falls zutreffend.
- Manuelles einspielen der gesicherten Konfigurationsdateien.
Welche Daten müssen wiederhergestellt werden?
- PostgreSQL-Datenbanken
- Git-Repositories
- Blobs
- Container-Registrierung
- Konfigurationsdateien
- Es sollten Sicherungskopien des Konfigurationsverzeichnisses wiederhergestellt werden. Zumindest muss ein Backup von nachfolgenden Dateien manuell wiederhergestellt werden:
/etc/webapps/gitlab/gitlab.yml
/etc/webapps/gitlab/secrets.yml
/etc/webapps/gitlab/secret
/etc/webapps/gitlab-shell/secret
- oder am besten von den beiden nachfolgenden Verzeichnissen:
/etc/webapps/gitlab
/etc/webapps/gitlab-shell
- Andere Daten
Voraussetzungen
Als Voraussetzung für die hier, nachfolgend durchgeführtes Backup von GitLab Version 16.x ist:
- Lauffähige Installation von GitLab
- Siehe auch den internen Link: GitLab ArchLinux
- Siehe auch den internen Link: GitLab ArchLinux - LDAP-Konfiguration
- Ein erstelltes Backup der gleichen Version von GitLab
- siehe auch den internen Link: GitLab ArchLinux - Backup
GitLab: Dienste/Daemons stoppen
Nachdem GitLab wahrscheinlich bereits lauffähig gestartet wurde, ist es erforderlich GitLab zu stoppen.
Da ein systemd-Target - hier in diesem Fall gitlab.target
nicht einfach gestoppt werden kann, ist es sinnvoll sich den Inhalt von gitlab.target
mit nachfolgendem Befehl anzeigen zu lassen:
# systemctl cat gitlab.target # /usr/lib/systemd/system/gitlab.target [Unit] Description=GitLab - Self Hosted Git Management Requires=gitlab-puma.service gitlab-workhorse.service Wants=gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service [Install] WantedBy=multi-user.target
Hier sind alle Dienste/Daemons welche ebenfalls mittels systemd gestartet werden aus dem gitlab.target
in den Bereichen
Requires
Wants
aufgelistet
Diese können dann mit nachfolgendem Befehl gestoppt werden:
# systemctl stop gitlab-puma.service gitlab-workhorse.service gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service
GitLab: Restore-Befehl
Nachfolgende Befehle führen ein Restore aus einem Backup von GitLab durch.
Eine Auflistung mittels des Backup-Befehls erstellten Backup-Datei, kann mit nachfolgendem Befehl durchgeführt werden und sollte eine Datei in etwa wie die nachfolgende zum Vorschein bringen:
# ls -l /var/lib/gitlab/backups total 644 -rw------- 1 gitlab gitlab 174080 Mar 23 07:59 1711175567_2024_03_23_16.9.2_gitlab_backup_manual.tar -rw------- 1 gitlab gitlab 481280 Mar 23 07:32 1711175567_2024_03_23_16.9.2_gitlab_backup.tar
ACHTUNG - Hier ist die vom Backup-Befehl erstellte Datei zu berücksichtigen!
Mit nachfolgendem Befehl muss zwingend in das Verzeichnis /usr/share/webapps/gitlab
gewechselt werden:
# cd /usr/share/webapps/gitlab
Der nachfolgende Befehl, führt dann den Restore von GitLab aus:
# sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:backup:restore