Ceci est une ancienne révision du document !
Table des matières
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 !
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)