Outils pour utilisateurs

Outils du site


admin:services:gitlab

Ceci est une ancienne révision du document !


GitLab

GitLab est installé sur Octogon et est disponible à l'adresse https://gitlab.federez.net. Il est utilisé pour les projets de FedeRez et ceux des associations membres.

Installation

Il a été décidé d'utiliser l'installateur omnibus.

On a donc la vm octogon, 2 gigas de ram et 1 coeurs sous debian 8, puis on suit le tuto gitlab.

Installation de gitlab avec omnibus sur octogon

sudo apt-get install curl openssh-server ca-certificates postfix

Puis on install les sources gitlab :

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

Enfin,

sudo gitlab-ctl reconfigure

Puis on va sur octogon.crans.org, et on setup le mdp admin gitlab, et c'est tout !

Migration des données depuis baldrick

Sur baldrick, on avait un gitlab avec mysql et sources. On passe de mysql à postgresql en passant par ce tuto. Les 2 gitlab sont mis à la meme version, la migration se passe bien.

https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/mysql_to_postgresql.md

Ajout de l'auth ldap

On édite les lignes qui vont bien dans le fichier /etc/gitlab/gitlab.rb

http://doc.gitlab.com/ee/integration/ldap.html#enabling-ldap-sign-in-for-existing-gitlab-users

Notamment le serveur ldap, le mot de passe, la base de recherche.

...
production:
  ...
  ldap:
    enabled: true
    servers:
      main:
        label: 'LDAP'

        host: 'ldap.federez.net'
        port: 389
        uid: 'uid'
        method: 'tls'
        bind_dn: 'cn=gitlab,ou=service-users,dc=federez,dc=net'
        password: 'secret'

        active_directory: false
        block_auto_created_users: false
        base: 'ou=users,dc=federez,dc=net' 
... 

Et on lance

gitlab-ctl reconfigure

Https

Dans un premier temps, on utilise le serveur nginx build-in de l'omnibus. Cela dit il est désactivable si on veut le faire à la main suivant le tuto : http://doc.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server

Enfin, on active le https. Pour cela, on suit le tuto de Zertrin pour mettre LE et le script d'automatisation.

http://doc.gitlab.com/omnibus/settings/nginx.html#enable-https

En gros, dans /etc/gitlab/gitlab.rb :

# note the 'https' below
external_url "https://gitlab.federez.net"

Puis :

sudo mkdir -p /etc/gitlab/ssl
sudo chmod 700 /etc/gitlab/ssl

Attention, ne pas faire ce que dis la doc :

sudo cp gitlab.example.com.key gitlab.example.com.crt /etc/gitlab/ssl/

Au lieu de bourinnement cp les certifs comme ces gorets le suggèrent, je fais des liens symboliques.

Enfin on reconfigure et c'est bon !

Ancien setup avec les sources (obsolète !)

Méthode

Il y a deux méthodes principales d'installation de GitLab : par les sources et par Omnibus. Cette dernière méthode imposant le serveur web et le serveur de base de données à utiliser, c'est l'installation par sources qui a été retenue.

Le guide suivi est https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md. Les différences sont dans les sections suivantes.

Ruby

Contrairement à ce que suggère le guide, Ruby a été installé via les dépôts (version 2.1.5 dans Jessie) :

apt-get install ruby ruby-dev

Base de données

MySQL a été choisi plutôt que PosgreSQL. Les instructions sont dans le guide suivant : https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md.

Serveur web

On utilise Apache au lieu de Nginx.

/etc/apache2/sites-available/gitlab
<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

Les utilisateurs sont authentifiés avec le serveur LDAP de FedeRez. On configure donc GitLab pour s'en servir :

/home/git/gitlab/config/gitlab.yml
...
production:
  ...
  ldap:
    enabled: true
    servers:
      main:
        label: 'LDAP'

        host: 'ldap.federez.net'
        port: 389
        uid: 'uid'
        method: 'tls'
        bind_dn: 'cn=gitlab,ou=service-users,dc=federez,dc=net'
        password: 'secret'

        active_directory: false
        block_auto_created_users: false
        base: 'ou=users,dc=federez,dc=net' 
... 

Mise à jour

Pour mettre à jour GitLab, lire le changelog, mettre à jour les dépôts dans /home/git et relancer les services. Le mieux est de suivre ce tuto : http://doc.gitlab.com/ce/update/patch_versions.html

Suivi de la taille du dossier /home/git :

  • 2015-06-11 : 752 Mio (7.10.4 → 7.11.4)

Bot irc

Kgb-bot et kgb client sont en place. Leur configuration, simple à comprendre, se trouve dans /etc/kgb-bot et /etc/kgb-client.

Pour faire appel à kgb, il faut modifier le post-receive dans un projet gitlab (dossier repositories).

Tout se trouve dans /home/git/gitlab/repositories/kgb-utils

admin/services/gitlab.1459881541.txt.gz · Dernière modification : 2016/04/05 20:39 de gabriel.detraz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki