Archivo de la etiqueta: panzuela

Portes económicos

uship Desde hace unas semanas estoy viajando y usando bastante el transporte público, además de hacer casi 8 kilómetros al día andando. Al principio me pareció una gran idea, despejarme andando durante un “ratito” cada día antes y después de ir a la oficina, pero pasadas tres semanas… ha dejado de serlo.

He decidido traer mi juguete hasta Barcelona y para ello he puesto un anuncio en el portal www.uship.com que  permite a empresas de transporte ofrezcer sus servicios y hacer ofertas para que uno mismo seleccione el que más le guste o interese. Ahora me encuentro en la primera etapa, punto en el que he aceptado una oferta de la empresa www.mototransporte.com. Por ahora me parece una empresa competente, así que confío en una entrega satisfactoria.

Muy pronto pondré una actualización sobre el resultado.

 

Yamaha XJ6
Yamaha XJ6

Actualización: La entrega fue perfecta, pude ver como se transportó y estaba muy bien asegurada y tapada, además de aceptar de muy buen grado sumar al porte las chaquetas, cascos y guantes. Buenos, muy buenos.

www.mototransporte.com es 100% recomendable y sobre todo, quiero destacar la amabilidad y el trato de del transportista, les doy un diez !! Aquí os dejo una foto de mi juguete cuando llegó :)

Puppet installation and configuration

Enmarcado en el proyecto personal que estoy desarrollando desde  hace unos meses, surge la necesidad de poner en marcha un sistema que permita hacer despliegues en el entorno de desarrollo, antes de llevarlo a producción. La solución para tenerlo todo controlado y poder manejar los despliegues fácilmente en los entornos reside en el uso de herramientas como chef o puppet (si quieres ver una comparativa entre los productos clic aquí). El que uso es puppet y vamos a ver como está montada la base. Puppet requiere conectividad con todos los nodos que comprondrán la infraestructura y estos nodos deberán conocer el nombre del servidor, así que es fundamental el servicio DNS para no perdernos con las direcciones IP y reducir los problemas, que los habrá para hacer más divertido el montaje/aprendizaje.

Requisitos del servidor y el cliente

Resolución DNS y sincronización NTP, sin esto, obtendremos errores de todo tipo, los más habituales, errores de certificado en la descarga de configuraciones por parte de los clientes.

Establecer el repositorio

Instalación del repositorio de puppet en el sistema de los servidores, tanto en el que ejecutará puppet master como los clientes:

Configuración del servidor

Instalación del paquete puppetmaster y todas sus dependencias:

La instalación de estos paquetes generará los scrips de inicio automático en /etc/init.d que tendremos que agregar al inicio del sistema:

Por defecto la instalación del servidor no incluye la sección [master] así que vamos a crearla e introduciremos dos directivas

Ahora tenemos que decirle donde están los nodos y como se agrupan. Esto lo vamos a realizar sobre un archivo de nodos llamado nodes.pp y uno general para incluir los nodos y demás configuración, por ahora solo los nodos:

El contenido de cada archivo es el siguiente:

Instalación y configuración de los clientes

Instalación del paquete puppet y todas sus dependencias:

[root@puppetclient1 puppet]# yum install puppet

Cada cliente requiere que le indiquemos cual será su nombre y para ello introduciremos en la sección [agent] del fichero de configuración /etc/puppet/puppet.conf

CentOS dispone del fichero de configuración /etc/sysconfig/puppet.conf para personalizar algunas directivas sin que tengamos que editar el fichero principal de configuración de puppet /etc/puppet/puppet.conf   En mi caso, he decidido hacerlo sobre el propio de puppet. Este es su contenido:

Iniciamos los servicios

Arrancamos el servidor y a continuación los clientes.  Recomendable un less en el log del servidor para comprobar que todo va bien. Además, en el primer cliente, será interesante arrancarlo con las opciones indicadas:

Vamos a firmar los certificados manualmente, aunque también podemos hacer que se firmen de forma automática. A veces aparece el mensaje Notice: Did not receive certificate precisamente por no estar el certificado firmado.

