Ceci est une ancienne révision du document !
Références :
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
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
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.
$ 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).
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.
$ 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