Como instalar Hudson utilizando los usuarios de Redmine / MySQL

por | Jun 29, 2010 | GNU / Linux, Java

A la hora de instalar Hudson (http://hudson-ci.org) como servidor de integración contínua, ya disponíamos de la siguiente infraestructura:

  • Imagen virtualizada con Xen del S.O. Fedora Core 7.
  • Redmine como gestor de proyectos (www.redmine.org) sobre MySQL 5.0.45
  • Apache HTTPD versión 2.2.8-1 como frontal, forzando el paso a SSL y redirecciona al puerto de Redmine a través de mod_proxy.
  • Control de versiones Subversion.

Nuestra intención es utilizar los usuarios y grupos de Redmine con el objetivo de poder reutilizarlos y gestionarlos desde esta misma herramienta.

  • Por defecto, Hudson tiene los grupos admin, user y hudson. Desde el Redmine, creamos el grupo admin y asociarlo a nuestro usuario fsolans.

neodoo_redmine_user_x

neodoo_redmine_user_groups_x

  • Para ello, hemos creado la base de datos hudson y creado las siguientes vistas a partir de las tablas de la base de datos de redmine.

[root@neodoo]# mysql

mysql> create database hudson;

mysql> use hudson;

mysql> create view hudson.user_roles as select u.user_id, u.user_name, gu.group_id as role_id, r.role_name from users u, redmine.groups_users gu inner join roles r on r.role_id = gu.group_id where gu.user_id=u.user_id order by u.user_name;

mysql> create view hudson.roles as select id as role_id, lastname as role_name from redmine.users where type=”Group”;

mysql> create view hudson.users as select id as user_id, login as user_name, hashed_password as user_pass from redmine.users where type=”User”;

  • Instalar JDK y Apache Tomcat. Presupongo que ya lo sabéis hacer…
  • Descargar el proyecto Hudson que viene por defecto como un war. En mi caso, me descargué la versión 1.364 y lo descomprimí con unzip en /var/www/hudson/war.
  • Creamos el fichero hudson.xml y lo copiamos en $TOMCAT_HOME/conf/Catalina/localhost/. Aquí indicamos que vamos a a usar la autentificación de seguridad por JDBC.

<?xml version=”1.0″ encoding=”UTF-8″?>

<Context path=”» docBase=”/var/www/hudson/war/”>

<Realm className=”org.apache.catalina.realm.JDBCRealm” debug=”99″ driverName=”com.mysql.jdbc.Driver” digest=”SHA”
connectionURL=”jdbc:mysql://localhost/hudson?user=root&amp;password=xxx” userTable=”users” userNameCol=”user_name” userCredCol=”user_pass” userRoleTable=”user_roles” roleNameCol=”role_name” />

<Environment name=”HUDSON_HOME” value=”/var/www/hudson” type=”java.lang.String” override=”false”/>

<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” pattern=”combined” prefix=”hudson_access_log.” resolveHosts=”true” suffix=”.txt”/>

<Logger className=”org.apache.catalina.logger.FileLogger” prefix=”hudson_log.” suffix=”.txt” timestamp=”true”/>

</Context>

  • Sólo nos falta rearrancar el contenedor Tomcat y abrir Hudson en nuestro navegador web. Por defecto, se accede sin ningún tipo de autentificación. Para securizarlo, ir a la opción ‘Administrar Hudson’ y poner tal cómo indica la captura de pantalla.

neodoo_hudson_auth_configure

Cómo se observa, se delega la autentificación al contenedor Tomcat y además añadimos los permisos que dispondrá los usuarios del grupo admin (podríamos poner otros para los grupos hudson y user).

¡ Et voilá ! Hudson tirando de los usuarios y grupos de Redmine con MySQL aunque es válido para cualquier base de datos.

0 comentarios

Enviar un comentario

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

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.