Para que se firmen los certificados automáticamente hay que agregar una directiva en el bloque [master]

Dentro de este fichero vamos a asegurar un poco la infraestructura impidiendo que nadie pueda meter un servidor en ella y se cargue de la configuración que reparte puppet

Vamos a listar ahora los clientes que tenemos, incluido el servidor:

Ahora veamos qué podemos hacer con el “cacharro”.

Para distribuir archivos, paquetes y ejecutar acciones, debemos crear un módulo que nos permita hacer lo que necesitemos.

Los módulos su ubican en la ruta /etc/puppet/modules/ y siguen la estructura de directorios: manifests templates y files. Aunque no siempre requiere de todos los directorios, pero sí del principal, manifests.
En nuestro caso, vamos crear un archivo para distribuirlo a los clientes y nos servirá como ejemplo para ver el lenguaje usado para la construcción de estos archivos y como no, usaremos el famoso motd para el ejemplo.
El primer paso será la creación de un módulo que llamaremos motd

Ahora vamos al directorio manifests y creamos un archivo init.pp con el siguiente contenido

Necesitamos colocar en el directorio files un archivo llamado motd con el contenido que deseamos mostrar en los inicios de sesión de los servidores a los que se repartirá.

Trabajar con un sistema como puppet nos da la posibilidad de repartir software a todos los nodos o simplemente, a los nodos que deseemos. Será sobre el archivo nodes.pp creado al inicio donde tendremos que indicar sobre qué nodos tendrá que ejecutar el reparto de archivos.
reload del servidor puppetmaster

Ahora el proceso repartirá automáticamente el archivo entre los clientes que pertenezcan al grupo mfernandeznodes

Para la siguiente entrada veremos como hacer toda la infraestructura un poco más “visual”

Referencias: http://docs.puppetlabs.com/puppet/

 

Virtualbox internal connection

Configuremos VirtualBox para trabajar con nuestras máquinas virtuales de forma independiente a la red en la que nos encontremos conectados o simplemente, cuando no disponemos de una conexión de red.
Desde Archivo > Preferencias > Red agregaremos un interfaz y lo configuraremos del siguiente modo:

Captura de pantalla de 2013-05-13 18:06:47

Vamos a asignar una dirección IP al servidor, en mi caso: 10.10.10.2

Captura de pantalla de 2013-05-13 18:07:41

El DHCP asignará desde la 5 a la 10

Captura de pantalla de 2013-05-13 18:07:53

 

Ahora debemos configurar la máquina virtual para que pueda funcionar con el nuevo interfaz en modo “solo anfitrión”

Captura de pantalla de 2013-05-13 18:08:33

Pues ya lo tenemos, ahora solo configuraremos la máquina virtual para que tire de este DHCP o le asignaremos una IP fija.

 

Html to PDF

Ayer recibí una petición interna para crear un reporte diario sobre la visualización de algunas Webs. Como en todos los casos vamos al terminal y a mirar el repo: yum search html | grep -i pdf   Haciendo memoria recordé que ya necesité algo parecido en otra ocasión. Desde la web del proyecto podremos localizar más información sobre lo que hace wkhtmltopdf

Es un programa muy simple que no requiere hacer prácticamente nada, eso sí, trabajo con sistemas CentOS minimal y he tenido que meter algún que otro rpm del repo, pero han sido pocos.

Instalamos las dependecias (agrego -y para otra vez que lo necesite)

Arrancamos el gestor de ventanas virtual y lo dejamos en ejecución, puede que sea necesario meterlo en el init con un script, depende de lo crítico que sea:

Pillamos el ejecutable:

No, no descargo el tar… en el server no se mete basura, para eso está tu cacharro de pruebas o un repo propio de software donde almacenar las aplicaciones que tienes en producción.

He creado un sh que me permite automatizar el proceso y enviar el reporte por mail sobre un usuario que he llamado informes, este informe tiene horientación horizontal (landscape).

Para que quede “bonita” la recepción de email, he puesto la opción -r sobre el comando mail, también he puesto algunas opciones como no tener márgenes en el PDF tratando de meterlo todo en una única hoja.

