Richten Sie Gitolite unter CentOS 7 ein

Einführung

Gitolite, das jedem Benutzer des Git-Servers eine einfache Zugriffsverwaltung ermöglicht. Es gibt einen Artikel über das Setzen von Beispielen auf der Straße, aber fast alle Operationen von Capitolit sind eine Sammlung von Operationen, die für vertraute Personen üblich sind, wie "Erstellen eines Schlüsselpaars" und "Festschreiben", anstatt eines bestimmten Verfahrens Ist es nicht schneller, die notwendigen Anforderungen zu schreiben?

Dies ist also ein Artikel anstelle eines Memos. Ich habe es in der Erinnerung an die erste Installation geschrieben, daher kann es zu Fehlern kommen. Wenn ich es erneut einrichten muss, kann ich es vielleicht reparieren?

Die Installationszielserverumgebung ist CentOS 7, aber wenn Sie yum verwenden können, gibt es keinen großen Unterschied.

Installation

Annahme

Ist es nicht möglich, dass Git nicht enthalten ist?

Erstellen Sie ein Verwaltungsschlüsselpaar

Erstellen Sie mit ssh-keygen usw. ein Schlüsselpaar für den Administrator. Der öffentliche Schlüssel wird auf der Serverseite benötigt. Der private Schlüssel wird vom Administrator für den Remotezugriff verwendet (auf dem Server nicht erforderlich).

yum Install & Committer Einstellungen

"Yum install gitolite 3" mit aktiviertem EPEL. Durch diesen Vorgang wird automatisch der Benutzer "gitolite3" für den gitolite-Betrieb erstellt. Legen Sie außerdem einen Committer fest, damit dieser Benutzer bei der Initialisierung automatisch festgeschrieben wird (wahrscheinlich erforderlich). So was

# yum install gitolite3
# su - gitolite3
$ git config --global user.Name Benutzername
$ git config --global user.E-Mail-Adresse

Ich habe auch einen Artikel gesehen, der Einstellungen für die Verwendung von Japanisch im festzuschreibenden Dateinamen enthielt, bin mir aber nicht sicher, wie wichtig dies ist.

Initialisieren

Da der Benutzer gitolite3 durch die obige Arbeit erstellt wurde, initialisieren Sie gitolite3 mit dem zuvor erstellten öffentlichen Schlüssel.

$ gitolite setup -pk Öffentliche Verwaltungsschlüsseldatei

Dies ist das Ende der Arbeit auf der Serverseite. Da in gitlite ein Repository mit dem Namen "gitolite-admin" erstellt wurde, wird es von der Remote-Seite hauptsächlich durch Festschreiben an das Repository verwaltet.

Management

Zugriff von einem Administratorkonto

Voraussetzung für den Zugriff von einem Administratorkonto ist der Zugriff "mit einem privaten Administratorschlüssel" und "als Benutzer gitolite3". Fügen Sie beispielsweise den folgenden Eintrag zu .ssh / config hinzu

Host gitoliteadmin (bitte wählen Sie Ihren Lieblingsnamen)
Hostname Hostname, IP-Adresse usw.
User           gitolite3
IdentityFile   ~/.ssh/Dateiname des privaten Schlüssels

Versuchen wir "ssh gitolite admin". Natürlich ist es in Ordnung, die obigen Informationen als Option des Befehls ssh festzulegen (es ist in Ordnung, aber schließlich ist das Hinzufügen eines Eintrags zur Konfiguration durch Git-Operation fast unerlässlich). Wenn Sie eine Anmeldemeldung erhalten und die Verbindung getrennt wird, sind Sie erfolgreich.

hello gitadmin, this is gitolite3@*** running gitolite3 3.6.12-1.el7 on git ***

 R W    gitolite-admin
 R W    testing

Klonen Sie das administrative Repository

Sie können das Management-Repository "gitolite-admin" mit den oben genannten Zugriffsinformationen klonen. Aus dem Befehl git

git clone gitoliteadmin:/gitolite-admin

Sie können es mit Ihrem Lieblings-Git-Client tun.

Benutzer hinzufügen

Um einen Benutzer hinzuzufügen, fügen Sie einfach den öffentlichen Schlüssel des Schlüsselpaars des Benutzers hinzu (festschreiben), den Sie dem gitolite-admin-Repository hinzufügen möchten.

