martes, 27 de diciembre de 2011

Otro de mis blogs

Camino de letras




Porque no todo es codigo y computadoras... acá un nuevo blog que acabo de crear.

 Camino de letras


Voy a ir posteando redacciones que tengo recopiladas de talleres literarios y otras yerbas...

Gracias.

Atlassian Bamboo

Instalación del Atlassian Bamboo


Hola, siguiendo con la instalación del Artifactory cosas relacionadas vi que poseía un plug-in con el Bamboo de Atlassian, lamentablemente era para maven3, así que próximamente se viene algún post con la migración del m2 al m3. Igualmente el Bamboo me pareció una buena herramienta, para los que no conocen ni el producto ni la empresa les cuento que Atlassian es la creadora del manejador de incidencias Jira (a mi entender el mejor de todos). El Bamboo es un software de integración continua, despliegue continuo y gestión de releases (y, obviamente, posee una excelente integración con el Jira). La integración continua es una práctica que permite hacer la integración de un proyecto en forma automática, facilitando entre otras cosas la administración y generación de versiones del proyecto, así como mejorar el control de calidad del mismo. Esta práctica ha sido incluida como parte fundamental de Procesos Ágiles como eXtreme Programming, Scrum entre otras.
Para resumirlo en pocas palabras, la idea es que el código de los desarrolladores se suba a un servidor de versiones central en el que se automatizan procesos de prueba de modo que si algun desarrollador sube codigo que provoca fallos en algún otro módulo, el servidor lo detectará y alertará al respecto. Esta modalidad de trabajo brinda numerosos beneficios entre los que se pueden citar:

- Mejora la calidad del producto
- Reduce trabajos repetitivos y aburridos
- Elimina dependencias de personal clave
- Reduce del tiempo de integración.
- Facilita la detección rápida y temprana de errores.
- Permite tener un histórico de versiones y releases para investigar incidencias.

Hechas las presentaciones, manos a la obra:

Instalación del Atlassian Bamboo

1- Descarga del Bamboo (posee una versión Trial y la licencia más económica es de U$s 10.-)
    http://www.atlassian.com/es/software/bamboo/download

2- Nos logueamos como root en el servidor donde instalaremos el soft. Seleccionamos una carpeta destino (en mi caso cree /usr/share/atlassian-bamboo). Colocamos allí el .tar.gz que bajamos en el paso 1 y ejecutamos

    tar xvzf atlassian-bamboo-3.4.1-standalone.tar.gz

3- Creamos un directorio bamboo-home (IMPORTANTE: El directorio no debe estar dentro de la entructura de instalación). En mi caso lo cree en /var/atlassian/application-data/bamboo/bamboo-home

4- Modificamos el archivo de propiedades bamboo-init.properties que se encuentra en el directorio
<Directorio de instalación>/webapp/WEB-INF/classes

5- Arrancamos el servicio ejecutando el script disponible en la carpeta  /wrapper
    ./start-bamboo start
Para controlar que pudo arractar ejecutamos
    ./start-bamboo status

Si la respuesta indicara que el servicio no se esta ejecutando, podemos ver los errores en <Directorio de instalación>/logs/bamboo.log

6- En el navegador vamos a la dirección http://ip:puerto/bamboo
    Si algo salío mal, aquí aparecerá un checklist que nos indicará que nos olvidamos algo.
    En caso contrario, verán una pantalla donde deberán ingresar el nro de licencia. Pueden obtener un trial de 90 días en la pagina de Atlassian
        http://www.atlassian.com/software/bamboo/ViewBambooLicenses.jspa

Voila!

lunes, 26 de diciembre de 2011

Artifactory II

Como instalar Artifactory en Debian 
(Parte 2 - Configuración)

En la nota anterior instalamos en Artifactory en Debian, pero con eso no hicimos nada mas que ocupar espacio de disco, memoria, procesador y un puerto en el servidor. Sin configuar algunas cosas no podremos hacer mucho con él. Así que, sin más preámbulo, a trabajar:

1. Importante: el Artifactory se instala con un usuario y contraseña estandar (admin:password). Es sumamente importante tomar algunas medidas de seguridad, recuerden que en el repositorio no solo estarán los jars que necesitemos para la aplicación sino que los desarrolladores subirán allí los productos de la empresa e incluso los fuentes... No cuesta nada tener un par de precauciones. Cambiar contraseña del usuario admin y configurar los derechos de los usuarios y grupos. Yo agregue un grupo developers con derecho a gestionar el contenido del repositorio pero no a administrarlo. (el entorno gráfico es bastante intuitivo y simple, no van a tener problema en hacerlo).

