Outils pour utilisateurs

Outils du site


gestion_configuration:gitlab:main

Ceci est une ancienne révision du document !


Installation

Installation Omnibus sur Ubuntu 14.04. Les instructions sont prises du site de GitLab.

  1. sudo apt-get install curl openssh-server ca-certificates (pas de postfix)
  2. curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  3. sudo apt-get install gitlab-ce
  4. sudo gitlab-ctl reconfigure

Configuration

Changer le timezone

Dans sudo nano /etc/gitlab/gitlab.rb :

gitlab_rails['time_zone'] = 'America/New_York'

Ensuite:

$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl restart

Changer le port

Étape par étape:

  1. $ sudo -e /etc/gitlab/gitlab.rb
  2. Changer le external_url de yourdomain.com à yourdomain.com:9999, 9999 étant le port voulu.
  3. $ sudo gitlab-ctl reconfigure

Si le port est changé et que d'autres sites sont utilisés avec Apache sur le port 80, on peut ajouter un virtual host pour cacher le port.

  1. Créer un fichier /etc/apache2/sites-available/gitlab.conf:
    <VirtualHost *:80>
            ServerName gitlab.sgariepy.com
            ServerAdmin webmaster@localhost
    
            ProxyPreserveHost On
            ProxyPass / http://localhost:81/
            ProxyPassreverse / http://localhost:81/
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

    Le fichier de configuration d'Apache considère que GitLab est configuré sur le port 81.

  2. Activer les modules Apache proxy et proxy_http ($ a2enmod <module>).
  3. Redémarrer Apache.

Source

Autres fichiers de configuration

  • /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
  • Le serveur web : /var/opt/gitlab/nginx/conf/

Activer le HTTPS

Pour activer le HTTPS, voir la documentation de GitLab à ce sujet.

Installer la chaîne SSL

GitLab Omnibus prend les certificats dans /etc/gitlab/ssl par défaut. Pour que Nginx donne la chaîne de certificats, il faut que le fichier CRT du domaine offre aussi les autres certificats.

Le format est

-----BEGIN CERTIFICATE-----
Le certificat du serveur
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Intermediate Certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Root Certificate
-----END CERTIFICATE-----

Ayant son certificat gitlab.domain.tld.crt, le certificat de l'intermédiaire intermediate.crt et de la racine root.crt, on peut faire:

$ cat intermedate.crt root.crt > bundle.crt
$ cat gitlab.domain.tld.crt bundle.crt > gitlab.domain.tld.crt > gitlab.domain.tld.chained.crt

Une fois fait, il faut redémarrer GitLab avec gitlab-ctl restart.

Pour tester la connexion SSL : SSL Server Test.

Sources

Opérations

gitlab-ctl restart
gitlab-ctl reconfigure

Sauvegardes

Les sauvegardes sont exécutées par la commande gitlab-rake gitlab:backup:create. Avec la configuration par défaut, le répertoire où se trouveront les sauvegardes est /var/opt/gitlab/backups.

Fichiers de configurations:

  • /etc/gitlab/gitlab.rb
  • /etc/gitlab/gitlab-secrets.json

Source

Répertoires de GitLab

  • Fichiers attachments : /var/opt/gitlab/gitlab-rails/uploads

GitLab servi par Apache

  1. Configurer GitLab pour ne pas utiliser nginx:
    external_url "https://gitlab.exemple.com/"
    nginx['enable'] = false
    web_server['external_users'] = ['www-data']
  2. Exécuter gitlab-ctl reconfigure.
  3. Ajouter l'utilisateur Apache au groupe de GitLab et de Git :
    # usermod -a -G gitlab-www www-data
    # usermod -a -G git www-data
  4. Si ce n'est pas déjà fait, activer les modules Apache:
    # a2enmod rewrite
    # a2enmod ssl
    # a2enmod proxy
    # a2enmod proxy_http
    # a2enmod headers

Source

GitLab CI

  • Modifier le fichier /etc/gitlab/gitlab.rb et décommenter la ligne # ci_external_url 'http://ci.example.com'. Changer l'URL.
  • Faire gitlab-ctl reconfigure.

Informations

Quand le runner est en mode Shell, les builds sont faits dans /home/gitlab-runner/builds par l'utilisateur gitlab-runner.

Runners

La procédure officielle : Install using GitLab's repository for Debian/Ubuntu/CentOS/RedHat.

  1. Installer Docker si ce n'est pas déjà fait : # curl -sSL https://get.docker.com/ | sh
    If you would like to use Docker as a non-root user, you should now consider
    adding your user to the "docker" group with something like:
    
      sudo usermod -aG docker your-user
  2. Ensuite installer le Multi-Runner : sudo apt-get install gitlab-ci-multi-runner
    1. On peut trouver le token dans GitLab CI, ex : https://gitlab.example.com/ci/admin/runners.

Utilisation de GitLab

Wiki

On peut utiliser MathMagic pour les formules mathématiques à inclure dans la documentation. MathMagic Lite convient pour une utilisation personnelle et pour créer les formules. Suffit de créer la formule, de changer les options d'exportation à la copie à 150% et faire Ctrl+C. Coller directement dans GitLab. Ne pas utiliser la copie PNG, simplement la copie normale.

Restaurer / Migrer

Cette procédure explique comment restaurer ou migrer une installation de GitLab. On prend pour acquis que le backup a été fait sur le serveur source et qu'il sera migré sur un serveur cible. On parle de restauration quand le serveur source est le même que le serveur cible.

Sur le serveur cible, on a par exemple, un fichier backup 1393513186_gitlab_backup.tar avec le timestamp 1393513186 :

  1. Installer GitLab et s'assurer qu'il fonctionne.
  2. Prendre le backup de GitLab et le placer dans le répertoire /var/opt/gitlab/backups.
  3. Changer le mode du fichier : # chmod -R 775 /var/opt/gitlab/backups/1393513186_gitlab_backup.tar.
  4. Démarrer GitLab s'il n'est pas déjà démarré: # gitlab-ctl start.
    1. Arrêter Unicorn : # gitlab-ctl stop unicorn.
    2. Arrêter Sidekiq : # gitlab-ctl stop sidekiq.
  5. Restaurer: # gitlab-rake gitlab:backup:restore BACKUP=1393513186.
  6. Redémarrer tous les services : # gitlab-ctl start.

Backup restore

Configuration derrière un reverse-proxy

Supporting proxied SSL, voir aussi Cannot clone git repo using GitLab CI runners token after update to 8.12.0.

Après avoir vu que le GitLab-CI ne fonctionnait pas, il semble qu'il faut quand même activer le nginx quand on est derrière un reverse-proxy.

nginx['enable'] = true
nginx['listen_port'] = 8082  # quelconque port inutilisé.
nginx['listen_https'] = false
gestion_configuration/gitlab/main.1643758967.txt.gz · Dernière modification : 2022/02/02 00:42 de 127.0.0.1