Wenn Sie beispielsweise "privater Schlüssel: git-user1.pem, öffentlicher Schlüssel: git-user1.pub" haben, geben Sie git-user1.pub in (geklont) gitlite-admin / keydir und git commit & push ein. Ich werde es dir geben. Der private Schlüssel wird vom Benutzer gehalten und für den Zugriff verwendet.

Wichtig ist, dass "dieser Dateiname mit öffentlichem Schlüssel zur Benutzerkennung für die Zugriffskontrolle wird". Achten Sie daher beim Registrieren des öffentlichen Schlüssels auf den Dateinamen. Wenn der Dateiname "git-user1.pub" lautet, lautet die Benutzerkennung "git-user1".

Repository hinzufügen / Berechtigungen festlegen

Im Ausgangszustand sollte gitlite-admin / conf / gitolite.conf den folgenden Inhalt haben.

repo gitolite-admin
    RW+     =   gitadmin

repo testing
    RW+     =   @all

Fügen Sie dieser Datei eine Zeile mit dem Namen "Repo New Repository Name" und eine Zeile mit der Zugriffsberechtigung "RW + =" hinzu, und git commit & push sowie das Hinzufügen eines Benutzers. das ist alles. Vielleicht einfacher als Git Init auf dem Server?

repo gitolite-admin
    RW+     =   gitadmin

repo testing
    RW+     =   @all

repo new-repository
    RW+     =   @all

Legen Sie für die Berechtigungseinstellung die Benutzerkennung oder Gruppe fest, auf die Sie nach "RW + =" zugreifen möchten. Wenn Sie mehrere Benutzer oder Gruppen festlegen möchten, ordnen Sie diese durch Leerzeichen getrennt an. Gruppen werden in derselben Datei wie "@ group1 = git-user1 git-user2" definiert. Eine Gruppe namens "@all" wird in den Ausgangszustand versetzt. Es gibt drei Arten von Berechtigungen: "R (schreibgeschützt)", "RW (schreibgeschützt / schreibgeschützt)" und "RW + (alle möglich)".

@group1 = git-user1 git-user2

repo gitolite-admin
    RW+     =   gitadmin

repo testing
    RW+     =   @all

repo new-repository
    RW+    = gitadmin
    RW     = @group1
    R      = git-user3 git-user4

Verwendung durch Benutzer

Der Zugriff von Benutzern ist grundsätzlich der gleiche wie der Administrator. Voraussetzung ist der Zugriff auf "mit dem privaten Schlüssel des Benutzers" und "mit dem Benutzer gitolite3". Als Beispiel für .ssh / config dachte ich, dass es so ist ... aber es ist völlig anders als das für die Verwaltung (weil der private Schlüssel anders ist).

Host Gitolite (bitte wählen Sie Ihren Lieblingsnamen)
Hostname Hostname, IP-Adresse usw.
User           gitolite3
IdentityFile   ~/.ssh/Dateiname des privaten Schlüssels

Dies ist auch dasselbe wie beim Administrator. Wenn Sie ssh gitolite ausführen, wird eine Liste der verwendbaren Repositorys angezeigt. Versuchen wir, "Testen" zu klonen.

git clone gitolite:/testing

Ich erhalte die Warnung "Warnung: Sie scheinen ein leeres Repository geklont zu haben." (Wenn niemand etwas festgeschrieben hat), aber es ist mir egal.

Migrieren Sie das vorhandene Repository

In den meisten Fällen möchten Sie bei Verwendung von Capitolit ein Repository migrieren, auf dem Raw Git ausgeführt wurde. Diese Arbeit wird hauptsächlich auf der entfernten Seite ausgeführt. Dies ist eines der Verwaltungsmaterialien, aber es ist besser, es nach dem Hinzufügen von Benutzern zu tun, daher werde ich es hier schreiben.

Führen Sie zunächst das oben erwähnte "Repository hinzufügen" mit dem Verwaltungskonto aus. Der Vorgang ändert sich auch bei Migration nicht. Wenn ein neues Repository erstellt wird, ist es einfach, "einen Git-Server hinzuzufügen" und "Git-Push" auf der Remote-Seite (es gibt ein vorhandenes Repository).

Als Voraussetzung wird davon ausgegangen, dass Sie sich in dem Repository befinden, das Sie mit dem Benutzerkonto auf der Remote-Seite migrieren möchten. Wenn der Repository-Name "repo1" ist

git remote add gitolite ssh://gitolite/repo1 #Git-Server hinzufügen
git push gitolite master #Grundinformation+Master Push
git push gitolite --all #Andere Zweige als Master Push
git push gitolite --tags #Etikett

