DevOps Configurar SVN server con podman en fedora
SVN es un control de versiones para ficheros binarios.
DescripcionPermalink
En este caso vamos a emplear una imagen de docker.io elleflorio/svn-server sin esforzarnos mucho.
ProcedimientoPermalink
Creamos las carpetas para los volumnes. En este caso solo la base de datos necesita almacenamiento en disco.
~]# mkdir -p /var/srv-data/svn-server/svn-root
Descargamos la imagen de docker.io y ejectuamos nuestro contenedor.
~]# podman run -dit --name svn-server -v /var/srv-data/svn-server/svn-root:/home/svn:z -p 3680:80 -p 3690:3690 -w /home/svn elleflorio/svn-server
# podman ps -a
957e3324ec83 docker.io/elleflorio/svn-server:latest About an hour ago Up About an hour ago 0.0.0.0:3680->80/tcp, 0.0.0.0:3690->3690/tcp svn-server
Para poder probar nuestro servicio necesitamos un usuario y un password.
~]# docker exec -t svn-server htpasswd -b /etc/subversion/passwd svnadmin password
Ya podemos comprobar que funciona correctamente accediendo al la direccion http://localhost/svn.
Manejo de RepositoriosPermalink
Ahora nuestro contenedor esta creado y funcionando, necesitamos usuarios, contraseña, repositorios, etc…
RepositoriosPermalink
Crear un repositorio
~]# podman exec -it svn-server svnadmin create Test
Vamos a crear unos usuarios que puedan acceder usando el protocolo custom (svn) y tengan permisos de escritura para poder hacer modificaciones en el repositorio.
En el repositorio, existe una carpeta /home/svn/Test/conf, donde se almacenan la configuracion de acceso. El fichero passwd y el fichero svnserve.conf almacenan la contraseña y los permisos de acceso respectivamente.
UsuariosPermalink
Comenzamos añadiendo una nueva entrada en passwd con nuestro usuario y password, siguiendo el formato
~]# podman exec -it svn-server sh -c "cat /home/svn/Test/conf/passwd"
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
~]# podman exec -it svn-server sh -c "cat >> /home/svn/Test/conf/passwd << EOF
jmgomez = testpass
EOF
"
~]# podman exec -it svn-server sh -c "cat /home/svn/Test/conf/passwd"
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
jmgomez = testpass
Ya tenemos un usuario para este repositorio, ahora debemos indicar al servirdor SVN que fichero usar para almancenar las contraseñas de los usuarios e indicarle que permisos queremos otorgar a los usuarios autorizados. Para ello modificamos el fichero svnserve.conf, quitandole los comentarios (y los espacios que pueda haber al principio) a las lineas:
some configuration lines…###Permalink
auth-access=write
…
password-db=passwd
the rest of the file…Permalink
~]# podman exec -it svn-server sh -c "sed -i '/# auth-access = write/s/^#*\s*//g' /home/svn/Test/conf/svnserve.conf"
~]# podman exec -it svn-server sh -c "sed -i '/# password-db = passwd/s/^#*\s*//g' /home/svn/Test/conf/svnserve.conf"
Importar un dump de un repositorioPermalink
~]# podman exec -t svn-server svnadmin load /home/svn/Test < /home/svn/repo-saved.dump
ConclusionesPermalink
Ahora debemos añadir el servidor svn a nuestra politica de backups, pero estamos listos para trabajar con el.