GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Gitlab avec PostgreSQL et Nginx sur Ubuntu 15.04

Gitlab est une application Web de gestion de référentiel git écrite sur Ruby. Il est similaire à GitHub et inclut des fonctionnalités telles qu'un wiki de projet et un système de suivi des problèmes. Le projet Gitlab a été lancé par Dmitriy Zaporozhets et le logiciel est utilisé par plus de 100 000 entreprises technologiques, dont IBM, StackExchange, la NASA, Alibaba, Red Hat, etc. Gitlab est l'une des meilleures solutions pour créer votre propre serveur git.

Gitlab est pris en charge par les principales distributions Linux telles que Ubuntu, Debian et CentOS. Gitlab fournit un package .deb pour Debian/Ubuntu et des packages .rpm pour Rhel et CentOS. Le package contient toutes les dépendances, y compris Ruby, Redis, Nginx, Unicorn et PostgreSQL. Gitlab est disponible en 2 versions, Community Edition (Gitlab CE) et Enterprise Edition (Gitlab EE). Si vous souhaitez créer votre propre serveur git, l'édition CE gratuite offrira très probablement toutes les fonctionnalités dont vous avez besoin.

Dans ce didacticiel, je vais vous guider étape par étape dans l'installation de Gitlab CE avec PostgreSQL comme système de base de données et Nginx comme serveur Web sur la version Ubuntu 15.04. Nous utiliserons Ruby version 2.x.x, gitlab stable version 8.x.

Prérequis

  • Ubuntu 15.04 - 64 bits.
  • CPU 2 Cores - recommandé par le site gitlab .
  • 2 Go de RAM/Mémoire - recommandé par le site gitlab .
  • Privilèges racine.

Étape 1 - Mettre à jour le système Linux

Avant d'installer les dépendances Gitlab, nous récupérons les dernières mises à jour du référentiel Ubuntu. Connectez-vous au serveur Ubuntu avec un accès SSH, devenez utilisateur root, puis mettez à jour les référentiels.

sudo su
apt-get update

Étape 2 - Installer les dépendances Gitlab

Gitlab a de nombreuses dépendances logicielles telles qu'un serveur redis, git-core, nodejs et postfix pour envoyer des notifications par e-mail. Je vais les installer avec une seule commande apt :

sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4- openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs suffixe git-core

Remarque :pendant installation de postfix, sélectionnez "site internet" puis appuyez sur entrée pour confirmer le nom d'hôte.

Si tous les packages sont installés, vérifiez la version de git et assurez-vous que la version de git est 1.7.x ou supérieure.

git --version
git version 2.1.4

Étape 3 - Installer Ruby and Go

Gitlab nécessite une version ruby ​​2.x ou supérieure. Dans ce tutoriel, nous utiliserons ruby ​​version 2.7. Dans cette étape, nous devons installer ruby ​​manuellement (depuis la source). Si vous avez déjà installé ruby ​​sur votre système, supprimez-le avec la commande ci-dessous :

apt-get remove ruby ​​-y

Ensuite, nous allons installer ruby ​​manuellement. Créez un nouveau répertoire pour les fichiers source ruby :

mkdir -p /tmp/ruby &&cd /tmp/ruby

Téléchargez le source ruby ​​avec la commande curl :

curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz

Maintenant, vérifiez et extrayez le ruby.tar.gz, puis entrez dans le répertoire ruby :

echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075  ruby-2.1.7.tar.gz' | shasum -c - &&\
tar xzf ruby-2.1.7.tar.gz &&\
cd ruby-2.1.7

Compilez et installez Ruby :

./configure --disable-install-rdoc --prefix=/usr/local
make
make install

Comme prochaine étape, nous devons installer Go. Depuis gitlab 8.0, la requête HTTP git est gérée par gitlab-workhorse qui est écrit en Go. Pour installer gitlab-workhorse, nous avons besoin du compilateur go, téléchargez-le et installez-le.

Créer un nouveau répertoire pour Go :

mkdir -p /tmp/go &&cd /tmp/go

Téléchargez Go - nous utilisons la version 64 bits :

curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

Vérifiez et extrayez-le dans le répertoire "/usr/local/" :

écho '46eecd290d8803887dec718c691cc243f2175fe0  go1.5.1.linux-amd64.tar.gz' | shasum -c - &&\
sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

Créez maintenant un lien symbolique pour Go dans le répertoire bin :

sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

Maintenant, Ruby et Go sont installés.

Étape 4 - Créer un nouvel utilisateur Linux et configurer la base de données PostgreSQL

Dans cette étape, nous allons créer un nouvel utilisateur système Linux appelé "git" avec le répertoire d'accueil "/home/git". Gitlab s'exécutera plus tard en tant qu'utilisateur git.