Wird sein. Dadurch wird der Inhalt des vorhandenen Repositorys als Repository in Gitolite registriert. Wenn Sie viele Migrationsrepositorys haben, erstellen Sie ein Shell-Skript oder was auch immer.

Durch diesen Vorgang sollte "gitolite" zusätzlich zu "origin" zu Ihrer .git / config hinzugefügt werden. Sie können es so lassen, wie es ist, aber wenn Sie nicht auf das ursprüngliche Repository zugreifen müssen oder origin anstelle von gitolite verwenden möchten, können Sie erneut von gitolite klonen oder .ssh / config bearbeiten. Okay (ich habe Letzteres getan)

Schließlich

Sobald Sie es kennen, dauert die Einrichtung weniger als eine Minute (mit Ausnahme der Repository-Migration).

In der Erklärung verwende ich hauptsächlich den Befehl git, aber verschiedene Commit & Push-Aktionen können bequem mithilfe des Quellbaums ausgeführt werden.

Recommended Posts

Richten Sie Gitolite unter CentOS 7 ein
Richten Sie die Docker-Registrierung lokal unter CentOS 7 ein
Richten Sie ansible-playbook unter Ubuntu 20.04 ein
Richten Sie den Metabasisdienst unter Windows Server 2012 ein
Gachi-Anfänger richten Container mit Kubernetes ein? Bis···
Richten Sie unter Ubuntu 20.04 einen SSH-Server ein, nämlich WSL2
Richten Sie mit Vagrant einen virtuellen Cent OS-Server ein
Maven auf CentOS 7 Tutorial
Docker-Installation unter CentOS 6
Verwenden Sie perltidy unter CentOS 8
Installieren Sie Golang unter CentOS 8
Probieren Sie OpenLiteSpeed unter CentOS8 aus
Installieren Sie Neo4j 4.1.3 unter centOS
Tomcat v8 unter CentOS7
Installieren Sie Vertica 10.0 unter CentOS 6.10
Installation von Zabbix 5 unter CentOS 8
Verwenden Sie mod_auth_cas unter CentOS 8
Installieren Sie PostgreSQL 12 auf Centos8
Installieren Sie Python 3 unter CentOS 7
Installieren Sie kuromoji unter CentOS7
Anlegestelle v8 auf CentOS7
OpenJDK-Installation unter CentOS7
Installieren Sie PostGIS 2.5.5 unter CentOS7
Installieren Sie jpndistrict unter CentOS 7
Installieren Sie Redmine 4.1.1 unter CentOS 7
Smokeping Installation unter CentOS7
Installieren Sie PostgreSQL 13 unter CentOS 7.5
Probieren Sie Rabbit MQ + PHP unter CentOS aus
Stellen Sie exFat unter CentOS 7 zur Verfügung
Richten Sie GitLab mit Docker ein
Installieren Sie OpenFOAM v2006 unter CentOS
Installieren Sie Jenkins auf Dockers CentOS
Installieren Sie Apache unter CentOS auf VirtualBox
Ändern Sie die Java-Version unter CentOS
Richten Sie einen MineCraft Paper-Server mit Ubuntu 20.04.1 LTS ② Update ein
Installieren Sie Ruby 2.7 unter CentOS 7 (SCL)
Führen Sie eine Protokollrotation mit Centos durch
Richten Sie Django mit PostgreSQL und Gunicorn auf ECS unter Ubuntu 16.04 ein
Richten Sie mit Bitnamis AMI ganz einfach einen Jenkins-Server in AWS ein
Installieren Sie Docker unter Ubuntu und richten Sie die Remoteverbindung mit tls ein
So stellen Sie Laravel für CentOS 7 bereit
Aktivieren Sie Openjdk10 und Maven unter CentOS
Installieren Sie Ruby 2.5 unter CentOS 7 mit SCL
Richten Sie das Routing vor der Anmeldung in Devise ein
Java Open JDK 8 unter CentOS 7 installieren
Versuchen Sie, CentOS 8 in Raspberry Pi 3 zu integrieren
WordPress mit Docker Compose unter CentOS 8
[Ubuntu] Richten Sie einen Nukkit-Server ein
So installieren Sie MariaDB 10.4 unter CentOS 8
Installieren Sie Apache 2.4.46 von der Quelle unter CentOS 7
Stellen Sie JAVA_HOME unter Mac OS 10.12 richtig ein