Opencms-Git

Vamos a definir los pasos para la integraci贸n de OpenCms con un servidor Git, que nos facilita enormemente el desarrollo.

Instalar y configurar Git

En primer lugar, instalamos el Git聽en nuestro servidor y en los clientes, o en los clientes usamos una aplicaci贸n diferente, pero siempre es mejor la l铆nea de comandos ^_^:

yum install git-core

Y es recomendable poder acceder por certificado, por lo que generamos uno

ssh-keygen -t rsa

Configuramos un repositorio en un servidor que equivale al Git remoto:

mkdir -p /servicio/git-repositories/opencms.git
cd /servicio/git-repositories/opencms.git
git init --bare

Configuramos un repositorio en nuestro equipo para tener una copia del repositorio:

mkdir -p /home/davidrod/projects/opencms
cd /home/davidrod/projects/opencms
git init

Crear la estructura del m贸dulo

Seg煤n la documentaci贸n del fichero de Opencms:

### Demo configuration file for the OpenCms git commit tool
### The configuration file assumes you have a git repository under
### /home/user/git/demo/
### where modules are all stored in the subfolder
### /home/user/git/demo/modules/
### and each module again has a subfolder with it's name, e.g.,
### /home/user/git/demo/modules/my.module.one/
### and the module resources in a subfolder "resources", e.g.,
### /home/user/git/demo/modules/my.module.one/resources/
### which is the place, where the module should be unzipped in before check in.

As铆 que creamos esta estructura para el m贸dulo es.uva.web.portal.opencms.tipos, de forma que creamos modules, dentro de ella el m贸dulo es.uva.web.portal.opencms.tipos y dentro de ella resources.

mkdir -p /home/davidrod/projects/opencms/modules/es.uva.web.portal.opencms.tipos/resources

Y en esa carpeta resources exportamos el m贸dulo descomprimido, por lo que dentro de ella debemos tener:

./manifest.xml
./system
./system/modules
./system/modules/es.uva.web.portal.opencms.tipos

Nuestro primer commit del m贸dulo

Ahora hacemos el commit hacia el repositorio. Por si acaso no dominas git, a帽ado todos los pasos

git config --global user.name 鈥渄avidrod鈥
git config --global user.email 鈥渄avid.rodriguez.merino@uva.es鈥
git remote add origin ssh://git@172.16.21.169/servicio/git-repositories/opencms.git
git branch --set-upstream-to=origin/master master
git add .
git commit -m 鈥渋nitial鈥 -a
git push

De esta manera ya tenemos subida la versi贸n inicial en el repositorio.

El repositorio local del servidor OpenCms

Ahora vamos a nuestro servidor de Opencms. Debemos crear una carpeta en el sistema de ficheros que usaremos para el proyecto local. Por ejemplo

mkdir -p /servicio/git-projects/opencms/

Luego realizamos los mismos pasos para configurar la sincronizaci贸n con el repositorio.

cd /servicio/git-projects/opencms/
git init

git config --global user.name 鈥渄avidrod鈥
git config --global user.email 鈥渄avid.rodriguez.merino@uva.es鈥

git remote add origin ssh://root@172.16.21.169:/servicio/git-projects//opencms/
Git pull origin master
git branch --set-upstream-to=origin/master master

Con esto tenemos configurado una carpeta sincronizada con el repositorio Git que Opencms utilizar谩 de 鈥減uente鈥.

Configuraci贸n de OpenCms

Ahora vamos a configurar el fichero module-checkin.conf dentro de la carpeta /WEB-INF/git-scripts/

Debe de tener los m贸dulos con los que vamos a trabajar. Puede dejarse vac铆o y simplemente seleccionar.

DEFAULT_MODULES_TO_EXPORT="es.uva.web.portal.opencms.tipos"

Nuestro repositorio local en el servidor

REPOSITORY_HOME=/servicio/git-projects/opencms/
MODULE_PATH=/servicio/git-projects/opencms/modules
MODULE_RESOURCES_SUBFOLDER=resources/

Y un punto importante para ahorrarnos trabajo, usar un certificado para una conexi贸n con el repositorio remoto sin contrase帽a:

GIT_SSH="/var/lib/tomcat/webapps/keys/git"

Ya por 煤ltimo, damos permisos de ejecuci贸n al fichero /WEB-INF/git-scripts/module-checkin.sh

Ya podemos probar la integraci贸n con Git en Opencms. Tanto el check in como el import deber铆a funcionar sin problemas.

C贸mo ejecutarlo desde l铆nea de comandos

Si tenemos problemas, y queremos ver con detalle el problema, podemos llamar al programa desde una l铆nea de comandos, como por ejemplo para el m贸dulo es.uva.web.portal.opencms.tipos:

Para hacer un push

./module-checkin.sh --modules "es.uva.web.portal.opencms.tipos" -msg "This is my automatic commit." --git-user-name "davidrod" --git-user-email "david.rodriguez.merino@uva.es" --pull-before --pull-after --push --export-folder "/usr/share/tomcat/webapps/ROOT/WEB-INF/packages/modules/" --export-mode 1 --exclude-libs --commit --ignore-unclean --copy-and-unzip "/usr/share/tomcat/webapps/ROOT/WEB-INF/git-scripts/module-checkin.conf"

Para hacer un pull

./module-checkin.sh --checkout "/usr/share/tomcat/webapps/ROOT/WEB-INF/git-scripts/module-checkin.conf"

webmaster

Grupo web de la Universidad de Valladolid - STIC

2 comentarios en “Opencms-Git”

  1. Hola, me pod茅is confirmar con que versi贸n de opencms lo hab茅is realizado. Me interesa saber si es posible con la versi贸n 7, gracias

Responder a tuti Cancelar la respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende c贸mo se procesan los datos de tus comentarios.