
Jetzt laufen Gitlab und Gitolite auf meinem Ubuntu-Server. Dieser Server ist jedoch zu langsam und meine Firma möchte den Server auf eine andere Maschine verschieben. Gibt es eine Möglichkeit, den Gitlab- und Gitolite-Server (alle Dateien, Benutzer und Einstellungen) auf eine andere Maschine zu verschieben?
Alle Benutzer und Repositories erneut zu installieren und anzulegen wäre meine letzte Wahl. Vielen Dank im Voraus.
Antwort1
Ich mache das ständig mit einem stündlichen Crontab-Job für eine schnellere lokale Bereitstellung. (Dadurch wird eine genaue Kopie des Originalservers erstellt, die als schreibgeschützter Spiegel dient. Ich persönlich nenne es eine Puppet-Maschine.)
Alles was Sie tun müssen, ist:
- MySQL-Daten sichern/wiederherstellen (Tools: mysqldump / mysql < backup.sql.txt)
- kopiere das gesamte Gitlab-WWW auf die neue Maschine (scp, rsync)
- kopiere das gesamte Gitolite-Verzeichnis auf die neue Maschine (rsync)
Sie können jederzeit den folgenden Befehl ausführen, um zu testen, ob die Puppet erfolgreich ausgeführt wird.
bundle exec rake gitlab:app:status RAILS_ENV=production
Einige detaillierte Verfahren:
Ich habe die MIME-Einrichtung mithilfe von Ubuntu 12.04 gitolite apt-get install durchgeführt, den Rest gemäß der offiziellen Anleitung, und ich habe mir auch ein paar Notizen gemacht:
- Erinnerung an:https://github.com/c2h2/gitlabhq_install/blob/master/aio.sh
- automatisiertes Backup-Skript:https://github.com/c2h2/gitlabhq_install/blob/master/gitlab_backup.rb
SSH-Private/Public-Schlüssel werden für automatisierte (passwortlose) rsync/scp-Prozesse benötigt. Wenn Sie das nicht verstehen, lesen Sie bitte weiter.http://troy.jdmz.net/rsync/index.html
Alles was Sie einrichten müssen, sind einige Cron-Jobs, nachdem die Originalmaschine funktioniert: das istonlineauch spiegeln. (Sie müssen keinen Webserver/Computer neu starten)
Crontab auf Spiegelmaschine:
58 * * * * rsync -zav root@my_remote_server.com:/home/git /home
11 * * * * rsync -zav root@my_remote_server.com:/root/mysql_hourly_dump.txt /root
15 * * * * mysql -u root -p"secure password" gitlabhq_production < mysql_hourly_dump.txt
20 * * * * rsync -zav --delete my_remote_server.com:/www/ /www
Crontab auf dem Server:
7 * * * * mysqldump -p"secure password" gitlabhq_production -u root > /root/mysql_hourly_dump.txt
Antwort2
Das Verschieben von Gitolite scheint einfach:
- Sie müssen sicherstellen, dass die öffentlichen Schlüssel, auf die es verweist, noch im
~/.ssh/authorized_keys
neuen Home-Ordner sind (Sie müssen also hauptsächlich diese Datei kopieren). - Und Sie müssen die Dateien
repositories
,.gitolite
und verschieben.gitolite.rc
(überprüfen Sie die Pfade im letzten)
Die „Benutzer“ werden nur in der Gitolite-Datei und der Gitlab-Datenbank deklariert.
GitLab sollte neu installiert werden (aufgrund all der Gems, die es verwendet und die basierend auf der ersten Installation einen festen Pfad verwenden könnten) und seine Datenbank sollte durch die vom Ubuntu-Server aktualisiert/ersetzt werden (entweder durch eine Dateikopie oder durch einen SQL-Export/-Import).