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

On utilise l'intégration native Let's Encrypt de GitLab : https://docs.gitlab.com/omnibus/settings/ssl.html#lets-encrypt-integration

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

# note the 'https' below
external_url "https://gitlab.federez.net"
letsencrypt['enable'] = true

Enfin on reconfigure et c'est bon !

Container registry

On utilise le container registry docker intégré à GitLab.

L'activer est très simple :

Dans /etc/gitlab/gitlab.rb, avec l'intégration Let's Encrypt déjà activée :

registry_external_url 'https://docker.federez.net'

On reconfigure, et c'est bon !

Mettre à jour

Rien de plus simple : sudo apt-get upgrade …

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 /etc/kgb/kgb-bot.conf

# vim: filetype=yaml
---
soap:
  #server_addr: 0.0.0.0
  server_addr: 127.0.0.1
  server_port: 5391
  service_name: KGB
queue_limit: 150
log_file: "/var/log/kgb-bot.log"
include: "/etc/kgb-bot/kgb.conf.d"
repositories:
  saclay:
    password: plop
  admin:
    password: plop
networks:
  rezosup-saclay:
    nick: DGSI-Paris-Saclay
    ircname: DGSI-Paris-Saclay
    username: dgsi-paris-saclay
    password: ~
    nickserv_password: ~
    server: irc.ensc.rezosup.org
    port: 6667
  rezosup-federez:
    nick: DGSI-FedeRez
    ircname: DGSI-FedeRez
    username: dgsi-federez
    password: ~
    nickserv_password: ~
    server: irc.ensc.rezosup.org
    port: 6667
channels:
  - name: '#saclay'
    network: rezosup-saclay
    repos:
      - saclay
  - name: '#ares'
    network: rezosup-saclay
    repos:
      - saclay
  - name: '#federez-admin'
    network: rezosup-federez
    repos:
      - admin
pid_dir: /var/run/kgb-bot
min_protocol_ver: 1

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

Les scripts sont dans /var/opt/gitlab-scripts-custom et linkés par liens symboliques.

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)
admin/services/gitlab.1595441956.txt.gz · Dernière modification : 2020/07/22 20:19 de toadjaune

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki