Outils pour utilisateurs

Outils du site


computing:network_system:installation_d_un_serveur_gitolite_redmine

Ceci est une ancienne révision du document !


Références :

Installation des paquets

Avant tout, installez le serveur web thin, l'application gitolite pour l'hébergement du serveur git et enfin redmine pour la gestion de projets.

$ sudo apt-get install gitolite redmine thin

Installation du plugin

Pour que redmine et gitolite puisse discuter, il faut ajouter un plugin à redmine.

Clonez le dépôt du plugin redmine-gitolite.

$ cd /usr/share/redmine/vendor/plugins/
$ sudo git clone git://github.com/gdoffe/redmine-gitolite.git

Redmine et le plugin étant développés en ruby, installez les dépendances ruby manquantes

$ sudo gem install net-ssh lockfile ruby-openid
$ sudo gem install gitolite

Configuration

Lancez l'initialisation de la base de données de redmine et de ses plugins.

sudo RAILS_ENV=production rake db:migrate
sudo RAILS_ENV=production rake db:migrate_plugins
sudo RAILS_ENV=production rake redmine:load_default_data

Configurez le serveur web thin pour qu'il écoute les requêtes de redmine.

$ sudo thin config -C /etc/thin/redmine.yml -c /usr/share/redmine --servers 1 -e production --user redmine --group www-data --port 8080

Créer un répertoire où le plugin ira cloner les repositories git.

$ sudo mkdir /var/cache/redmine/repositories

Créer un utilisateur exécutant redmine (en l'occurence il s'appellera redmine) et générer ses clés SSH.

$ sudo addgroup redmine
$ sudo adduser --disabled-password --system --ingroup redmine --home /usr/share/redmine/ redmine
$ sudo chown redmine.redmine /usr/share/redmine -Rf
$ sudo chown redmine.www-data /var/cache/redmine/ -Rf
$ sudo chown redmine.www-data /var/log/redmine/ -Rf
$ sudo su - redmine
$ ssh-keygen -t rsa

Copier ensuite cette clé vers un emplacement temporaire.

$ cp ~/.ssh/id_rsa.pub /tmp/redmine.pub

Créer le répertoire de logs pour le serveur web.

$ mkdir ~/log

Initialiser les identifiants git, nom et email.

$ git config --global user.name "Redmine"
$ git config --global user.email ""

Créer un utilisateur spécial gitolite qui sera utilisé par gitolite pour héberger les repositories.

$ exit
$ sudo addgroup gitolite
$ sudo adduser --disabled-password --home /home/gitolite --ingroup gitolite gitolite

Comme l'application gitolite utilise le protocole SSH pour accéder aux repositories git, genérer vos clés SSH pour être administrateur de l'application gitolite.

Il s'agit ici du compte utilisateur Linux qui sera le premier administrateur de votre serveur gitolite. Notez le soigneusement, nous en aurons besoin plus tard.

$ ssh-keygen -t rsa
$ cp ~/.ssh/id_rsa.pub /tmp/<mon_login>.pub

Maintenant loguez vous en tant que utilisateur gitolite pour lancer la post installation de l'application gitolite.

$ sudo su - gitolite
$ gl-setup /tmp/<mon_login>.pub

Copier le hook git pour garder les projets redmine toujours synchronisés avec les repositories git.

$ cp /usr/share/redmine/vendor/plugins/redmine-gitolite/contrib/hooks/post-receive-redmine_gitolite .gitolite/hooks/common/post-receive
$ chmod +x .gitolite/hooks/common/post-receive

Ensuite éditez le hook .gitolite/hooks/common/post-receive pour affecter les variables DEFAULT_REDMINE_KEY et DEFAULT_REDMINE_SERVER aux même valeurs que celles saisies dans la configuration de redmine. A savoir respectivement API Key et Host name and path (qui devrait ressembler à http://hostname:8080).

Il faut que Enable WS for repository management soit coché pour pouvoir générer l'API key.

Le login/mot de passe par défaut pour l'administration de redmine est admin/admin.

Supprimez tous le flag empêchant la propagation des hooks et relancer le process de post-installation pour propager notre hook.

$ rm `find repositories/ -name gitolite-hooked -print`
$ gl-setup

Revenir au compte utilisateur administrant gitolite pour en modifier la configuration.

$ exit
Cloner le repo de configuration de **gitolite**
$ cd /tmp
$ git clone gitolite@localhost:gitolite-admin
$ cd gitolite-admin/

Copier la clé publique de l'utilisateur exécutant redmine dans le projet gitolite-admin. Ajouter le nom de cet utilisateur au fichier de configuration des accès aux dépôts.

Il est impératif que cette clé soit nommée redmine.pub et donc que l'utilisateur exécutant redmine soit nommé redmine dans le fichier de configuration d'accès aux dépôts conf/gitolite.conf.

$ cp /tmp/redmine.pub keydir/
$ git add keydir/redmine.pub
$ vim conf/gitolite.conf

Le fichier conf/gitolite.conf :

repo    gitolite-admin
        RW+     =   admdev redmine

repo    testing
        RW+     =   @all

Initialiser les identifiants git, nom et email.

$ git config --global user.name "My Name"
$ git config --global user.email "myemail@example.com"

Il ne reste plus qu'à commiter les modifications et à les pusher vers le serveur.

$ git commit -a -m "Add redmine user public key. Add RW access to gitolite-admin repo for redmine user."
$ git push

Avec l'utilisateur exécutant redmine, lancer une connexion SSH vers le serveur gitolite pour l'ajouter aux hôtes SSH connus.

$ sudo su - redmine
$ ssh gitolite@localhost info
$ exit

Si besoin rechanger les droits sur le répertoire temporaire du serveur redmine.

sudo chown redmine.redmine /usr/share/redmine -Rf

Relancer le serveur web et c'est terminé.

$ sudo service thin restart
computing/network_system/installation_d_un_serveur_gitolite_redmine.1412941065.txt.gz · Dernière modification: 2014/10/10 13:37 par gdo