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
Dernière révisionLes deux révisions suivantes
admin:services:gitlab [2015/05/16 00:54] gabriel.detrazadmin:services:gitlab [2020/07/22 20:19] – Ajout du container registry toadjaune
Ligne 1: Ligne 1:
-== Gitlab de federez ==+====== GitLab ======
  
-Il se situe sur Baldrick, VM jessie hébergée au Cr@ns.+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.
  
-Pour l'installation, nous avons choisi de ne pas utiliser l'installateur omnibus, mais de suivre l'installation pas à pas à partir des sources git.+===== Installation =====
  
-Cependant, nous avons utilisé la version packagée Jessie de ruby, à savoir ruby +Il a été décidé d'utiliser l'installateur omnibus.
  
-Cela nous permis d'utiliser mysql et apacheà la place de postgres et de nginx par exemple.+On donc la vm octogon2 gigas de ram et 1 coeurs sous debian 8, puis on suit le tuto gitlab.
  
-Nous avons donc suivi ce tuto : https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md+==== Installation de gitlab avec omnibus sur octogon ====
  
-A la section 2 ruby, baldrick étant sous jessie, nous avons juste utilisé la version d'apt, soit ruby 2.1.5+<code> 
 +sudo apt-get install curl openssh-server ca-certificates postfix 
 +</code>
  
-A la section 4, nous avons utilisé les mêmes commandes, mais avec mysql.+Puis on install les sources gitlab : 
  
-A la section 6, il faut télécharger l'archive gitlab, puis suivre les différentes étapes, sans problèmes.+<code> 
 +curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 
 +sudo apt-get install gitlab-ce 
 +</code>
  
-A la section 7on 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.+Enfin,
  
-Voici les parties importantes du sites :+<code> 
 +sudo gitlab-ctl reconfigure 
 +</code> 
 + 
 +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.
  
 <code> <code>
-<VirtualHost *:80> +..
-  ServerName gitlab.federez.net +production: 
-  ServerAlias baldrick.federez.net baldrick.crans.org gitlab-federez.crans.org +  ... 
-  ServerSignature Off+  ldap: 
 +    enabled: true 
 +    servers: 
 +      main: 
 +        label: 'LDAP'
  
-  RewriteEngine on +        host'ldap.federez.net
-  RewriteCond %{HTTPS} !=on +        port: 389 
-  RewriteRule .* https://gitlab.federez.net%{REQUEST_URI} [NE,R=permanent,L] +        uid: 'uid' 
-</VirtualHost>+        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>
 +gitlab-ctl reconfigure
 +</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 !
 +==== 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: 1
 +</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 baldrick.federez.net +  ServerName gitlab.federez.net
-  ServerAlias baldrick.crans.org gitlab-federez.crans.org+
   ServerSignature Off   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   RewriteEngine on
-  RewriteRule .* https://gitlab.federez.net%{REQUEST_URI} [NE,R=permanent,L]+  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 
 +  RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA] 
 +  RequestHeader set X_FORWARDED_PROTO 'https'
  
-  SSLEngine on +  # needed for downloading attachments 
-  SSLCipherSuite SSLv3:TLSv1:+HIGH:!SSLv2:!MD5:!MEDIUM:!LOW:!EXP:!ADH:!eNULL:!aNULL +  DocumentRoot /home/git/gitlab/public 
-  SSLCertificateFile    /etc/ssl/certs/gitlab.crt + 
-  SSLCertificateKeyFile /etc/ssl/private/gitlab.key+  #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> </VirtualHost>
-</code>+</file> 
 + 
 +===== LDAP ===== 
 + 
 +Les utilisateurs sont authentifiés avec le serveur LDAP de FedeRez.  On configure donc GitLab pour s'en servir : 
 + 
 +<file yaml /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'  
 +...  
 +</file> 
 + 
 +===== Mise à jour ===== 
 + 
 +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'' :
  
-Installé entre le 14 et le 15 mai 2015 par toadjaune et Chirac+  * 2015-06-11 : 752 Mio (7.10.4 -> 7.11.4)
admin/services/gitlab.txt · Dernière modification : 2020/07/27 19:42 de toadjaune

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki