Instalación y configuración de Git y Gitolite con Repositorio Sigesp

El presente manual tiene como objetivo efectuar el proceso de instalación de la aplicación git para el control de versiones y gitolite para el control de los usuarios y permisología de los repositorios (gitweb como interfaz web) , todo esto para repositorios centralizados y compartidos.

Requisitos:

  • Se debe contar con un equipo para servidor y uno para cliente
  • Ambos deben tener instalado y activo el servicio sshd
  • Se Debe tener cuenta con privilegios de administración (root)
  • Se debe tener acceso al código fuente de sigesp

Plataforma:

  • La presente instalación es para equipos de arquitectura i386.
  • El sistema operativo empleado es ‘GNU/Linux’ Debian versión 7.0 (wheezy), actualmente estable.

Aplicaciones:

  • git -> 1.7.9-1
  • gitweb -> 1.7.9-1
  • gitolite -> 2.0.3-1

Importante

Es importante tomar en cuenta que se procederá ha instalar y configurar (git + gitolite), los cuales estarán integrados entorno al código de Sigesp. Para el caso de gitolite, la configuración se efectuará del lado del cliente (equipo administrador de la aplicación) y servidor (equipo servidor de la aplicación).

Instalación de Dependencias:

1. Instalación aplicaciones del lado del servidor:

usuario@servidor:~$ sudo aptitude install git git-core gitweb gitolite

2. Instalación de aplicaciones del lado del cliente:

usuario@cliente:~$ sudo aptitude install git git-core

Configuración:
Configuración Básica de Git + gitolite

Configuración Lado Servidor

1. Crear usuario git:

usuario@servidor:~$ sudo adduser --system --shell /bin/bash \
                         --gecos 'version control' --group git --home /srv/git

Donde:
* –shell = shell del usuario (/bin/bash)
* –group = grupo de usuario (git)
* –home = home directory del usuario (/srv/git)

2. Crear carpeta gitolite

usuario@servidor:~$ sudo mkdir -p /srv/gitolite/

3. Copiar archivo configuración gitolite

usuario@servidor:~$ sudo cp -R /usr/share/gitolite/conf /srv/gitolite

Configuración Lado Cliente

1. Crear llave ssh para el usuario administrador del gitolite

usuario@cliente:/~$ ssh-keygen -t rsa

2. Copiar llave generada al servidor

usuario@cliente:/~$ scp /home/usuario/.ssh/id_rsa.pub root@servidor:/tmp/usuario.pub

Configuración Lado Servidor

1. Cambiar a usuario git

usuario@cliente:/~$ su git

2. Instalar gitolite con llave pública del usuario y equipo cliente (administrador de gitolite):

    git@servidor:~$ gl-setup /tmp/usuario.pub

    The default settings in the rc file (/srv/git/.gitolite.rc) are fine for most
    people but if you wish to make any changes, you can do so now.

    hit enter...

i. presione [esc]

i. Escriba [:q!]

    creating gitolite-admin...
    Initialized empty Git repository in /srv/git/repositories/gitolite-admin.git/
    creating testing...
    Initialized empty Git repository in /srv/git/repositories/testing.git/
    [master (root-commit) fa415fe] start
     2 files changed, 6 insertions(+), 0 deletions(-)
    create mode 100644 conf/gitolite.conf
    create mode 100644 keydir/usuario.pub

Configuración Lado Cliente

1. Crear una carpeta que contendrá los repositorios de configuración de gitolite

usuario@cliente:/~$ mkdir -p /home/usuario/almacen

2. Clonar el repositorio gitolite-admin

usuario@cliente:~/almacen$ git clone git@servidor:gitolite-admin

    Cloning into 'gitolite-admin'...
    Agent admitted failure to sign using the key.
    git@servidor's password:
    remote: Counting objects: 6, done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 6 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (6/6), done.

Configurar Repositorio de Sigesp

Configuración Lado Cliente

1. Crear repositorio Sigesp_v1 con permisos para todos los usuarios

1.1. Editar archivo de configuración gitolite-admin

   usuario@cliente:~/almacen/gitolite-admin/conf$ nano /home/usuario/almacen/gitolite-admin/conf/gitolite.conf

1.2. Agregar al final del archivo:

        repo    sigesp
                RW+     =   @all

1.3. Actualizar servidor

   usuario@cliente:~/almacen/gitolite-admin/conf$ git commit -a -m 'crear repositorio sigesp'

   [master 816181f] crear repositorio sigesp
   1 files changed, 4 insertions(+), 0 deletions(-)
       
   usuario@cliente:~/almacen/gitolite-admin$ git push origin master
       
   Agent admitted failure to sign using the key.
   git@server's password:
   Counting objects: 7, done.
   Delta compression using up to 2 threads.
   Compressing objects: 100% (3/3), done.
   Writing objects: 100% (4/4), 370 bytes, done.
   Total 4 (delta 1), reused 0 (delta 0)
   remote: creating sigesp...
   remote: Initialized empty Git repository in /srv/git/repositories/sigesp/
   To git@server:gitolite-admin
   fa415fe..816181f  master -> master

Importante
En este punto el servidor contiene el repositorio sigesp.git, en la ruta /srv/git/repositories

2. Crear directorio del proyecto:

    usuario@cliente:~/$ mkdir -p /home/usuario/almacen/codigo

3. Clonar el repositorio de sigesp creado en el servidor

    usuario@cliente:~/usuario/almacen/codigo$ git clone git@server:sigesp

4. Copiar, mover o descomprimir el código de sigesp en la ruta /home/usuario/almacen/codigo/sigesp

5. Agregar los archivos creados al control de git

usuario@cliente:~/almacen/codigo/sigesp$ git add .

6. Efectuar comentario inicial:

usuario@cliente:~/almacen/codigo/sigesp$ git commit -a -m 'Proyecto inicial Sigesp'

7. Actualizar servidor:

usuario@cliente~:/home/usuario/repositorio/$ git push origin master

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s