Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Instalar servidor subversion

Instalar servidor subversion

Tabla de contenidos

¿Que es subversion?

Subversion (SVN) es una herramienta de control de versiones open source basada en un repositorio cuyo funcionamiento se asemeja enormemente al de un sistema de ficheros. Es software libre bajo una licencia de tipo Apache/BSD.

Utiliza el concepto de revisión para guardar los cambios producidos en el repositorio. Entre dos revisiones sólo guarda el conjunto de modificaciones (delta), optimizando así al máximo el uso de espacio en disco. SVN permite al usuario crear, copiar y borrar carpetas con la misma flexibilidad con la que lo haría si estuviese en su disco duro local. Dada su flexibilidad, es necesaria la aplicación de buenas prácticas para llevar a cabo una correcta gestión de las versiones del software generado.

Instalación:

bash
root@subversion:~# apt-get install subversion

Creamos la carpeta donde se alojara el repositorio

bash
root@subversion:~# mkdir /var/svn

A continuación creamos un proyecto que en nuestro caso lo llamare redorbita

bash
root@subversion:~# svnadmin create /var/svn/redorbita

Iniciamos subversion

bash
root@subversion:~# svnserve -d -r /var/subversion/

Comprobamos que a iniciado

bash
root@subversion:~# ps -fea | grep subversion

root 3322 1 0 13:24 ? 00:00:00 svnserve -d -r /var/svn/

Procedemos a configurar el acceso al repisotiro. Está configuración la encontraremos en /var/subversion//conf/svnserve.conf

bash
vi /var/svn/redorbita/conf/svnserve.conf

[general]
anon-access = none

auth-access = write

auth-access = read

password-db = passwd

A continuación configuramos un usuario y contraseña en /var/subversion/conf/passwd en mi caso el usuario se llamara rokitoh y su contraseña será 123456

config
vi /var/subversion/conf/passwd

[users]

rokitoh = 123456

mediante el comando svn info podemos obtener la información del repositorio.

bash
root@subversion:~# svn info svn://127.0.0.1/redorbita

Reino de autentificación: <svn://127.0.0.1:3690> bc22cd4a-76a7-45a2-9c12-3e529fba6b20

Clave de ‘root’:

Reino de autentificación: <svn://127.0.0.1:3690> bc22cd4a-76a7-45a2-9c12-3e529fba6b20

Usuario: rokitoh

Clave de ‘123456’:
———————————————————————–

ATTENTION! Your password for authentication realm:
<svn://127.0.0.1:3690> bc22cd4a-76a7-45a2-9c12-3e529fba6b20
can only be stored to disk unencrypted! You are advised to configure

your system so that Subversion can store passwords encrypted, if

possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value

of the ‘store-plaintext-passwords’ option to either ‘yes’ or ‘no’ in

‘/root/.subversion/servers’.

———————————————————————–

Almacenar la clave sin cifrar (sí/no)? no

Ruta: redorbita

URL: svn://127.0.0.1/redorbita

Raíz del repositorio: svn://127.0.0.1/redorbita

UUID del repositorio: bc22cd4a-76a7-45a2-9c12-3e529fba6b20

Revisión: 0

Tipo de nodo: directorio

Revisión del último cambio: 0

Fecha de último cambio: 2015-02-18 13:23:50 +0100 (mié 18 de feb de 2015)

Configurar subversion para poder acceder mediante un navegador web.

Instalamos apache y la libreria de subversion

bash
apt-get install apache2 libapache2-svn php5 libapache2-mod-php5

Activamos los modulos

text
a2enmod dav_svn

a2enmod authz_svn

 Añadimos los modulos

bash
vi /etc/apache2/apache2.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

Procedemos a configurar /etc/apache2/mods-available/dav_svn.conf en este fichero le indicaremos donde se encuentra el repositorio

apache
<Location /redorbita>

DAV svn

SVNPath /var/svn/redorbita

AuthType Basic

AuthName «Subversion Repository»

AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user

</Location>

Creamos el usuario y el grupo

text
groupadd subversion
addgroup rokitoh subversion

Creamos el usuario destinado a subversion

text
htpasswd -c /etc/apache2/dav_svn.passwd rokitoh

New password:

Re-type new password:

Adding password for user rokitoh
htpasswd /etc/apache2/dav_svn.passwd jenkins

Configuramos tanto el archivo /etc/hostname como el /etc/hosts de la siguiente forma:

bash
cat /etc/hostname

subversion.CDP.redorbita.com

cat /etc/hosts

127.0.0.1    localhost

127.0.1.1    subversion
192.168.1.57 subversion.CDP.redorbita.com subversion

127.0.0.1 localhost.subversion.CDP.redorbita.com localhost

192.168.1.57 subversion.CDP.redorbita.com

Creamos un script en /etc/init.d/ y lo configuramos para que arranque al iniciar el sistema.

sql
cat /etc/init.d/subversion

svnserve -d -r /var/svn
update-rc.d subversion defaults

update-rc.d: using dependency based boot sequencing

insserv: warning: script ‘K01jboss’ missing LSB tags and overrides

insserv: warning: script ‘subversion’ missing LSB tags and overrides

Comprobamos que funciona correctamente el acceso por http:

text
svn co –username rokitoh –password 123456 http://192.168.1.57/svn/redorbita PRUCHECKOUT

svn: OPTIONS de ‘http://192.168.1.57/svn/redorbita’: 200 OK (http://192.168.1.57)

Un saludo, rokoth!

:wq!

Comentarios