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/26 08:28] madkoredmine [Date inconnue] (Version actuelle) – modification externe (Date inconnue) 127.0.0.1
Ligne 2: Ligne 2:
  
  
-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 58: Ligne 69:
  
 Une fois cette phase terminée, il faut installer le serveur thin. 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>
  
  • redmine.1377505681.txt.gz
  • Dernière modification : 2013/08/26 08:27
  • (modification externe)