Entra con el usuario informes (el que yo tengo para estas acciones, tu lo haces como quieras) y generar una tarea programada con crontab -e y después verifícala con -l

Starting a new project NSC

Son muchos los meses esperados para comenzar a desarrollar una idea que, aunque no es original 100%, sí que tiene un atractivo que puede hacernos ganar dinero o me hace perder mis ahorros… esto es lo que menos me importa y la más probable :)

Todos los participantes del proyecto estamos implicados para que la idea funcione y sea rentable. Iremos poco a poco para tratar de hacer las cosas bien, esta no es la primera vez que nos embarcamos en este tipo de aventuras y la cosa sale mal o lo dejamos a medias, ponemos muchas escusas cuando hemos perdido la ilusión, la mayoría inventandas.

Ahora que tenemos la mentalidad emprendedora además de muchas ganas, bajemos a nivel técnico para obtener una idea del proyecto y cómo lo desarrollaremos.

Eje central y punto de encuentro:

Todos debemos colaborar y desarrollar en grupo, así que lo primero que necesitamos es un entorno colaborativo y nos hemos decantado por Assembla que para el volumen actual, será suficiente durante el arranque y aunque sabemos que necesitaremos más espacio, ampliaremos con sus planes de pago, que son muy buenos. Además, mientras adquirimos el primer servidor, recuperaré las licencias de Jira, Confluence, GreenHopper y otras que poseo de Atlassian.

Diversas charlas con el maestro Romay me indican que debemos estar preparados para cualquier cosa, estaremos preparados para llamarle. Puedo adelantar que hemos decidido usar PHP junto a un backend MySQL y aunque entiendo que ahora mismo suena a cochinada simple, hay mucho más que no hace falta contar por ahora.

 

Odioado por todos, Urdangarin

Hace poco he visto en Linkedin un artículo interesante, comentaba que podemos encontrar un dato muy curioso publicado por la casa real para dejar claro a todos los españoles un dato significativo, en el archivo robots.txt aquí: http://www.casareal.es/robots.txt

Voy a poner el contenido, por si cambia:

User-agent: *
Disallow:
Disallow: /_*/
Disallow: /ES/FamiliaReal/Urdangarin/
Disallow: /CA/FamiliaReal/Urdangarin/
Disallow: /EU/FamiliaReal/Urdangarin/
Disallow: /GL/FamiliaReal/Urdangarin/
Disallow: /VA/FamiliaReal/Urdangarin/
Disallow: /EN/FamiliaReal/Urdangarin/
Sitemap: http://www.casareal.es/sitemap.xml

From JAVA code to UML Diagrams

Todos los desarrollos sufren modificaciones y estas provocan una actualización constante de los diagramas UML que hayamos creado previamente. Entiendo muy importante este diagrama como complemento en la documentación de cualquier desarrollo.

ObjectAid es un plugin para Eclipse que nos permite crear de forma simple este diagrama, mediante drag and drop de las clases que componen el proyecto. Este plugin podemos incluirlo en nuestro IDE del siguiente modo

  • Desde Eclipse navega a  Help> Install New Software
  • Agrega un nuevo repositorio Add a new repository
  • Ponle un nombre JAVA2UML
  • Coloca la URL http://www.objectaid.com/update

objectid

Cuidado los rapidillos al instalar, tenemos 2 posibles plugins y tan solo “ObjectAid Class Diagram plugin” es gratis, el otro requiere licencia. Ahora sí, todo adelante !

Ahora toca comenzar a meter clases en el diagrama y para ello creamos un nuevo “Class Diagram", dándolo el directorio y nombre del diagrama. Arrastra ahora tus clases y configura el plugin como más te guste haciendo clic derecho sobre el lienzo. También permite clic derecho sobre las clases para abrir un menú que ofrece más posiblidades.

objectid2

Start HSQL Server – Explore your data

Desde que estoy usando HSQL para pruebas y algunos proyectos estoy encantado. Fácil, simple y extremadamente liviano es este motor que nos permite jugar tanto como deseemos, pero ¿Cómo se inicia y explora el contenido creado en nuestro modelo de datos?

