Outils pour utilisateurs

Outils du site


admin:services:gitlab

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édentesRévision précédente
Prochaine révision
Révision précédente
admin:services:gitlab [2015/05/16 10:53] – Introduction plus courte bertrand.bonnefoy-claudetadmin:services:gitlab [2020/07/27 19:42] (Version actuelle) – Passage du container registry sur un disque séparé toadjaune
Ligne 1: Ligne 1:
-====== GitLab de FedeRez ======+====== GitLab ======
  
-GitLab est installé sur [[admin:serveurs:baldrick|Baldrick]].  Il est utilisé pour les projets de FedeRez et ceux des associations membres.+GitLab est installé sur [[admin:serveurs:octogon|Octogon]] et est disponible à l'adresse https://gitlab.federez.net.  Il est utilisé pour les projets de FedeRez et ceux des associations membres.
  
-==== Installation ====+===== Installation =====
  
-=== Introduction ===+Il a été décidé d'utiliser l'installateur omnibus.
  
-Pour l'installationnous avons choisi de ne pas utiliser l'installateur omnibusmais de suivre l'installation pas à pas à partir des sources git.+On a donc la vm octogon2 gigas de ram et 1 coeurs sous debian 8puis on suit le tuto gitlab.
  
-Cependant, nous avons utilisé la version packagée Jessie de ruby, à savoir ruby 2.1.5+==== Installation de gitlab avec omnibus sur octogon ====
  
-Cela nous a permis d'utiliser mysql et apache, à la place de postgres et de nginx par exemple.+<code> 
 +sudo apt-get install curl openssh-server ca-certificates postfix 
 +</code>
  
-Nous avons donc suivi ce tuto https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md+Puis on install les sources gitlab 
  
-=== Détail de l'installation ===+<code> 
 +curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 
 +sudo apt-get install gitlab-ce 
 +</code>
  
-Section 1il s'agit d'installer l'ensemble des paquets nécessaires, sans problème.+Enfin,
  
-A la section 2 ruby, baldrick étant sous jessie, nous avons juste utilisé la version d'apt, soit ruby 2.1.5, au lieu de recompiler comme le tuto le présente.+<code> 
 +sudo gitlab-ctl reconfigure 
 +</code>
  
-Section 3, pas de problèmes non plus.+Puis on va sur octogon.crans.org, et on setup le mdp admin gitlab, et c'est tout !
  
-A la section 4, nous avons utilisé les mêmes commandes, mais avec mysql. +==== Migration des données depuis baldrick ====
  
-La suite des commandes avec mysql est ici https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md+Sur baldrick, on avait un gitlab avec mysql et sourcesOn passe de mysql à postgresql en passant par ce tuto. Les 2 gitlab sont mis à la meme version, la migration se passe bien.
  
-A la section 6, il faut télécharger l'archive gitlab dans /home/git, puis suivre les différentes étapes, sans gros problèmes pour configure et configure db.+https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/mysql_to_postgresql.md
  
-Ca se gate au moment d'installer gems, il est apparu que le paquet RedCloth -v '4.2.9' était manquant. +==== Ajout de l'auth ldap ====
-Il nous a fallu réinstaller ruby-dev et ruby pour solutionner le problème.+
  
 +On édite les lignes qui vont bien dans le fichier /etc/gitlab/gitlab.rb
  
-=== Apache ===+http://doc.gitlab.com/ee/integration/ldap.html#enabling-ldap-sign-in-for-existing-gitlab-users
  
-A la section 7on a utilisé apacheau lieu de nginx. 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.+Notamment le serveur ldaple mot de passela base de recherche.
  
-Voici les parties importantes du sites :+<code> 
 +... 
 +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' 
 +... 
 +</code>
 +
 +Et on lance 
 <code> <code>
