En la jaula de un geek

Los README son para los cobardes. Sé valiente. Ejecuta el programa.

«

»

Ene 30

Instalar Subversion y WebSVN con LDAP en OpenSuSE Leap 42.2

Entre las herramientas obligatorias para poder programar se encuentra el repositorio de código, el lugar donde se almacena todo el código creando versiones y sincronizando entre las personas que contribuyen a este, sin él, no habría forma de trabajar eficazmente entre varias personas, e incluso sin equipo, permite tener siempre una versión estable subida mientras añadimos código de pruebas, si este no funciona, podemos volver atrás fácilmente.

Una de las formas más eficientes es instalar Subversion sobre un Apache que se encargará de la gestión y publicación de nuestro código.

0- Previos

Se instalará Subversion (de ahora en adelante SVN) sobre un Apache, para ello hay que tener el Apache ya configurado, además si se quiere configurar en SSL se puede seguir este post al terminar esta instalación.

Para facilitar la lectura y tener una página de índice, instalaré WebSVN (requiere PHP), una página que utiliza la misma seguridad de SVN y puede mostrar todos los repositorios a los que se tiene acceso, esto permite tener una lista de los repositorios a los que tenemos acceso (con el nombre exacto para después construir fácilmente la URL de acceso real) y tener una forma web de revisar el código por si queremos revisar cualquier parte sin tener que encender nuestra herramienta de desarrollo.

La autenticación de usuarios se realizará contra el LDAP que configuré en este post, pero en caso de tener otro seguramente cambiaría la URL y nada más, de tener un Active Directory quizás sea algo más complicado, ya que suele ser diferente al resto, pero encontraréis rápidamente los datos para Apache.

Además de la autenticación de usuarios, tendremos un fichero que indicará quienes tienen acceso a cada repositorio de LDAP, esto nos da más control sobre la visibilidad del código y de paso el usuario se evita tener tantos repositorios innecesarios que evitan que encuentre el suyo, quienes han trabajado con un CSV sin limitar me entenderán.

En todo momento se utilizará el usuario root.

1- Instalar Subversion y WebSVN

Empezamos primero con instalar todo lo que vamos a necesitar y después las configuraremos todas de golpe para ahorrarnos faena.

Voy a dividir las rutas de publicación del WebSVN y las de SVN para evitar errores de publicar por donde no toca el SVN y de paso tener mejor control de los backups, ya que el WebSVN no cambia nunca y por tanto su backup no es importante, pero el del SVN sí lo es. Para ello la ruta del WebSVN será /srv/www/svn y la del SVN /srv/svn. Este último contendrá también el fichero de acceso a repositorios ya que así estará dentro de la zona de backups.

Lo primero es instalar el Subversion para obtener los comandos de creación, también añadimos enscript, necesario para permitir que WebSVN muestre colores y así sea más legible el código.

Creamos las carpetas, descargamos el WebSVN dejándolo en el destino final y de paso dejamos su fichero configurado

Habilitamos el enscript para colorear el código, indicamos la ruta donde estarán los repositorios, la ruta del fichero de acceso a cada repositorio y, en el caso de que nuestro SVN sea privado y esté publicado a internet, quizás nos interese bloquear los robots.

Creamos un repositorio para utilizarlo en la verificación de acceso, nunca hay que olvidar cambiar los permisos o Apache no podrá crear ficheros en él.

Para no tener que memorizar o apuntar el comando de creación de repositorios, he creado dos scripts, uno para crear repositorios crear y otro para borrar repositorios, por si fuera necesario alguna vez. Solo requieren modificar la primera variable con nuestra ruta para SVN.

2- Configurar Apache

Con todas las herramientas listas, lo que falta es configurar Apache para publicar tanto los repositorios de SVN como el WebSVN.

Primero añadimos todos los módulos necesarios tanto para configurar el SVN en Apache cómo la autenticación por LDAP.

Ahora creamos un nuevo Virtual Host, este se encargará de publicar el WebSVN en la página inicial y los repositorios dentro de la carpeta SVN.

Añadimos la información de las dos secciones indicando que se debe usar la autenticación de LDAP y la ruta al archivo de accesos para el SVN, recordad actualizar las rutas y usuarios para cada parte.

Finalmente reiniciamos Apache.

3- Configuración de acceso

Por último, creamos el fichero con el acceso a cada repositorio, a grandes rasgos podemos configurar un grupo propio al que añadir usuarios y grupos o aplicarlos directamente en cada repositorio.

Este es un ejemplo creando grupos y definiendo el repositorio que hemos creado previamente.

Para acceder al WebSVN utilizamos:

http://svn.domain.com

En cambio, nuestra herramienta de SVN utilizará la dirección real, en el caso del repositorio Test:

http://svn.domain.com/svn/Test

Final

Con esto ya tenemos el SVN funcionando y conectado al LDAP con el resto de servicios, pero controlando quienes acceden a cada repositorio manualmente.

Cada vez que necesitemos un repositorio nuevo simplemente lo crearemos con el script e indicaremos quienes tendrán permiso

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar