Como configurar gitolite
Para configurar Gitolite, necesitas tener un servidor Linux y Git instalado. Gitolite es una herramienta de administración de acceso que te permite gestionar el acceso a múltiples repositorios Git desde un único servidor, utilizando claves SSH. 🔐
Aquí te presento una guía paso a paso para la configuración.
1. Requisitos Previos
Asegúrate de que tu servidor tenga lo siguiente:
Git instalado: Si no lo tienes, puedes instalarlo con
sudo apt-get install git
(en sistemas basados en Debian/Ubuntu) osudo yum install git
(en sistemas basados en Red Hat/CentOS).Perl: Gitolite está escrito en Perl, que generalmente ya está instalado en la mayoría de los sistemas Linux.
Una cuenta de usuario dedicada: Por seguridad, es mejor crear un usuario específico para Gitolite. No uses la cuenta root.
2. Creación del Usuario Git
Crea un nuevo usuario en tu servidor, que será el usuario que Gitolite usará para gestionar los repositorios.
sudo adduser git
Establece una contraseña segura para este usuario. Después de crearlo, inicia sesión como este usuario.
su - git
3. Instalación de Gitolite
Una vez que estás en la cuenta de usuario git, clona el repositorio de Gitolite.
git clone https://github.com/sitaramc/gitolite.git
Ahora, instala el script de Gitolite en el directorio del usuario git.
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
Esto copiará el ejecutable de Gitolite a tu directorio personal bin
. Asegúrate de que este directorio esté en tu PATH.
4. Configuración Inicial de Gitolite
El siguiente paso es inicializar Gitolite con la clave SSH de tu máquina cliente, que será la máquina desde la que administrarás los repositorios.
Genera la clave SSH en tu máquina cliente: Si no tienes una, créala con el siguiente comando en tu máquina local.
Bashssh-keygen -t rsa -b 4096 -C "tu_email@ejemplo.com"
Esto generará los archivos id_rsa (clave privada) e id_rsa.pub (clave pública) en el directorio
~/.ssh/
.Copia la clave pública al servidor: Necesitas transferir tu clave pública (
id_rsa.pub
) a la máquina del servidor. Puedes usarscp
para esto.Bashscp ~/.ssh/id_rsa.pub git@servidor_ip:/tmp/admin.pub
Reemplaza
servidor_ip
con la dirección IP de tu servidor.Inicializa Gitolite con la clave: De nuevo, en el servidor y como usuario git, inicializa Gitolite con la clave que acabas de copiar.
Bashgitolite setup -pk /tmp/admin.pub
Este comando hace varias cosas:
Crea el repositorio de administración de Gitolite llamado
gitolite-admin
.Añade tu clave pública como administrador.
Establece los permisos necesarios.
5. Administración de Repositorios
A partir de este momento, todo el control de Gitolite se realiza desde tu máquina cliente, modificando el repositorio gitolite-admin.
Clona el repositorio de administración: En tu máquina cliente, clona el repositorio que se acaba de crear.
Bashgit clone git@servidor_ip:gitolite-admin
Esto creará un directorio llamado
gitolite-admin
que contiene la configuración.Estructura del repositorio de administración: Dentro de este directorio, encontrarás:
conf/
: Contiene el archivo de configuración principal,gitolite.conf
.keydir/
: Contiene las claves públicas de los usuarios, cada una con el nombreusuario.pub
.
Añadir un nuevo usuario o repositorio:
Añadir un usuario: Copia la clave pública SSH del nuevo usuario (que debe proporcionártela) al directorio
keydir/
con el nombrenuevo_usuario.pub
.Modificar
gitolite.conf
: Abre el archivoconf/gitolite.conf
en tu editor de texto y añade la configuración para los repositorios y usuarios. Por ejemplo:Fragmento de código@developers = alice bob repo helloworld RW+ = @developers
Esto crea un repositorio llamado
helloworld
y da permisos de lectura/escritura (y reescritura de historial) a los usuariosalice
ybob
.
Aplicar los cambios: Una vez que hayas modificado los archivos, haz un
commit
ypush
para que los cambios se apliquen.Bashgit add . git commit -m "Added helloworld repo" git push
¡Listo! Ahora el nuevo repositorio
helloworld
está disponible para los usuariosalice
ybob
.