Estas en: Home > configurar

Entradas etiquetadas con configurar

Integración continua: Automatizando la creación de proyectos WordPress, Drupal, Symfony, etc. (II)

0

En el post anterior hemos actualizado el script que crea los repositorios, para poder añadirle unas cuantas acciones para automatizar la creación del proyecto (creación de directorios, directorios ignorados, etc.). Ahora vamos a desarrollar la segunda parte, que consistirá en la automatización de la instalación del cms o framework elegido.

(más…)

Integración continua: Instalar y configurar nuestra máquina virtual con VirtualBox, por consola

2

Este post veremos como crear una máquina virtual utilizando el software de virtualización VirtualBox. Esta máquina nos permitirá automatizar la configuración inicial de los proyectos (creación de bases de datos, configuración de crms, etc.). Además nos permitirá poder realizar test funcionales y otras tareas que nos ahorrarán gran cantidad de tiempo.

(más…)

Integración continua: instalando y configurando Jenkins

0

Ya vistes la checklist del último post: https://www.interadictos.es/2014/08/11/integracion-continua-primeros-pasos/, ahora vamos a empezar a instalar y configurar algunas herramientas, para ir poco a poco uniéndolas.

¿Qué es Jenkins?

Jenkins es nuestro servidor de integración continua. Es una aplicación que permite automatizar una lista de tareas que le indiquemos. Estas tareas pueden ser iniciadas de forma manual, pero lo habitual será llamar a la primera tarea de la lista cada vez que se realice un commit en el repositorio, e ir concatenando tareas hasta finalizar la lista completa. Tranquilo si no te haces aun a la idea, a medida que vayamos avanzando con esta guía lo iras entendiendo.

Instalando Jenkins

Primero descargamos la key del servidor de Jenkins, que nos permitirá añadirlo al archivo sources.list:

wget −q −O   class="external free" style="color: #663366;" href="http://pkg.jenkins−ci.org/debian/jenkins−ci.org.key" rel="nofollow">http://pkg.jenkins−ci.org/debian/jenkins−ci.org.key | sudo apt−key add 

A continuación lo añadimos al archivo sources.list. Puedes añadirlo de esta manera o añadirlo a mano:

sudo sh −c 'echo deb  class="external free" style="color: #663366;" href="http://pkg.jenkins−ci.org/debian" rel="nofollow">http://pkg.jenkins−ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'

Actuliazamos la lista de paquetes e instalamos:

sudo apt−get update
sudo apt−get install jenkins

Ahora necesitamos poder acceder a él a través de la red, para ello vamos a crear el subdominio jenkins.ic.net. Para poder acceder por el subdominio jenkins.ic.net es necesario crear un virtual host con proxy inverso, para ello instalamos varios módulos de Apache2 necesarios:

sudo a2enmod proxy
sudo a2enmod headers
sudo a2enmod deflate
sudo a2enmod proxy_http

Ahora creamos un virtualhost en /etc/apache2/sites-available llamado 001-jenkins.ic.net.conf (Podeis usar el nombre que quieras), con el siguiente contenido

 *:80>
        ServerName jenkins.ic.net  

         *>
                Order deny,allow
                Allow from all
         

        ProxyPreserveHost On
        ProxyPass /  class="external free" style="color: #663366;" href="http://localhost:8080/" rel="nofollow">http://localhost:8080/
        ProxyPassReverse /  class="external free" style="color: #663366;" href="http://localhost:8080/" rel="nofollow">http://localhost:8080/

La ruta habitual para acceder a Jenkins sería http://localhost:8080, si pudieramos acceder desde el mismo servidor de integración continua, si lo hicieramos desde fuera sería http://ic.net:8080. Para evitar tener que recordar el número de puerto utilizamos el archivo anterior. Nos facilitará la vida.

Ahora creamos un enlace simbólico de este archivo en /etc/apache2/sites-enabled.

sudo ln −s /etc/apache2/sites−available/001−jenkins.ic.net.conf /etc/apache2/sites−enabled/001−jenkins.ic.net.conf

Reiniciamos apache con:

sudo /etc/init.d/apache2 reload

En nuestro ordenador tendremos que editar el archivo hosts, para indicarle al pc a qué ip debe dirigirse para encontrar el alojamiento de jenkins.ic.net. Añadimos la siguiente línea al archivo (sustituye la IP por la de tu servidor de integración continua):

192.168.1.40 jenkins.ic.net

Ahora podrás escribir el subdominio en el navegador para acceder a la página principal de Jenkins.

A partir de aquí te recomiendo que explores todas las opciones de Jenkins, además de echarle un ojo a la documentación: https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins

