Outils personnels

Git : Gitolite et Gitlab sur Centos 6.2 : Différence entre versions

De wikiGite

(Ruby)
 
(13 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
Avant toute chose installer :
+
== Prérequis ==
  yum groupinstall development tools
+
 
 +
=== Ajout du depot epel ===
 +
Importer les clefs :
 +
rpm --import https://fedoraproject.org/static/0608B895.txt
 +
 
 +
 
 +
Installer le dépot :
 +
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-6.noarch.rpm
 +
rpm -ivh epel-release-6-6.noarch.rpm
 +
 
 +
 
 +
Installer le paquet yum-priorities pour definir les prioritées des depots :
 +
  yum install yum-priorities
 +
 
 +
 
 +
Editer le depot /etc/yum.repos.d/epel.repo pour definir sa priorité à 10 :
 +
[epel]
 +
name=Extra Packages for Enterprise Linux 6 - $basearch
 +
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
 +
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
 +
failovermethod=priority
 +
enabled=1
 +
'''priority=10'''
 +
gpgcheck=1
 +
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
 +
 +
[...]
 +
 
 +
=== Installation des dépendances ===
 +
  yum groupinstall "development tools"
 
  yum install make openssh-clients libxml2 libxml2-devel libxslt libxslt-devel python-devel libicu-devel mysql-devel sqlite-devel redis
 
  yum install make openssh-clients libxml2 libxml2-devel libxslt libxslt-devel python-devel libicu-devel mysql-devel sqlite-devel redis
  
lancer redis au demarage :
+
lancer au demarage :
 
  chkconfig redis on
 
  chkconfig redis on
 +
chkconfig sshd on
  
 
== Ruby ==
 
== Ruby ==
Ligne 38 : Ligne 68 :
 
Installation de rails :
 
Installation de rails :
 
  gem install rails
 
  gem install rails
 
  
 
== Apache et Phusion passenger ==
 
== Apache et Phusion passenger ==
Phusion Passenger sert à connecter des applis Rack ou Rails avec Apache (ou Nginx), permettant d’héberger ces applis presque aussi facilement que des applis/scripts en PHP.
+
Phusion Passenger sert à connecter des applis Rack ou Rails avec Apache (ou Nginx).
  
  
Ligne 78 : Ligne 107 :
 
     </Directory>
 
     </Directory>
 
   </VirtualHost>
 
   </VirtualHost>
 
  
 
== Gitolite ==
 
== Gitolite ==
 
=== Ajout du depot epel ===
 
Importer les clefs :
 
rpm --import https://fedoraproject.org/static/0608B895.txt
 
 
 
Installer le dépot :
 
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
 
rpm -ivh epel-release-6-5.noarch.rpm
 
 
 
Installer le paquet yum-priorities pour definir les prioritées des depots :
 
yum install yum-priorities
 
 
 
Editer le depot /etc/yum.repos.d/epel.repo pour definir sa priorité à 10 :
 
[epel]
 
name=Extra Packages for Enterprise Linux 6 - $basearch
 
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
 
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
 
failovermethod=priority
 
enabled=1
 
'''priority=10'''
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
 
 
[...]
 
  
 
=== Installation ===
 
=== Installation ===
Ligne 128 : Ligne 129 :
  
 
Taper enter et editer le fichier ouvert en changeant la valeur :
 
Taper enter et editer le fichier ouvert en changeant la valeur :
  $REPO_UMASK to 0007
+
  $REPO_UMASK = 0007;
  
 
Se deconnecter de l'utilisateur gitosis
 
Se deconnecter de l'utilisateur gitosis
Ligne 149 : Ligne 150 :
 
Renommer les fichiers de configuration
 
Renommer les fichiers de configuration
  
cp config/gitlab.yml.example config/gitlab.yml
+
cp config/gitlab.yml.example config/gitlab.yml
  
  
Ligne 156 : Ligne 157 :
 
* sqlite :  
 
* sqlite :  
  
cp config/database.yml.sqlite config/database.yml
+
cp config/database.yml.sqlite config/database.yml
  
 
* Mysql :  
 
* Mysql :  
  
cp config/database.yml.example config/database.yml
+
cp config/database.yml.example config/database.yml
  
 
Penser à changer username/password dans config/datdabase.yml
 
Penser à changer username/password dans config/datdabase.yml
Ligne 166 : Ligne 167 :
  
 
Dans le répertoire de gitlab :
 
Dans le répertoire de gitlab :
  bundle install
+
  bundle install --deployment
 
 
  
 
Configuration de la BDD :
 
Configuration de la BDD :
Ligne 188 : Ligne 188 :
  
  
Modifier la configuration de gitlab :
+
Modifier la configuration de gitlab /var/www/gitlabhq/config/gitlab.yml :
git_host:
+
git_host:
system: gitolite
+
system: gitolite
admin_uri: gitolite@localhost:gitolite-admin
+
admin_uri: gitolite@localhost:gitolite-admin
base_path: /var/lib/gitolite/repositories/
+
base_path: /var/lib/gitolite/repositories/
host: localhost
+
host: localhost
git_user: gitolite
+
git_user: gitolite
# port: 22
+
# port: 22
  
 
=== Autoriser apache à utiliser gitlab ===
 
=== Autoriser apache à utiliser gitlab ===
Activer l'utilisateur apache :
 
usermod -s /bin/bash -d /var/www/ apache
 
  
 
+
Se connecter a vec l'utilisateur apache pour creer les fichiers de conf ssh :
Lui donner les droits :
 
 
  chown -R apache:apache /var/www/
 
  chown -R apache:apache /var/www/
  
Puis
+
  su -l apache -s /bin/bash
  su - apache
 
 
  ssh localhost
 
  ssh localhost
 
  exit
 
  exit
Ligne 216 : Ligne 212 :
 
Ajouter apache au groupe gitolite :
 
Ajouter apache au groupe gitolite :
 
  usermod -a -G gitolite apache
 
  usermod -a -G gitolite apache
 +
 +
Lui donner les droits :
 +
chown -R apache:apache /var/www/
  
 
Donner les permissions au repo :
 
Donner les permissions au repo :
Ligne 222 : Ligne 221 :
 
lancer apache :
 
lancer apache :
 
  service httpd start
 
  service httpd start
 +
 +
Afin de tester si la configuration est bonne. Se connecter avec apache :
 +
git clone gitolite@localhost:gitolite-admin.git /tmp/gitolite-admin
 +
 +
Si la commande fonctionne :
 +
git clone gitolite@localhost:gitolite-admin.git /tmp/gitolite-admin
  
 
Se connecter sur l'interface  
 
Se connecter sur l'interface  
 
  user: admin@local.host
 
  user: admin@local.host
 
  pass: 5iveL!fe
 
  pass: 5iveL!fe
 
  
 
== Référence ==
 
== Référence ==
 
http://wasil.org/en/gitlab-installation-on-fedora-16-with-gitolite
 
http://wasil.org/en/gitlab-installation-on-fedora-16-with-gitolite

Version actuelle datée du 4 juin 2012 à 10:39

Prérequis

Ajout du depot epel

Importer les clefs :

rpm --import https://fedoraproject.org/static/0608B895.txt


Installer le dépot :

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-6.noarch.rpm
rpm -ivh epel-release-6-6.noarch.rpm


Installer le paquet yum-priorities pour definir les prioritées des depots :

yum install yum-priorities


Editer le depot /etc/yum.repos.d/epel.repo pour definir sa priorité à 10 :

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 

[...]

Installation des dépendances

yum groupinstall "development tools"
yum install make openssh-clients libxml2 libxml2-devel libxslt libxslt-devel python-devel libicu-devel mysql-devel sqlite-devel redis

lancer au demarage :

chkconfig redis on
chkconfig sshd on

Ruby

RVM

L'installation de ruby se fait à l'aide de RVM (Ruby Version Manager) qui est un outil en ligne de commande qui permet d'installer et de travailler facilement avec plusieurs environnements Ruby. Chaque environnement se compose d'un interpréteur Ruby et d'un ensemble de gems.
https://rvm.io//rvm/install/

Installer rvm :

curl -L get.rvm.io | bash -s stable


Charger rvm :

source /etc/profile.d/rvm.sh


Installer les dépendances (suivre les recommandations)

rvm requirements


Installer ruby :

rvm install 1.9.3


Definir cette version de ruby comme par defaut :

 rvm use ruby-1.9.3 --default


Gems

Mise à jour des gems :

gem update --system


Installation de rails :

gem install rails

Apache et Phusion passenger

Phusion Passenger sert à connecter des applis Rack ou Rails avec Apache (ou Nginx).


Installation de apache :

yum install -y httpd


Installation de passenger

gem install passenger


Installation des dépendances de passenger :

yum install gcc-c++ curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel


Compilation et activation de passenger

passenger-install-apache2-module


Comme expliqué à la fin de la procèdure précédente:

  • ajouter ces lignes à la fin du fichier /etc/httpd/conf/httpd.conf :
  LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
  PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12
  PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby
  • Créer ensuite le fichier gitlab.conf dans /etc/httpd/conf.d/ :
<VirtualHost *:80>
    ServerName www.yourhost.com
    # !!! Be sure to point DocumentRoot to 'public'!
    DocumentRoot /somewhere/public    
    <Directory /somewhere/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>
 </VirtualHost>

Gitolite

Installation

yum install gitolite


Il faut maintenant definir la configuration de gitolite. Tous d'abord se connecter avec l'utilisateur :

su - gitolite


Tenter une connection en local avec ssh pour générer les fichiers de configuration de ssh (pas besoin de s'authentifier):

ssh localhost

Générer une paire de clefs :

ssh-keygen -t rsa

Initialiser le repo gitolite :

gl-setup .ssh/id_rsa.pub

Taper enter et editer le fichier ouvert en changeant la valeur :

$REPO_UMASK = 0007;

Se deconnecter de l'utilisateur gitosis

Gitlab

Dépendances

yum install python-pip
pip-python install pygments
gem install bundler

Installation

cd /var/www

git clone git://github.com/gitlabhq/gitlabhq.git

cd gitlabhq/

Renommer les fichiers de configuration

cp config/gitlab.yml.example config/gitlab.yml


Séléctionner la base de donnée :

  • sqlite :
cp config/database.yml.sqlite config/database.yml
  • Mysql :
cp config/database.yml.example config/database.yml

Penser à changer username/password dans config/datdabase.yml


Dans le répertoire de gitlab :

bundle install --deployment

Configuration de la BDD :

RAILS_ENV=production rake db:setup
RAILS_ENV=production rake db:seed_fu


Modifier /etc/httpd/conf.d/gitlab.conf :

<VirtualHost *:80>
    ServerName www.yourhost.com
    # !!! Be sure to point DocumentRoot to 'public'!
    DocumentRoot /var/www/gitlabhq/public    
    <Directory /var/www/gitlabhq/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>
 </VirtualHost>


Modifier la configuration de gitlab /var/www/gitlabhq/config/gitlab.yml :

git_host:
system: gitolite
admin_uri: gitolite@localhost:gitolite-admin
base_path: /var/lib/gitolite/repositories/
host: localhost
git_user: gitolite
# port: 22

Autoriser apache à utiliser gitlab

Se connecter a vec l'utilisateur apache pour creer les fichiers de conf ssh :

chown -R apache:apache /var/www/
su -l apache -s /bin/bash
ssh localhost
exit
cp -f /var/lib/gitolite/.ssh/id_rsa /var/www/.ssh/ 
chown apache:apache /var/www/.ssh/id_rsa 
chmod 600 /var/www/.ssh/id_rsa

Ajouter apache au groupe gitolite :

usermod -a -G gitolite apache

Lui donner les droits :

chown -R apache:apache /var/www/

Donner les permissions au repo :

chmod 770 /var/lib/gitolite/repositories/

lancer apache :

service httpd start

Afin de tester si la configuration est bonne. Se connecter avec apache :

git clone gitolite@localhost:gitolite-admin.git /tmp/gitolite-admin

Si la commande fonctionne :

git clone gitolite@localhost:gitolite-admin.git /tmp/gitolite-admin

Se connecter sur l'interface

user: admin@local.host
pass: 5iveL!fe

Référence

http://wasil.org/en/gitlab-installation-on-fedora-16-with-gitolite