Pues vamos a ir empezando arrancando el cacharrito

Una vez iniciado vamos a ver su contenido iniciando un interfaz propio

hsql

Pulsando OK podrás ver el contenido de tu base de datos.

Vamos a crear una clase para abrir una conexión con JAVA

Se agradece la ayuda recibida del maestro Jaime :)

 

Virtualización con Proxmox sobre Server Hetzner

  Voy a compartir con todos vosotros en este, el primer post desde hace unos años, cómo es mi arquitectura actual sobre Proxmox en un servidor dedicado del proveedor Hetzner. Como el dinero es el que manda, en nuestro caso estamos usando un servidor 4S (estaba de oferta la instalación)  con una sola IP pública.

Proxmox es una plataforma de virtualización gratuita que permite virtualizar todo tipo de sistemas, para ello la plataforma soporta OpenVZ y KVM (yo uso KVM) y muchas más opciones como alta disponibilidad, autenticación centralizada, almacenamiento…

Como apunte, puedo verificar que también funcionan estupendamente sistemas W2003Server y W2008Server 😀

 

Vamos a montar el tinglao

Desde la consola de administración del sistema Hetzner (Hetzner Robot) vamos a decirle al sistema que se cargue la imagen de Debian a 64 bits minimal. Debo decir que probé a montarlo en un sistema CentOS, pero me encontré con muchos problemas y tuve que hacerlo con Debian. Todo el inicio del sistema y su acceso inicial es intuitivo y sencillo, sobre la estructura que tendrá el sistema poco puedo decir porque este aspecto es como el culo, cada uno tiene el suyo.

Os recomiendo cambiar algunas cositas importantes en el sistema:

  • Crea un usuario y deja root (adduser panzuela)
  • Puerto SSH y capado de root por SSH
  • Actualizar al máximo el sistema
  • Reconfiguración de paquetería
  • Álias de comandos
  • Instalación de agente para monitorización del sistema (NRPE en mi caso).
  • Nombre del sistema
  • Hora del sistema (dpkg-reconfigure tzdata)
  • Quitar servicios del inicio que no usaremos (update-rc.d)

Ya está todo listo, tenemos el sistema como nos gusta, todo cerrado y limitado para comenzar con la instalación de proxmox.

Agrega en el fichero sources.list las siguientes líneas:

deb http://download.proxmox.com/debian squeeze pve

Agrega la key del repo:
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

Recargamos la lista de paquetes con el nuevo repo:
aptitude update

Instalamos el Kernel Proxmox, este realmente contiene el hypervisor:
aptitude install pve-kernel-2.6.32-12-pve

Una vez instalado, instalamos Proxmox:
aptitude install proxmox-ve-2.6.32

Deberá aceptase la instalación de dependencias y la instalación del servidor citadel (en mi caso mantuve las opciones por defecto).

Una vez instalado tendremos que agregar el nuevo virtualhost que se genera en apache:
a2ensite pve-redirect.conf
Reiniciamos apache mediante el modo AGA:
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
(Costumbre adquirida de Don Agustín García, gran amigo y maestro)

Se necesitan instalar los siguientes paquetes (Configurar al gusto):
aptitude install ntp ssh lvm2 postfix ksm-control-daemon vzprocps mtr-tiny mc
*La instalación de postfix preguntará por el tipo de servidor (Internal site) y  por el host: cdtec.es

Ahora tenemos todo el sistema montado y necesitamos acceder a la herramienta Web para crear nuestras máquinas.
pveum groupadd sysadmin
pveum aclmod / -group sysadmin -role Administrator

Creamos el usuario (vale el creado anteriormente) y lo hacemos sysadmin

pveum useradd panzuela@pam  (Puedes cambiarle el password con pveum passwd usuario@pam)

Finally, add user to the admin group:
pveum usermod panzuela@pam -group sysadmin

Ya estamos listos para acceder al sistema, pon en tu navegador la siguiente ruta:

https://<IP>:8006

Ya tenemos el sistema listo para comenzar a virtualizar máquinas. Es nuestraropia “cloud”.

proxmox