Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
redmine [2013/08/25 16:18] – ancienne révision (2013/08/25 18:15) restaurée madkoredmine [Date inconnue] (Version actuelle) – modification externe (Date inconnue) 127.0.0.1
Ligne 1: Ligne 1:
-Redmine+====== Redmine ======
  
  
-Récuperer les sources sur rubyforge+===== Fonctionnement général ===== 
 + 
 + 
 +Redmine met à jour les ACL et dépots GIT via un accès au dépôt gitolite. La clef publique SSH redmine doit être une clef d'admin sur le dépôt gitolite. Attention à ce que la connexion ssh fonctionne (known host etc), y compris vers localhost, 127.0.0.1 ou ::1 (c'est plus sûr, voir /var/log/secure en cas de soucis). 
 + 
 + 
 +Quand redmine est utilisé pour ajouter, vérouiller ou dévérouiller une clef publique SSH, il utilise le dépôt redmine pour faire la configuration adéquate. Un hook d'update s'occupe de mettre à jour le authorized_keys de l'utilisateur git. Ceci permet l'accès au dépôts git pour les utilisateurs. 
 + 
 + 
 +Un autre hook prévient redmine d'un changement sur le dépôt git. 
 + 
 +===== Installation redmine =====
  
  
Ligne 25: Ligne 36:
  
 <code> <code>
