Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

Instalación servidor git mediante gitolite


Git es un sistema de control de versiones, esto quiere decir que si cometemos algún error en el desarrollo de alguna aplicación simpre tendremos la opción de retroceder atrás hasta un punto seguro donde todo funcionaba correctamente. En este artículo voy a explicar como montar un servidor git sobre mi distro preferida Gentoo empleando para ello gitolite.

Comenzaremos con la instalación del propio software:

emerge -av dev-vcs/gitolite

Añadimos el usuario git:

useradd -g git -G git -s /sbin/nologin -d /dev/null gitdaemon

La configuración del propio gitolite se realiza mediante un repositorio, en este paso vamos a  añadir la masterkey, esta se utilizará para realizar el clone del repo de config:

su git -s /bin/bash
ssh-keygen -t rsa
cd ~
mkdir -p ~/bin
git clone git://github.com/sitaramc/gitolite
/var/lib/gitolite/gitolite/install -ln ~/bin
mkdir -p /var/lib/gitolite/.gitolite/logs
cd ~/bin
./gitolite setup -pk ../.ssh/MASTERKEY.pub
echo 'export PATH=/var/lib/gitolite/bin:$PATH' >> ~/.bash_profile

Arrancamos el servicio:

exit
mkdir /var/git
/etc/init.d/git-daemon start
rc-update add git-daemon default

Git se apoya sobre ssh para realizar la transferencia de datos, configuramos cualquier peculiaridad de ssh como cambio de puerto....

vi .ssh/config
Host localhost
  HostName localhost
  User git
  Port 22

Clonamos el repositorio de configuración:

git clone git@localhost:gitolite-admin.git

Le indicamos a gitolite quienes somos:

git config --global user.email "kr0m@alfaexploit.com"
git config --global user.name "kr0m"

Normalmente no se administra el git desde el propio server si no que se dan de alta users administrativos:

cd gitolite-admin/keydir
vi kr0m.pub
cd ..
cd conf

Añadimos el usuario kr0m y eliminamos el repo test.

vi gitolite.conf
repo gitolite-admin
  RW+ = id_rsa kr0m
cd ..
git add keydir/kr0m.pub
git add conf/gitolite.conf
git commit -m "anyadido kr0m al gitolite-admin"
git push

Ahora ya podemos clonar el repo desde el pc donde esté la key de kr0m.

vi .ssh/config
Host A.B.C.D
  HostName A.B.C.D
  Port 22
git clone git@A.B.C.D:/gitolite-admin

A partir de ahora toda la administración se hará desde este pc.

Añadimos nuestro repo:

cd gitolite-admin/
vi conf/gitolite.conf
repo alfaexploit
    RW+     =   kr0m
git add conf/gitolite.conf
git commit -m "anyadido alfaexploit repo"
git push

Clonamos el repositorio nuevo:

cd ~
git clone git@A.B.C.D:/alfaexploit

Esto ha sido una breve introducción a gitolite y su configuración, en artículos posteriores hablaremos de git en mas profundidad.

Si te ha gustado el artículo puedes invitarme a un redbull aquí.
Autor: kr0m -- 24/07/2014 22:33:19