Montando un repositorio para control de versiones

El entorno lab empieza a complicarse, para poder tener control sobre los distintos ficheros de configuración de los servidores así como para los desarrollos software, he decidido montar un servidor para subversion.

Voy a crear un servidor Ubuntu con 1GB de RAM y 25GB de disco. El servidor va a estar montado en la DMZ para que, de esta forma, sea accesible a toda la red doméstica.

El primer paso para la instalación de un servidor SVN es instalar un servidor Apache que va a posibilitar el acceso a los repositorios a través de WebDAV instalamos, además, la biblioteca de SVN para apache.

svn_1

A continuación, instalo subversion:

svn_2

Creo una clave privada y una CSR para un certificado SSL de servidor. Esta CSR la firmo con la entidad certificadora que tengo en el entorno lab.

svn_3

svn_4

Voy a hacer que la autenticación de los usuarios a los distintos repositorios utilice el directorio LDAP que he montado. Para conseguir esto, voy a instalar el módulo authnz_ldap de Apache.

svn_5

He creado un usuario en LDAP (testuser) y voy a probar que mi servidor LDAP funciona:

svn_6

svn_7

Es posible utilizar el LDAP para autenticación así que voy a configurar Apache para que autentique contra el LDAP. Para esto, es necesario editar el fichero de configuración default-ssl.conf (tengo un redirect permanent al sitio https) y voy a añadir la siguiente sección Location:

svn_8

Voy a probar el acceso desde un cliente Windows 7:

svn_9

svn_10

En principio, Apache está configurado, ahora tengo que seguir con la instalación y configuración de Subversion. Para empezar, voy a crear un directorio para los repositorios y un repositorio de prueba:

svn_11

svn_12

Voy a crear un archivo de prueba y a subirlo al repositorio:

svn_13

svn_14

Tengo un pequeño problema con los permisos del repositorio pero ya lo arreglaré más adelante. Voy a intentar acceder a través de la web:

svn_15

svn_16

En principio todo está funcionando. Los aspectos que tengo que corregir son:

  • Permisos de acceso a los repositorios.
  • Autenticación de usuarios que accedan a través de protocolo SVN a través de LDAP.

Instalando un servidor LDAP

Al igual que en el caso del servidor DNS, voy a crear un servidor Ubuntu con 1GB de RAM y 25GB de disco para el servidor LDAP. La instalación y pre-configuración del servidor es calcada a la que hice para el servidor de nombres así que voy a obviar los detalles. La única diferencia es que mi servidor LDAP va a estar conectado a la red de Backend en lugar de a la DMZ como en el caso del servidor de nombres.

ldap1

La idea es instalar un servidor OpenLDAP para la autenticación y autorización de usuarios del entorno lab. Para empezar, me descargo los correspondientes paquetes y, durante la instalación, se me solicita la contraseña para el directorio.

ldap2

ldap3

A continuación, lanzo la reconfiguración del paquete instalado y voy contestado a las distintas cuestiones relativas a la configuración:

ldap4

ldap5

ldap6

ldap7

A continuación instalo la interfaz web de administración del directorio (phpLDAPAdmin) en el servidor de administración:

ldap8

Realizo la configuración editando el fichero /etc/phpldapadmin/config.php.

ldap10

ldap11

Una vez establecida la configuración, ya se puede acceder al servidor LDAP mediante phpLDAPadmin:

ldap2_1