Outils pour utilisateurs

Outils du site


telnew_gitlab

GitLab

Le GitLab de Telnet : http://gitlab.imt-lille.club

GitLab est installé sur Telnew avec l'omnibus.

Installation de GitLab Community Edition

Installation des dépendances

sudo apt-get install -y curl openssh-server ca-certificates
sudo apt-get install -y postfix

Installation de GitLab

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

Configuration

Tout d'abord on va faire quelques modifications dans le fichier /etc/gitlab/gitlab.rb.

external_url 'http://gitlab.imt-lille.club'
...
gitlab_rails['gitlab_shell_ssh_port'] = 9123
...
gitlab_workhorse['enable'] = true
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
...
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8080
...
# Pour utiliser apache à la place de nginx
web_server['external_users'] = ['www-data']
web_server['username'] = 'apache'
web_server['group'] = 'apache'

nginx['enable'] = false

Puis on lance reconfigure,

sudo gitlab-ctl reconfigure

Configuration Apache

La configuration Apache suivant est destinée pour Apache 2.4.

D'autres configurations pour Apache sont disponibles ici.

Il faut modifier les lignes ServerName et ProxyPassReverse.

<VirtualHost *:80>
  ServerName gitlab.example.com
  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 />
    # New authorization commands for apache 2.4 and up
    # http://httpd.apache.org/docs/2.4/upgrading.html#access
    Require all granted
 
    #Allow forwarding to gitlab-workhorse
    ProxyPassReverse http://127.0.0.1:8181
    ProxyPassReverse http://gitlab.example.com/
  </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
 
  #Forward all requests to gitlab-workhorse except existing files like error documents
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_URI} ^/uploads/.*
  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]
 
  # needed for downloading attachments
  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/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 502 /502.html
  ErrorDocument 503 /503.html
 
  # It is assumed that the log directory is in /var/log/httpd.
  # For Debian distributions you might want to change this to
  # /var/log/apache2.
  LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
  ErrorLog /var/log/gitlab/apache2/error.log
  CustomLog /var/log/gitlab/apache2/forwarded.log common_forwarded
  CustomLog /var/log/gitlab/apache2/access.log combined env=!dontlog
  CustomLog /var/log/gitlab/apache2/gitlab.log combined
 
</VirtualHost>

On créé le dossier pour accueillir les logs :

mkdir /etc/log/gitlab/apache2
chown root:adm /etc/log/gitlab/apache2
chmod 700 /etc/log/gitlab/apache2

Il faut ensuite activer les différents mods nécessaires:

# Activation du site
sudo a2ensite gitlab.conf
 
# Activation des modules utilisés dans la conf de gitlab.conf
sudo a2enmod proxy_http
sudo a2enmod proxy
sudo a2enmod rewrite
 
# Relancez la configuration Apache
sudo service apache2 restart

Voilà gitlab est prêt à l'emploi et vous pouvez vous connecter directement dessus.

Interventions mineures

Omnibus > sources

GitLab avait été précédemment installé avec les sources et non avec l'omnibus. Cependant, on a jugé que cette méthode était beaucoup trop complexe et difficile à maintenir.

Réinstallation des anciens dépôts

Après le piratage de telnew, nous n'avons pas pu exporter correctement les dépôts git. Il a donc fallu copier les fichiers des dépôts puis les importer manuellement dans GitLab.

On copie les fichiers dans /var/opt/gitlab/git-data/repositories. Puis on lance cette commande :

gitlab-rake gitlab:import:repos
telnew_gitlab.txt · Dernière modification: 2017/12/06 12:50 par deldel