-Définir ici 2 virtualhosts "normaux" sur port 80 et 443 +gitlab-ctl reconfigure 
-Ensuite +</code> 
 + 
 +==== 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 : 
 +<code> 
 +# note the 'https' below 
 +external_url "https://gitlab.federez.net" 
 +letsencrypt['enable'] = true 
 +</code> 
 + 
 +Enfin on reconfigure et c'est bon ! 
 + 
 +==== Container registry ==== 
 + 
 +On utilise le container registry docker intégré à GitLab. 
 + 
 +L'activer [[https://docs.gitlab.com/ee/administration/packages/container_registry.html#configure-container-registry-under-its-own-domain|est très simple]] : 
 + 
 +Dans /etc/gitlab/gitlab.rb, avec l'intégration Let's Encrypt déjà activée : 
 +<code> 
 +registry_external_url 'https://docker.federez.net' 
 +</code> 
 + 
 +On reconfigure, et c'est bon ! 
 + 
 +Comme le stockage des layers docker peut vite prendre pas mal de place, et n'est pas vraiment critique dans le contexte de FedeRez, on les met sur un disque séparé (par exemple pour faciliter une migration ou des backups…) : 
 + 
 +* Ajouter un nouveau disque sur l'interface Proxmox 
 +* Formater le disque : `mkfs.ext4 /dev/your_new_disk` (noter l'uuid donné lors du formatage) 
 +* `mkdir /registry` 
 +* Ajouter une entrée dans `/etc/fstab` : `UUID=your_uuid /registry ext4 defaults 0 2` 
 +* Monter le fs : `mount -a` 
 +* Rajouter `gitlab_rails['registry_path'] = "/registry"` dans `/etc/gitlab.rb` 
 +* `gitlab-ctl reconfigure` 
 + 
 +Et voilà ! (Ne pas oublier de copier les données depuis leur emplacement par défaut, si le registry avait déjà servi…) 
 + 
 + 
 +Plus qu'à ajouter le nettoyage automatique du registry, comme [[https://docs.gitlab.com/ee/administration/packages/container_registry.html#running-the-garbage-collection-on-schedule|indiqué dans la doc]]. 
 + 
 + 
 +==== 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 
 +<code> 
 +# 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:
 +</code> 
 + 
 +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. 
 + 
 +<file apache /etc/apache2/sites-available/gitlab>
 <VirtualHost *:443> <VirtualHost *:443>
   ServerName gitlab.federez.net   ServerName gitlab.federez.net
Ligne 77: Ligne 237:
   ErrorDocument 503 /deploy.html   ErrorDocument 503 /deploy.html
 </VirtualHost> </VirtualHost>
-</code>+</file>
  
-==== LDAP ====+===== LDAP =====
  
-Pour terminer, on interface l'identification avec le ldap federezC'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 :+Les utilisateurs sont authentifiés avec le serveur LDAP de FedeRez On configure donc GitLab pour s'en servir :
  
-<code+<file yaml /home/git/gitlab/config/gitlab.yml
-label: 'LDAP'+... 
 +production: 
 +  ... 
 +  ldap: 
 +    enabled: true 
 +    servers: 
 +      main: 
 +        label: 'LDAP'
  
         host: 'ldap.federez.net'         host: 'ldap.federez.net'
         port: 389         port: 389
         uid: 'uid'         uid: 'uid'
-        method: 'tls' # "tls" or "ssl" or "plain"+        method: 'tls'
         bind_dn: 'cn=gitlab,ou=service-users,dc=federez,dc=net'         bind_dn: 'cn=gitlab,ou=service-users,dc=federez,dc=net'
-        password: vous vous attendez pas à le trouver non? +        password: 'secret' 
-        +
         active_directory: false         active_directory: false
         block_auto_created_users: false         block_auto_created_users: false
-        base: 'ou=users,dc=federez,dc=net'   +        base: 'ou=users,dc=federez,dc=net'  
-</code>+...  
 +</file>
  
-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)+===== Mise à jour =====
  
-Installé entre le 14 et le 15 mai 2015 par toadjaune et Chirac+Pour mettre à jour GitLab, lire le [[https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG|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'' :
  
-===== Mise à jour ===== +  * 2015-06-11 : 752 Mio (7.10.4 -> 7.11.4)
-Il faut git puller l'archive, en ayant pris soin de lire les changelogs....+
admin/services/gitlab.1431766419.txt.gz · Dernière modification : 2015/05/16 10:53 de bertrand.bonnefoy-claudet

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki