Ceci est une ancienne révision du document !
Table des matières
Gitlab de federez
Utilité
Le but est de remplacer la forge, qui n'a pas eu le succès attendu.
Le but est toujours le même, et double :
- Permettre le partage de projets au sein de federez développés en interne, mais transposables ailleurs,
- Permettre et promouvoir la création de projets communs entre plusieurs assos, via un gitlab commun.
On a donc choisi un outil largement utilisé dans les associations de federez, contrairement à la forge.
Installation
Il se situe sur Baldrick, VM jessie hébergée au Cr@ns.
Pour l'installation, nous avons choisi de ne pas utiliser l'installateur omnibus, mais de suivre l'installation pas à pas à partir des sources git.
Cependant, nous avons utilisé la version packagée Jessie de ruby, à savoir ruby 2.1.5
Cela nous a permis d'utiliser mysql et apache, à la place de postgres et de nginx par exemple.
Nous avons donc suivi ce tuto : https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md
A la section 2 ruby, baldrick étant sous jessie, nous avons juste utilisé la version d'apt, soit ruby 2.1.5
A la section 4, nous avons utilisé les mêmes commandes, mais avec mysql.
A la section 6, il faut télécharger l'archive gitlab dans /home/git, puis suivre les différentes étapes, sans problèmes.
Apache
A la section 7, on a utilisé apache. Ca a consisté en une installation d'apache, puis l'écriture d'un sites pour gitlab, qui était écrit pour apache 2.2, qu'on a adapté en 2.4.
Voici les parties importantes du sites :
Définir ici 2 virtualhosts "normaux" sur port 80 et 443 Ensuite : <VirtualHost *:443> ServerName gitlab.federez.net ServerSignature Off ProxyPreserveHost On # Ensure that encoded slashes are not decoded but left in their encoded state. # http://doc.gitlab.com/ce/api/projects.html#get-single-project AllowEncodedSlashes NoDecode <Location /> Order deny,allow Allow from all ProxyPassReverse https://127.0.0.1:8080 ProxyPassReverse gitlab.federez.net </Location> #apache equivalent of nginx try files # http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files # http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab RewriteEngine on RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA] RequestHeader set X_FORWARDED_PROTO 'https' # needed for downloading attachments DocumentRoot /home/git/gitlab/public #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up. ErrorDocument 404 /404.html ErrorDocument 422 /422.html ErrorDocument 500 /500.html ErrorDocument 503 /deploy.html </VirtualHost>
LDAP
Pour terminer, on interface l'identification avec le ldap federez. C'est relativement simple. Dans la configuration gitlab qui se situe dans /home/git/gitlab/config/gitlab.yml, il faut modifier la partie 2, auth, passer ldap enabled à true, puis :
label: 'LDAP' host: 'ldap.federez.net' port: 389 uid: 'uid' method: 'tls' # "tls" or "ssl" or "plain" bind_dn: 'cn=gitlab,ou=service-users,dc=federez,dc=net' password: vous vous attendez pas à le trouver non? active_directory: false block_auto_created_users: false base: 'ou=users,dc=federez,dc=net'
Et c'est tout. Ici, la requête se fait via un user, de type service-users, nommé gitlab, via lequel se fait la consultation read-only de la base. (sur hexagon)
Installé entre le 14 et le 15 mai 2015 par toadjaune et Chirac.