16
2011
Instalando un servidor Git
En una entrada anterior ya vimos la razón de uso de un sistema de control de versiones, además optamos por la elección de Git ya que era el que mejores características nos ofrecía.
A través de esta entrada vamos a aprender como instalar un servidor de Git, y la gestión de repositorios, usuarios y accesos.
Comenzamos con la instalación en Gentoo de dev-vcs/git, concretamente en esta instalación hemos usado los siguientes USE=»bash-completion blksha1 cgi curl iconv perl». Después configuramos el fichero /etc/conf.d/git-daemon con los siguientes datos, donde xxx.xxx.xxx.xxx será la Ip donde queramos que el servidor Git escuche y pondremos la ruta completa donde se alojaran nuestros proyectos en base-path.
GITDAEMON_OPTS="--syslog --enable=receive-pack --base-path=/home/git/repositories /home/git/repositories --listen=xxx.xxx.xxx.xxx" GIT_USER="nobody" GIT_GROUP="nobody"
Una vez configurado preparamos el servicio para que se inicie en cada arranque del sistema con rc-add git-daemon default y para finalizar arrancamos el servicio con /etc/init.d/git-daemon start. Ahora podríamos funcionar directamente con nuestro servidor Git, pero lo interesante es que toda la gestión de proyectos, accesos y usuarios la gestionemos a través de un configurador independiente.
GITOSIS
Para trabajar con repositorios Git la forma más segura y efectiva de hacerlo es mediante gitosis, permite acceso a través de SSH con un control de acceso muy limitado y no necesitamos para ello cuentas shell de usuario. Gestiona múltiples repositorios con una única cuenta de usuario shell (esta cuenta estará limitada para poder ejecutar sólo comandos git) y utiliza claves SSH para identificar a los usuarios de los proyectos. Como en Gentoo se trata de un paquete fuera de la rama estable deberemos de activarlo de la siguiente manera y posteriormente instalarlo de la forma convencional:
echo "dev-vcs/gitosis ~x86" >> /etc/portage/package.keywords emerge -av dev-cvs/gitosis
Configurando Gitosis
Primero generamos la clave ssh en nuestra máquina mediante ssh-keygen -t rsa, enviamos la clave pública que se genera al servidor git mediante scp (la clave pública ssh id_rsa.pub estará en nuestro directorio de usuario .ssh/) para después inicializar el sistema de gitosis con la siguiente orden sudo -H -u git gitosis-init < id_rsa.pub. Tras esta orden ya tenemos el repositorio gitosis-admin creado y que será el que vamos a utilizar para seguir configurando gitosis. Pero antes de dejar que el usuario git se conecte al servidor vía ssh debemos de confirmar que puede hacer login en el sistema, verificando antes los ficheros password y shadow.
En este momento ya estamos en condiciones para clonar el repositorio gitosis-admin que será el que utilizaremos para la gestión de proyectos, permisos, usuarios y grupos. Ejecutamos por tanto la orden git clone git@servidor.dominio.com:gitosis-admin.git esto nos generará un directorio gitosis-admin donde encontraremos el fichero gitosis.conf que será el que utilizaremos para configurar todos los aspectos del servidor git. Voy a poneros un ejemplo de un fichero gitosis.conf para un proyecto con un grupo de usuarios para ilustrar el funcionamiento.
[gitosis] dirmode = 755 daemon = no [repo proyectoA] description = Documentación general proyecto A owner = El propietario o propietarios del proyecto A [repo proyectoB] description = Documentación general proyecto B owner = El propietario o propietarios del proyecto B [group gitosis-admin] writable = gitosis-admin members = admin@hostname admin2@server [group proyectos] writable = proyectoA proyectoB members = usuario@hostname usuario2@server
Una lectura muy recomendada y más extensa para la gestión de gitosis la podemos encontrar aquí.
Entradas relacionadas
Archivo
- abril 2020 (1)
- marzo 2020 (1)
- abril 2012 (1)
- febrero 2012 (1)
- diciembre 2011 (3)
- noviembre 2011 (2)
- septiembre 2011 (2)
- agosto 2011 (2)
- julio 2011 (2)
- junio 2011 (3)
- abril 2011 (1)
- marzo 2011 (7)
- febrero 2011 (6)