Créez un nouvel utilisateur git avec la commande adduser :

sudo adduser --disabled-login --gecos 'GitLab' git

Maintenant, nous configurons la base de données pour gitlab. Gitlab prend en charge MySQL et PostgreSQL, dans ce tutoriel, nous utiliserons le type de base de données recommandé PostGreSQL.

Installez PostgreSQL avec la commande apt ci-dessous :

sudo apt-get install -y postgresql postgresql-client libpq-dev

Une fois cela fait, connectez-vous à PostgreSQL et créez un nouveau rôle/utilisateur appelé "git " pour gitlab :

sudo -u postgres psql -d template1
CRÉER UN UTILISATEUR git CREATEDB ;

Créez ensuite une nouvelle base de données pour gitlab appelée "gitlabhq_production " et accordez la base de données à git user/role :

CRÉER BASE DE DONNÉES gitlabhq_production PROPRIÉTAIRE git ;

Quittez maintenant le shell postgresql et testez le nouveau rôle/utilisateur avec la base de données que nous avons créée :

\q
sudo -u git -H psql -d gitlabhq_production

Un nouvel utilisateur système appelé "git" a été créé.

Le nouveau rôle/utilisateur "git" pour psotgreSQL qui a été accordé à la base de données gitlab "gitlabhq_production" a également été créé.

Étape 5 - Configurer le serveur Redis

Avant de modifier le fichier de configuration Redis dans le répertoire "/etc/redis", nous allons créer une copie de sauvegarde avec le nom redis.conf.original.

cd /etc/redis/
cp redis.conf redis.conf.original

Editez ensuite le fichier "redis.conf" avec l'éditeur vim :

vim redis.conf


Allez à la ligne 45 et changez la valeur en 0 , car nous voulons que Redis écoute uniquement sur un socket unix et non sur un port :

Écouter 0

Ensuite, allez à la fin du fichier et ajoutez un socket redis et l'autorisation correspondante :

unixsocket /var/run/redis/redis.sock
unixsocketperm 777

Enregistrez le fichier et quittez.

Ensuite, créez un nouveau répertoire pour le socket redis dans le répertoire "/var/run" et ajustez le propriétaire et les permissions du répertoire :

mkdir -p /var/run/redis
chown redis:redis /var/run/redis
chmod 755 /var/run/redis

Accédez au répertoire du socket Redis et exécutez la commande ci-dessous :

cd /var/run/redis
if [ -d /etc/tmpfiles.d ] ; then
  echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi

Si tout est fait, redémarrez le serveur redis et ajoutez l'utilisateur "git" au groupe "redis":

redémarrage du serveur redis du service sudo
sudo usermod -aG redis git

Étape 6 - Installer GitLab

Allez dans le répertoire "/home/git" et téléchargez gitlab depuis son dépôt GIT :

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab

Remarque :

sudo -u git -H clone command =nous exécutons la commande "clone" en tant qu'utilisateur "git".

- Configurer GitLab

Allez dans le répertoire gitlab pour configurer gitlab :

cd /home/git/gitlab

Copiez l'exemple de fichier de configuration de gitlab gitlab.yml.example vers gitlab.yml dans le répertoire "config":

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

Dans le répertoire gitlab, changez le propriétaire des sous-répertoires "log et tmp" en utilisateur git :

sudo chown -R git {log,tmp}

