Gitolite
Gitolite es una capa de control de acceso para git.
Facilita la administración de los usuarios de los distintos repositorios sin necesidad de que tengan inicio de seccion en el servidor y tambien facilita la administración de permisos permitiendo granular a nivel de rama / etiqueta / archivo / directorio, incluyendo quién puede retroceder,crear y eliminar las ramas / etiquetas.
Configura el ssh para poder acceder al servidor remotamente.
Funcionamiento
Gitolite corre como un solo usuario en el servidor, que es invocado via ssh.
El usuario con el que corre en el servidor es git o gitolite, ese usuario es real y existe en el servidor donde esta instalado gitolite.
Gitolite usa ssh para acceder a los archivos y agrega a la configuracion del ssh las claves publicas de cada usuario, de esta manera se van a diferenciar los distintos usarios.
Instalacion (ubuntu)
Instalcion con el administrador de paquetessudo apt-get update
sudo apt-get install gitolite
luego de instalarlo ya se crearon el usuario gitolite.
No aparece en /home/gitolite, sino que el home esta en /var/lib/gitolite
Para correr la configuracion necesito antes crear el par de claves publica y privada del usuario que va a tener permisos para cambiar las configuracion (dar permisos, crear repos, etc).
En los tutoriales que vemos por ahi hay algunos comandos que se corren en el servidor y otros en el cliente, esto puede ser asi pero tambien puede ser que el cliente y el servidor sean la misma maquina.
ssh-keygen -t rsa
Enter file in which to save the key (/home/pablo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Una vez creado el archivo id_rsa lo copio al directorio /tmp
Si estoy en la misma maquina
cp .ssh/id_rsa.pub /tmp/pablo.pub
Si estoy en otra maquina
scp ~/.ssh/id_rsa.pub localhost:/tmp/pablo.pub
scp ~/.ssh/id_rsa.pub pablo@localhost:/tmp/pablo.pub
una vez la clave en el servidor dentro del directorio /tmp
Cambio al usuario gitolite
sudo su gitolite
corro la configuracion
gl-setup /tmp/pablo.pub
exit
Configuracion
La configuracion del gitolite se hace por medio de un directorio que esta versionado en el git que se llama gitolite-adminLo que tenemos que hacer es bajar ese directorio de las configuraciones cambiar las que queramos y volvelas a subir
bajo el repo donde estan las configuraciones
git clone gitolite@localhost:gitolite-admin
git clone ssh://gitolite@localhost/test
Crear un repocitorio
vi /gitolite-admin/conf/gitolote.confrepo gitolite-admin
RW+ = pablo
repo testing
RW+ = @all
para crear un repocitorio test agrego
repo test
RW+ = @all
Como se puede ver el repocitorio gitolite-admin solo tiene permisos de escritura y lectura el usuario pablo, que es el nombre del archivo de clave publica que le pase.
Agregar usuarios
Para agregar un usario hay que agregar la clave publica con nombre que quiero que tenga al directorio/gitolite-admin/kedir
si hago ls voy a ver que el único usuario que hay es el que se uso para instalar.
Cuando copio una clave publica el nombre que tiene el archivo es el que voy a usar para dar permisos.
Si agrego un usuario que se llame user, copio el archvo user.pub al directorio.
Subo los cambio al servidor
Una vez hechos los cambio tengo que subir la configuracion al servidor para que los cambios se hagan efectivos.git commit -am ‘agregure el repo test’
git push