J'ai décidé d'aller de l'avant et de répondre à cette question car elle est en quelque sorte nécessaire pour la communauté Gerrit. Actuellement, il n'y a pas beaucoup de tutoriels couvrant les configurations avancées de Gerrit. J'espère que cela aidera les autres à explorer les pratiques XP / Agile et à faire fonctionner Gerrit. C'est un excellent outil une fois que vous avez passé tous les défis et détails de configuration subtils.
Ce tutoriel d'installation est plutôt unique en ce sens qu'il dessert l'environnement spécifique:
- Windows 2008 Server
- PostgreSql
- Matou
- LDAP via Active Directory
- Gerrit
- msysgit
Avant de commencer, assurez-vous que git est installé sur votre système. Téléchargez le dernier outil de ligne de commande msysgit pour Windows à partir de http://code.google.com/p/msysgit/downloads/list
Assurez-vous que vous obtenez le "programme d'installation complet pour Git officiel pour Windows".
- Installer MSysGit
- Utiliser les valeurs par défaut lorsque vous y êtes invité
- Configurer Git
Si vous avez l'intention d'utiliser la version GitWeb dans msysgit, vous remarquerez des problèmes autour de CGI.pm. Je voudrais mentionner un correctif pour résoudre ce problème.
Le Perl inclus avec la distribution msysgit, à partir de 1.7.8, est cassé, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af . Le dossier unicore est manquant avec utf8_heavy.pl et CGI.pm. Vous pouvez vérifier en recherchant les modules perl:
perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Vous rencontrerez probablement l'exception suivante:
$ perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Impossible de localiser CGI.pm dans @INC (@INC contient: /usr/lib/perl5/5.8.8/msys / usr / lib / p erl5 / 5.8.8 /usr/lib/perl5/site_perl/5.8.8/msys /usr/lib/perl5/site_perl/5.8.8 / u sr / lib / perl5 / site_perl.). Échec de BEGIN - compilation interrompue.
Si vous manque CGI.pm, vous devrez déployer le module dans l'environnement msys: vous devrez les récupérer à partir de la distribution 5.8.8 sur:
http://strawberryperl.com/releases.html
Fichier: strawberry-perl-5.8.8.3.zip
contenu: bin / lib / site /
copiez le contenu de lib dans msysgit / lib / perl5 / 5.8.8 et écrasez les fichiers existants.
Si vous utilisez git en ligne de commande, ajoutez vos paramètres de configuration globale à git:
git config --global user.name "Your Name"
git config --global user.email you@corporation.com
git config --global core.autocrlf false
Assurez-vous que les informations d'identification utilisées ici correspondent aux informations d'identification dans gerrit. Sinon, gerrit rejettera votre demande.
Les instructions d'installation et de configuration de Gerrit sont les suivantes:
- Tout d'abord, connectez-vous au serveur hébergeant postgres et créez un utilisateur et une base de données pour Gerrit
- createuser --username = postgres -A -D -P -E gerrit2
- createdb --username = postgres -E UTF-8 -O gerrit2 reviewdb
- Maintenant, revenez à l'hôte, s'il est différent, pour Gerrit et créez 3 répertoires pour déployer Gerrit
- Créez un répertoire d'installation de base pour gerrit, de préférence un répertoire versionné pour le contenu du déploiement de guerre
- Créer un sous-répertoire pour tomcat
- Créer un répertoire de configuration pour déployer le schéma et la configuration
- Le contenu devrait ressembler à ceci:
- gerrit
- Téléchargez tomcat depuis http://tomcat.apache.org/download-60.cgi
- Remarque: La plupart des distributions Linux auront cela à disposition de leurs gestionnaires de mise à jour. Exemple: utilisez Synaptic sur Ubuntu
- Déployez votre installation tomcat dans le répertoire tomcat
- Téléchargez la dernière version de gerrit.war depuis
http://code.google.com/p/gerrit/downloads/list .
- copier le fichier dans le répertoire gerrit de base
- extraire le fichier war dans le sous-répertoire gerrit-XX
- CD dans le répertoire de base gerrit et exécutez
java -jar gerrit-2.4-rc0.war
init -d config
- Cette configuration inclut des extras pour LDAP et fonctionnant derrière un proxy, ne configurez pas ces options si elles ne sont pas nécessaires.
Exécuter:
C:\your_path\gerrit>java -jar gerrit-2.4-rc0.war init -d config
*** Gerrit Code Review 2.4-rc0
***
Create 'C:\your_path\gitserver\gerrit\config' [Y/n]? Y
*** Git Repositories
***
Location of Git repositories [git]: C:\your_path\gitserver\repository\ha
*** SQL Database
***
Database server type [H2/?]: postgresql
Server hostname [localhost]: database.corp.local
Server port [(POSTGRESQL default)]:
Database name [reviewdb]:
Database username [Administrator]: gerrit2
gerrit2's password :
confirm password :
*** User Authentication
***
Authentication method [OPENID/?]: LDAP
LDAP server [ldap://localhost]: ldaps://ldap.corp.local:
636
LDAP username : CN=Administrator,CN=Users,DC=corp,DC=local
CN=Administrator,CN=Users,DC=corp,DC=local's password :
confirm password :
Account BaseDN [DC=corp,DC=local:636]: CN=Users,DC=corp,DC=l
ocal
Group BaseDN [CN=Users,DC=corp,DC=local]:
*** Email Delivery
***
SMTP server hostname [localhost]: smtp.corporation.com
SMTP server port [(default)]: 465
SMTP encryption [NONE/?]: SSL
SMTP username [Administrator]: build@corporation.com
build@corporation.com's password :
confirm password :
*** Container Process
***
Run as [Administrator]:
Java runtime [C:\Program Files\Java\jre6]:
Copy gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war [Y/n]?
Copying gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]? n
Generating SSH host key ... rsa(simple)... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]?
Use SSL (https://) [y/N]?
Listen on address [*]:
Listen on port [8080]:
Initialized C:\your_path\gitserver\gerrit\config
Automatic startup not supported on Win32.
- Ne vous inquiétez pas de configurer Gerrit en tant que serveurs, nous le configurerons plus tard
- Editez config \ etc \ gerrit.config
- sous la section gerrit, ajoutez un paramètre pour conicalWebUrl =
http://review.corporation.com/
- Si vos projets ne respectent pas le format traditionnel project.git, ajoutez la section suivante:
- ajoutez le fichier locaiton et l'url à votre serveur gitweb avec les propriétés associées
Mise à jour gerrit.config:
[gitweb]
cgi = C:\\path to msysgit\\Git\\share\\gitweb\\gitweb.cgi
url = https://gitweb.corporation.com
type = custom
project = ?p=${project};a=summary
revision = ?p=${project};a=commit;h=${commit}
branch = ?p=${project};a=shortlog;h=${branch}
filehistory = ?p=${project};a=history;hb=${branch};f=${file}
- Si vous utilisez http / https pour servir, ajoutez ce qui suit:
Mise à jour gerrit.config:
[download]
scheme = http
- Si vous utilisez LDAP avec Active Directory, vous devrez modifier vos paramètres, ajouter des paramètres supplémentaires pour prendre en charge AD:
Mise à jour gerrit.config:
[ldap]
sslVerify = true
server = ldaps://ldap.corp.local:636
username = CN=Administrator,CN=Users,DC=corp,DC=local
accountBase = CN=Users,DC=corp,DC=local
accountPattern = (&(objectClass=person)(sAMAccountName=${username}))
accountFullName = displayName
accountEmailAddress = mail
accountSshUserName = sAMAccountName
groupBase = CN=Users,DC=corp,DC=local
groupMemberPattern = (sAMAccountName=${username})
groupName = cn
Server.xml:
<Server port="8006" shutdown="SHUTDOWN">
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true">
<Context path="" docBase="C:\your_path\gitserver\gerrit\gerrit-2.4" debug="0" reloadable="false">
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.postgresql.Driver"
password="secret"
url="dbc:postgresql://yourPsqlServer:5432/reviewdb"
/>
</Context>
</Host>
</Engine>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"/>
<Connector port="8011" protocol="AJP/1.3" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
disableUploadTimeout="true" enableLookups="false"
acceptCount="100" URIEncoding="UTF-8" />
</Service>
</Server>
Vous n'avez pas besoin du connecteur AJP à moins que vous n'ayez l'intention de faire un proxy avec Apache HTTP Server. Je l'utilise pour décharger le cryptage SSL et gérer les certificats. Retirez-le si vous n'en avez pas besoin. Assurez-vous de changer votre port de connecteur HTTP en 80 si vous avez l'intention de l'exécuter de manière autonome.
La configuration ci-dessus est destinée à être utilisée avec postgres. Si vous utilisez MySQL, vous devrez remplacer la ressource par ce qui suit pour MySQL:
Server.xml:
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.gjt.mm.mysql.Driver"
password="secret"
url="jdbc:mysql://yourMsqlServer/reviewdb?autoReconnect=true"
/>
À ce stade, vous êtes maintenant prêt à configurer Gerrit en tant que service et à mettre le système de révision en ligne.
- Tout d'abord, ajustez les paramètres Tomcat pour exécuter Gerrit en tant que service
- Allez à tomcat / bin et éditez service.bat
Les options jvm sont définies séparément pour le service nt. Vous devez modifier votre fichier service.bat avant d'installer le service nt. Ce fichier réside dans le répertoire tomcat / bin avec les autres scripts startup.bat et shutdown. Faites défiler jusqu'à la section suivante:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \--JvmMs 128 \--JvmMx 256
Modifiez cette ligne pour qu'elle corresponde à ce qui suit:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \++JvmOptions="-XX:MaxPermSize=256m" \++JvmOptions="-XX:+CMSClassUnloadingEnabled" \++JvmOptions="-XX:+CMSPermGenSweepingEnabled" \--JvmMs 512 \--JvmMx 1024
La mémoire initiale, jvmMs, doit certainement être définie sur 512 Mo pour gerrit et étendue, JvmMx, sur 1024 Mo.
Vous êtes maintenant prêt à déployer gerrit en tant que service sous Windows. Exécutez simplement ce qui suit:
C:\your_path\gitserver\gerrit\tomcat\bin>service install gerrit
Installing the service 'gerrit' ...
Using CATALINA_HOME: "C:\your_path\gitserver\gerrit\tomcat"
Using CATALINA_BASE: "C:\your_path\gitserver\gerrit\tomcat"
Using JAVA_HOME: "C:\Program Files\Java\jdk1.6.0_31"
Using JVM: "C:\Program Files\Java\jdk1.6.0_31\jre\bin\server\jvm.dl
l"
The service 'gerrit' has been installed.
C:\your_path\gitserver\gerrit\tomcat\bin>
Allez à votre gestionnaire de serveur et ouvrez le nœud Services. Ouvrez les propriétés de Gerrit et assurez-vous de définir le type de démarrage sur Automatique:
Boîte de dialogue Appliquer et fermer.
OK ... Avons-nous fini? Malheureusement non, il ne vous reste que quelques étapes. Accrochez-vous.
Vous êtes maintenant prêt à démarrer le service. Sélectionnez simplement le service Gerrit et cliquez sur l'option Démarrer à gauche.
Consultez les journaux sous le répertoire tomcat / log. Assurez-vous qu'il n'y a pas d'erreurs en suspens. Si vous avez des problèmes, vous pouvez poser des questions ici ou sur la liste de diffusion gerrit:
http://groups.google.com/group/repo-discuss
Vous devriez pouvoir accéder à votre navigateur et saisir l'url de votre serveur pour afficher Gerrit maintenant: http://review.corporation.com:8080
Vous serez invité à saisir votre clé publique ssh. Cela n'est nécessaire que si vous avez l'intention d'utiliser Git / Gerrit via ssh au lieu de HTTP. Je suis allé de l'avant et je l'ai installé parce que c'est une bonne option.
Configurer SSH
Générez une clé ssh pour l'accès:
Administrateur @ SERVER ~ / test $ ssh-keygen -t rsa
Enregistrez un nouveau compte dans Gerrit via l'interface Web avec l'adresse e-mail de votre choix. Le premier utilisateur à se connecter et à enregistrer un compte sera automatiquement placé dans le groupe Administrateurs entièrement privilégié, ce qui permettra la gestion du serveur sur le Web et via SSH. Les utilisateurs suivants seront automatiquement enregistrés comme utilisateurs non privilégiés.
Une fois connecté en tant qu'utilisateur, vous trouverez un petit assistant pour vous aider à démarrer. L'assistant vous aide à remplir:
- Nom réel (nom visible dans Gerrit)
- Enregistrez votre email (il doit être confirmé plus tard)
- Sélectionnez un nom d'utilisateur avec lequel communiquer avec Gerrit via ssh + git
Le serveur vous demandera une clé publique RSA. C'est la clé que nous avons générée ci-dessus, et il est temps de s'assurer que Gerrit connaît notre nouvelle clé et peut nous identifier par elle.
utilisateur @ hôte: ~ $ cat .ssh / id_rsa.pub
Configurez l'accès HTTP pour les utilisateurs enregistrés uniquement, sauf si votre projet est ouvert au public:
Générer un mot de passe HTTP
Bien que vous ayez configuré votre propre connexion, vous devez toujours générer un mot de passe pour gerrit au serveur via http / https. Allez à votre configuration -> Configuration du mot de passe HTTP et cliquez sur «Générer le mot de passe». Utilisez ce mot de passe pour toutes les opérations git sur http (s).
Nous pouvons maintenant tester Gerrit via HTTP. Vous devriez être en mesure de cloner tous les projets existants dans le référentiel que vous avez référencé dans la configuration Gerrit.
Test avec opération de clonage
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
Testez votre compte ssh
Administrator@SERVER~/test
$ ssh jhuntley@localhost -p 29418
**** Welcome to Gerrit Code Review ****
Hi Jason Huntley, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://jhuntley@review.corporation.com:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
Clonez un projet depuis Gerrit via SSH:
Administrator@SERVER~/test
$ git clone ssh://jhuntley@127.0.0.1:29418/sandbox
Cloning into 'sandbox'...
remote: Counting objects: 183, done
remote: Finding sources: 100% (183/183)
remote: Total 183 (delta 0), reused 0 (delta 0)Receiving objects: 50% (92/183)
Receiving objects: 52% (96/183)
Receiving objects: 100% (183/183), 23.76 KiB, done.
Si vous n'avez pas abandonné maintenant, vous pouvez vous détendre, vous devriez vous retrouver avec un système de révision de code Gerrit fonctionnel hébergé par un serveur Windows 2008 :) Ce n'est pas aussi courant qu'une configuration et comme vous pouvez le voir, cela garantit tout le supplément pas. Cependant, certains d'entre nous ont des ressources limitées et ne peuvent utiliser que ce qui est fourni. J'espère que ce tutoriel aidera ceux qui cherchent à exécuter Gerrit dans un environnement similaire. Vous devriez maintenant être prêt à commencer à utiliser Gerrit! Prendre plaisir!
Pour plus d'informations sur l'utilisation de Gerrit, veuillez consulter le guide d'utilisation du projet Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Merci Shawn Pierce pour l'aide sur IRC!
Pour référence future
Le didacticiel a été converti en documentation pour le projet Gerrit. Pour ceux qui sont intéressés et ont besoin d'une bonne référence. Veuillez consulter la demande de patch ici:
https://gerrit-review.googlesource.com/#/c/37072