2. Versiones anteriores del Artifactory requierían la modificación del archivo artifactory.config.xml, la version 2.4.2 posee una interfaz gráfica de configuración que facilita sobremanera estas tareas, pero si son de ese tipo de personas rebuscadas que aman editar archivos con el vi, la configuracion completa se vería como lo siguiente:
   
    <localRepository>
        <key>local-sample</key>
        <description>Sample local repository</description>
        <blackedOut>false</blackedOut>
        <handleReleases>true</handleReleases>
        <handleSnapshots>true</handleSnapshots>
        <maxUniqueSnapshots>3</maxUniqueSnapshots>
        <includesPattern>*/**</includesPattern>
        <excludesPattern>com/mycompany/**</excludesPattern>
        <snapshotVersionBehavior>non-unique</snapshotVersionBehavior><!-- (non-unique|unique|deployer) -->
    </localRepository>



De todos modos la instalación crea automaticamente los siguientes repositorios locales:
   
    libs-release-local
    libs-snapshot-local
    plugins-release-local
    plugins-snapshot-local
    ext-release-local
    ext-snapshot-local


3. Configurar el maven local para que acceda al repositorio. Cada una de las estaciones de trabajo debería tener un repositorio local en la carpeta home/usuario/.m2, allí existirá un archivo de configuración denominado settings.xml. El artifactory se debe declarar allí para que el maven sepa donde deberá buscar las dependencias. La versión 2.4.2 del artifactory posee un generador automático con el contenido que debería tener este archivo. (Busquenlo en Home -> Client Settings -> Maven Settings. Si es una versión anterior y tienen que crearlo a mano, aquí dejo un modelo de referencia:

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <servers>
    <server>
      <username>admin</username>
      <password>password</password>
      <id>central</id>
    </server>
    <server>
      <username>admin</username>
      <password>password</password>

      <id>snapshots</id>
    </server>
  </servers>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release</name>
          <url>http://ip:puerto/artifactory/libs-release</url>
        </repository>
        <repository>
          <snapshots />
          <id>snapshots</id>
          <name>libs-snapshot</name>
          <url>http://
ip:puerto/artifactory/libs-snapshot</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>plugins-release</name>
          <url>http://
ip:puerto/artifactory/plugins-release</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>plugins-snapshot</name>
          <url>http://
ip:puerto/artifactory/plugins-snapshot</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>


4. Si tienen instalado el plugin del m2 en eclipse, pueden crear un nuevo proyecto maven y al agregar una dependencia en el pom se debería bajar automáticamente.

Saludos

jueves, 22 de diciembre de 2011

Artifactory I


Como instalar Artifactory en Debian

(Parte 1 - Instalación)

Artifactory es un repositorio de Maven 2. Se utiliza como proxy cache de los repositorios de maven y como repositorio para los propios artefactos desarrollados. Es un excelente aliado del maven en organizaciones que con equipos de desarrollo numerosos y reduce la problemática de la descarga de dependencias y la distribución de nuevas versiones. La interfaz de administración es modesta, pero eficiente. Hechas las presentaciones, manos a la obra.

Requisitos:
-JDK 1.6 o superior (preferentemente JDK 1.6.23)
-Al menos 300 MB asignados en la JVM

Si desean asignar mas de 1Gb de memoria para la JVM del Artifactory se recomiendan los siguientes parámetros:

-server -Xms1g -Xmx1g -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m -XX:SurvivorRatio=8 -XX:NewSize=512m -XX:MaxNewSize=512m -XX:+UseParallelGC -XX:-UseConcMarkSweepGC


- Sistema Operativo: Windows, Linux, Solaris and MacOS X (en realidad debería correr en cualquier plataforma que soporte la JDK 1.5 y superiores)

- Browser: A gusto.


Instalación

1. Descarga: http://www.jfrog.com/products.php

2. Descomprimimos el zip en el directorio opt

3. Asignamos permisos de ejecución al script install.sh
    chmod 744 install.sh
4. Ejecutamos el script
    ./install.sh

5. Vamos a la carpeta /etc/init.d/ donde deberíamos encontrar el script artifactory

6. Asignamos permisos de ejecución.
    chmod 744 artifactory

7. Agregamos las variables de entorno editando el bashrc
    nano /root/.bashrc

y agregamos ARTIFACTORY_HOME (si no llegara a estar el JAVA_HOME, también deberán agregarlo)

    export JAVA_HOME=/usr/lib/jvm/java-6-sun
    export ARTIFACTORY_HOME=/opt/artifactory-2.4.2

Jetty vs Tomcat



Si tienen un tomcat quizás quieran desplegar la aplicación allí, en caso contrario les recomiendo que utilicen el jetty que descargaron junto al artifactory


8.1 Jetty
El Jetty utiliza el puerto 8081, si este esta en uso por otra aplicación, editen el fichero $ARTIFACTORY_HOME/etc/jetty.xml y cambia el valor del puerto. Después sólo resta arrancar la aplicación:
     ./artifactory start

8.2. Tomcat
Para desplegar el Artifactory en Tomcat únicamente debemos hacer 2 cosas:

    8.2.1. Copiar el artifactory.war en el directorio webapps de nuestro tomcat

    8.2.2. Indicar al tomcat que el artifactory tendrá su “base” en el directorio donde lo hemos descomprimido (/opt/artifactory-2.4.2 en nuestro caso), para ello añadiremos al startup.sh de tomcat esta linea:
    export JAVA_OPTS=”${JAVA_OPTS} -Dartifactory.home=/opt/artifactory-2.4.2”


9. Desde el navegador chequeamos http://(ip:port)/artifactory y... VOILA!

10. Ojo, la cosa no termina acá, ahora viene la configuración... pero eso lo posteo mañana.

Saludos.