-yum install ruby-devel+yum install ruby-devel libxml2-devel gcc gcc-c++ make automake autoconf 
 +</code> 
 + 
 + 
 +Récupérer les sources de redmine depuis rubyforge. Les décompresser dans /opt/redmine. 
 + 
 + 
 +Créer un compte pour redmine: 
 + 
 + 
 +<code> 
 +useradd -d /opt/redmine redmine -s /sbin/nologin 
 +</code> 
 + 
 + 
 +Pour simplifier faire un lien symbolique pour éviter le numero de version 
 + 
 + 
 +<code> 
 +ln -sf /opt/redmine/redmine-2.3.2 /opt/redmine/redmine 
 +</code> 
 + 
 + 
 +Lancer l'installation automatique des gems requis par redmine 
 + 
 + 
 +<code> 
 +cd /opt/redmine/redmine 
 +bundle install 
 +</code> 
 + 
 + 
 +Une fois cette phase terminée, il faut installer le serveur thin. 
 + 
 + 
 +===== Installation thin ===== 
 + 
 + 
 +Dans le fichier /opt/redmine/redmine/Gemfile, ajouter dans le bloc listant les gems, la ligne: 
 + 
 + 
 +<code> 
 +gem "thin" 
 +</code> 
 + 
 + 
 +Puis relancer: 
 + 
 + 
 +<code> 
 +bundle install 
 +</code> 
 + 
 + 
 +Thin sera ainsi installé. 
 + 
 + 
 +===== Plugins redmine-gitolite ===== 
 + 
 + 
 +Se placer dans le repertoire des plugins, et cloner le dépot suivant: 
 + 
 + 
 +<code> 
 +cd /opt/redmine/redmine/plugins 
 +git clone https://github.com/pibako/redmine-gitolite.git 
 +cd redmine-gitolite 
 +git checkout -t origin/redmine2 
 +cd .. 
 +mv gitolite-redmine gitolite_redmine 
 +cd .. 
 +RAILS_ENV=production rake redmine:plugins:migrate 
 +</code> 
 + 
 + 
 +Il faut renommer le repertoire du plugins car sinon: 
 + 
 + 
 +<file> 
 +$ RAILS_ENV=production rake db:migrate_plugins 
 +** Invoke db:migrate_plugins (first_time) 
 +** Invoke redmine:plugins:migrate (first_time) 
 +** Invoke environment (first_time) 
 +** Execute environment 
 +rake aborted! 
 +uninitialized constant GitoliteObserver 
 +</file> 
 + 
 + 
 +Le plugins redmine-gitolite devrait être visible dans la page d'administration des plugins dans redmine. Il faut lui configurer surtout le repertoire contenant les dépôts git. 
 + 
 +===== Installation gitolite ===== 
 + 
 + 
 +Création d'un utilisateur git dont le home est /srv/git. 
 + 
 + 
 +Modification des règles par défaut pour les contextes selinux sur ce chemin. Il faut modifier le fichier /etc/selinux/targeted/contexts/files/file_contexts.homedirs pour ajouter: 
 + 
 + 
 +<file> 
 +/srv/git              system_u:object_r:user_home_t:s0 
 +/srv/git/.+       system_u:object_r:user_home_t:s0 
 +/srv/git/\.ssh(/.*)?      system_u:object_r:ssh_home_t:s0 
 +</file> 
 + 
 + 
 +Ensuite lancer la commande: 
 + 
 + 
 +<code> 
 +[root@srvgit] # restorecon -Rv /srv/git 
 +</code> 
 + 
 + 
 +Pour que les nouveaux contextes soient positionnés. Sinon SELinux bloquera l'accès aux clefs SSH autorisées. 
 + 
 + 
 +==== Récupération de gitolite ==== 
 + 
 + 
 +En tout qu'utilisateur git: 
 + 
 + 
 +<code> 
 +[git@srvgit] $ git clone https://github.com/sitaramc/gitolite.git 
 +</code> 
 + 
 + 
 +S'assurer que $HOMEDIR/bin est bien dans le $PATH. 
 + 
 + 
 +<code> 
 +[git@srvgit] $ gitolite/install -ln 
 +</code> 
 + 
 + 
 +==== Autoriser l'utilisateur redmine à gérer gitolite ==== 
 + 
 + 
 +Il faut disposer de la clef ssh publique de l'utilisateur redmine. 
 + 
 + 
 +<code> 
 +[git@srvgit] $ gitolite setup -pk /chemin/vers/redmine.pub 
 +</code> 
 +==== Gestion des clefs ssh par gitolite ==== 
 + 
 + 
 +Il faut ajouter un hook dans gitolite pour gérer les clefs ssh dans le .ssh/authorized_keys 
 + 
 + 
 +<code> 
 +[git@srvgit] $ cd /tmp 
 +[git@srvgit] $ git clone git://github.com/pibako/redmine-gitolite.git 
 +[git@srvgit] $ cd redmine-gitolite 
 +[git@srvgit] $ git checkout -t origin/redmine2 
 +[git@srvgit] $ cp contrib/hooks/post-receive-redmine_gitolite ~/.gitolite/hooks/common/post-receive 
 +[git@srvgit] $ chmod +x ~/.gitolite/hooks/common/post-receive 
 +</code> 
 + 
 + 
 +Il faut éditer ce fichier post-receive pour ajouter l'url du redmine, et la clef pour l'accès à son API. 
 + 
 + 
 +Il faut ensuite editer le gitolite.rc pour exécuter ce hook, en ajoutant "hooks%%\%%.redmine_gitolite%%\%%..*" dans la variable GIT_CONFIG_KEYS. 
 + 
 + 
 +Puis lancer: 
 + 
 + 
 +<code> 
 +[git@srvgit] $ gitolite setup 
 +</code> 
 + 
 + 
 +==== Tester l'accès gitolite ==== 
 + 
 + 
 +Depuis le compte redmine, l'accès au shell gitolite devrait fonctionner (sans mot de passe ssh bien sûr): 
 + 
 + 
 +<code> 
 +[redmine@srvgit] $ ssh -T git@localhost 
 +</code> 
 + 
 + 
 +Exemple: 
 + 
 + 
 +<code> 
 +hello redmine, this is git@supervision running gitolite3 v3.5.2-3-g2515992 on git 1.7.1 
 + 
 + R W    gitolite-admin 
 + R W    testing
 </code> </code>
  
  • redmine.1377447526.txt.gz
  • Dernière modification : 2013/08/25 16:18
  • de madko