En la administración de Jenkins puedes acceder al apartado de plugins, revísalos y podrás hacerte una idea de las posibilidades de esta herramienta.

Obligar a las apps de Android a instalarse en la tarjeta SD (desde Debian y Windows)

0

Hace unos días, y después de una actualización de las apps que tengo instaladas en el móvil me apareció el mensajito de falta de espacio en la memoria. He de decir que mi móvil es un HTC Nexus One y que ya de por si venía escaso de memoria interna (sobre 256MB), que os voy a contar de la RAM de este móvil que no sepáis ya, aunque esto último no es algo que me preocupe en exceso ya que no uso el móvil para aplicaciones con grandes consumos de memoria (si, si, ni para jugar. Para eso está el Diablo III xD).

Pero aun así las aplicaciones ocupan espacio en la memoria del teléfono, y eso de estar pasándolas a la tarjeta SD a mano es repetitivo, así que me he puesto a buscar algo de información para obligar a android que instale las apps en la tarjeta SD.

Bueno, pues en esa búsqueda de información encontré la siguiente guía de como hacerlo, pero para Windows:

http://onsoftware.softonic.com/como-obligar-android-a-instalar-apps-en-la-tarjeta-sd

La mayoría de aplicaciones que pide ya las tenía instaladas desde hace un tiempo. Al aprender a programar para android la mayoría son obligatorias. Respecto a los drivers para el usb de HTC, en Debian no son necesarios (ni en ningún sistema GNU/Linux o MacOS X).

Por tanto solo hay que activar en el móvil la depuración por USB, ubicado en la siguiente ruta:

ajustes -> aplicaciones -> desarrollo

 

 

Una vez activada esa opción conectamos el cable USB al móvil y luego al PC.

Abrimos una consola y nos identificamos como root.

Nos vamos a la ruta donde se instaló el SDK de Android, en mi caso lo encontré en:

/var/local/android-sdk-linux

En esa ruta accedemos a la carpeta platform-tools, y ejecutamos el siguiente comando:

./adb device

Esperamos a que nos devuelva el resultado, donde podremos ver el número de serie del dispositivo.

Comprobamos con netstat si el puerto 5037 está siendo usado, si es así tendremos que matar el proceso que lo esté utilizando.

Por último ejecutamos el siguiente comando:

./adb shell pm setInstallLocation 2

Cuando nos devuelva al símbolo del sistema desconectamos el móvil del PC y lo reiniciamos.

Ya tenemos activada la opción para que Android instale las aplicaciones en la tarjeta SD en vez de en la memoria interna.

Optimizar el servidor web Apache

1

Tenía intención de crear un post explicando la optimización de Apache, pero la verdad es que en la red ya existe bastante información al respecto por tanto os dejo dos links, uno explicando cada uno de los parámetros que se pueden modificar en el archivo httpd.conf de Apache y el otro con algunos ejemplos de optimización:   – Definición de parámetros: http://www.codenb.com/optimizar-apache-16/ – Ejemplos: http://www.forosdelweb.com/f58/recetas-para-configuracion-apache-404961/

Symfony, creando el archivo schema.yml para una base de datos ya existente

0

Sí, sigo dándole caña a Symfony… y cometiendo errores de novato xD.

Para ir probando Symfony con un proyecto real, he decidido utilizar una base de datos ya existente para generar una nueva versión del proyecto anterior, y como ya sabrás para que Symfony (bueno, en este caso Propel) genere las clases necesarias para trabajar con la BD es necesario que la estructura de ésta esté en el archivo schema.yml dentro de la carpeta /config del proyecto.

Para ello, primero hay que configurar la conexión a la base de datos en symfony de la siguiente manera:

symfony configure:database «mysql://login:password@localhost/basededatos»
symfony configure:database «mysql:host=localhost;dbname=nombreBD» root pass

Ahora le decimos a Propel que genere el archivo schema.yml a partir de la base de datos:

symfony propel:build-schema

Propel coge los datos de configuración de la BD que le hemos dado anteriormente.

Y con esto se genera el archivo schema.yml y symfony está listo para generar las clases.

 

PD1: Propel utiliza PDO para conectar con la BD, si por alguna razón os muestra un error diciendo que no encuentra el driver o algo por el estilo, simplemente id al archivo php.ini y habilitad la extensión pdo_mysql y reiniciar apache, esto lo debería arreglar.

PD2: Cada vez que tengas que generar el modelo recuerda de limpiar la caché de symfony para evitarte problemas:

symfony cc

PD3: Si al generar el modelo, Propel te devuelve un error de «tabla duplicada» o parecido, solo tienes que ir a la carpeta /config del proyecto y eliminar un archivo llamado generated-schema.yml (si no recuerdo mal).

Ir arriba