Git : Gitolite et Gitlab sur Centos 6.2 : Différence entre versions
De wikiGite
(Page créée avec « == Installation de ruby == === Installation de RVM === L'installation de ruby se fait à l'aide de RVM (Ruby Version Manager) qui est un outil en ligne de commande qui permet... ») |
(→Ruby) |
||
(14 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | == Installation | + | == 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.<br/> | 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.<br/> | ||
https://rvm.io//rvm/install/ | https://rvm.io//rvm/install/ | ||
Ligne 6 : | Ligne 43 : | ||
Installer rvm : | Installer rvm : | ||
curl -L get.rvm.io | bash -s stable | curl -L get.rvm.io | bash -s stable | ||
+ | |||
Charger rvm : | Charger rvm : | ||
source /etc/profile.d/rvm.sh | source /etc/profile.d/rvm.sh | ||
+ | |||
Installer les dépendances (suivre les recommandations) | Installer les dépendances (suivre les recommandations) | ||
rvm requirements | rvm requirements | ||
+ | |||
Installer ruby : | Installer ruby : | ||
rvm install 1.9.3 | rvm install 1.9.3 | ||
+ | |||
Definir cette version de ruby comme par defaut : | Definir cette version de ruby comme par defaut : | ||
rvm use ruby-1.9.3 --default | rvm use ruby-1.9.3 --default | ||
− | === | + | |
+ | === Gems === | ||
Mise à jour des gems : | Mise à jour des gems : | ||
gem update --system | gem update --system | ||
+ | |||
Installation de rails : | Installation de rails : | ||
gem install rails | gem install rails | ||
− | == | + | == Apache et Phusion passenger == |
− | Phusion Passenger sert à connecter des applis Rack ou Rails avec Apache (ou Nginx) | + | 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 |
Version actuelle datée du 4 juin 2012 à 10:39
Sommaire
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