Modifiez ensuite les autorisations pour les autres répertoires afin que gitlab (l'utilisateur git) puisse y écrire :

mkdir -p public/uploads/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX {tmp,tmp/pids,tmp/sockets,builds ,partagé/artefacts}
sudo chmod -R 0750 public/uploads

Copiez les exemples des configurations unicorn et Rack attack :

sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

Nous devons maintenant configurer les paramètres globaux pour l'utilisateur git avec la commande git ci-dessous :

sudo -u git -H git config --global core.autocrlf input

Et nous devons configurer la connexion redis en copiant le fichier "resque.yml" dans le répertoire config, puis le modifier avec vim pour changer la configuration redis, utiliser unix socket comme nous avons configuré redis pour écouter sur un socket :

sudo -u git -H cp config/resque.yml.example config/resque.yml

- Configuration de la base de données

L'étape suivante consiste à configurer les paramètres de la base de données GitLab, nous utilisons postgreSQL pour notre base de données. Copiez le fichier de configuration et modifiez les autorisations :

sudo -u git -H cp config/database.yml.postgresql config/database.yml
sudo -u git -H chmod o-rwx config/database.yml

- Installer les Gems

sudo gem install bundler
sudo -u git -H bundle install --deployment --without development test mysql aws kerberos

Attendez que les commandes soient terminées.

- Installer Gitlab-shell

Gitlab-shell permet l'accès SSH et la gestion du référentiel pour Gitlab. Nous utiliserons la configuration par défaut, nous n'avons donc pas besoin de la modifier. Exécutez la commande ci-dessous pour installer le gitlab-shell :

sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

URL_REDIS =assurez-vous d'utiliser le socket unix pour la configuration de redis sur l'environnement de production.

- Installer gitlab-workhorse

Gitlab-workhorse est un petit démon pour gérer le trafic HTTP Git de unicorn, codé en Go. Clonez-le et installez-le :

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout 0.4.2
sudo -u git -H make

- Initialiser la base de données et activer les fonctionnalités de gitlab

Accédez au répertoire d'installation de gitlab et exécutez la commande ci-dessous :

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

tapez "oui" pour créer les tableaux.

Le résultat sera un compte gitlab avec le nom d'utilisateur "root " et le mot de passe "5iveL!fe ".

Étape 7 - Configurer le script d'initialisation

Copiez le script d'initialisation de gitlab depuis le répertoire d'installation de gitlab et ajoutez gitlab pour démarrer au démarrage avec la commande update-rc.d :

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab defaults 21

Copiez ensuite la configuration de gitlab logrotate pour la gestion des logs :

sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

Et vérifiez l'état de l'application et compilez les éléments :

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

S'il n'y a pas d'erreur, démarrez gitlab avec :

/etc/init.d/gitlab start

Étape 8 - Installer et configurer Nginx

Nous utiliserons Nginx comme serveur Web frontal pour gérer les requêtes du navigateur. Installez-le simplement avec cette commande apt :

apt-get install nginx -y

Copiez la configuration de l'hôte virtuel Nginx à partir du répertoire gitlab et supprimez l'hôte virtuel par défaut Nginx :

sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo rm /etc/nginx/sites-enabled/default

Modifiez le fichier de configuration avec vim :

sudo vim /etc/nginx/sites-available/gitlab

Modifiez la valeur des lignes Listen et ServerName dans la section HTTP :

Écoutez *:80 ; #Port par défaut

#Listen 0.0.0.0:80 ; #commentez l'un de ces éléments

ServerName my.gitlab.me ; #Gitlab FQDN/Domaine

Enregistrez et quittez.

Activez l'hôte virtuel gitlab, démarrez nginx et redémarrez gitlab :

sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
service nginx start
/etc/init.d/gitlab restart

Vous pouvez désormais accéder à gitlab avec votre navigateur sur my.gitlab.me (le nom d'hôte que vous avez choisi pour votre serveur) et connectez-vous avec le nom d'utilisateur par défaut "root " et le mot de passe "5iveL!fe ".

Vous devez d'abord remplacer le mot de passe par défaut de gitlab par votre mot de passe.

Gitlab 8 avec PostgreSQL et Nginx sur Ubuntu 15.04 est maintenant installé avec succès.

Remarque :

Si vous avez une erreur, par exemple "502 mauvaise passerelle", corrigez-la en augmentant le délai d'attente de la licorne ou mettez à niveau votre matériel. Accédez au répertoire d'installation de gitlab et modifiez le fichier unicorn.rb avec vim :

sudo -u git -H vim config/unicorn.rb

En savoir plus sur le dépannage de Gitlab ici https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide.

Conclusion

Gitlab est un logiciel de gestion de référentiel git open source écrit en Ruby. C'est l'une des meilleures solutions pour construire votre propre serveur git. Gitlab est créé par Dmitriy Zaporozhets et est disponible en 2 versions, Gitlab CE (Community Edition) et Gitlab EE (Enterprise Edition). Gitlab est facile à installer et à configurer avec une belle interface, utilisée par plus de 100 000 entreprises technologiques. C'est un logiciel très puissant qui aide les développeurs à créer des applications avec d'autres développeurs.


Ubuntu
  1. Comment installer Mattermost avec PostgreSQL et Nginx sur Ubuntu 16.04

  2. Comment installer Ruby on Rails (RoR) avec PostgreSQL sur Ubuntu 16.04

  3. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  4. Comment installer Postgresql et phpPgAdmin sur Ubuntu 15.04

  5. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

Comment installer Redmine 3.2 avec Nginx sur Ubuntu 16.04

Comment installer Django avec PostgreSQL et Nginx sur Ubuntu 16.04

Comment installer et configurer GitLab sur Ubuntu 16.04

Comment installer OSClass avec Nginx sur Ubuntu 20.04

Comment installer Wordpress avec Nginx, MariaDB et HHVM dans Ubuntu 15.04

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04