Docker con firewall (iptables=false)

Docker con iptables=false

Configurando Docker en nuestro servidor nos dimos cuenta que teníamos un problema, Docker crea por defecto las reglas necesarias en iptables para poder acceder a los contenedores desde todas las interfaces y el resto del universo.

Nosotros tenemos securizadas las conexiones de la máquina con APF, un firewall basado en conjunto de scripts que mediante un fichero de configuración se encarga de generar las reglas de iptables simplificando la tediosa tarea de configuración iptables. A pesar de tener bloqueados los puertos expuestos de los contenedores mediante el firewall, nos dimos cuenta que los puertos estaban expuestos a internet.

Para evitar este problema la mejor solución es desactivar el uso de iptables por parte de Docker. Para ello hay que añadir la configuración iptables=false al demonio de docker. En nuestro caso como

Leer más


Fragmentos en Thymeleaf 3 cargados con ajax

Introducción

En este entrada voy a explicar cómo aprovechar las posibilidades que nos ofrecen los fragmentos de Thymeleaf para poder reutilizar bloques de un template y renderizarlos directamente mediante ajax.

Para ello vamos a poner como ejemplo de uso un caso recurrente…. la carga de una lista de elementos en un formulario filtrados según el valor de otro campo. En el ejemplo utilizaremos un formulario de selección de vehículos, seleccionando la marca se cargará automáticamente el listado de modelos existentes para la marca seleccionada.

 

Manos a la obra

La solución que vamos a implementar va a cargar mediante ajax la lista de modelos realizando una petición al servidor. La respuesta devolverá el código HTML que se corresponde con el listado de modelos filtrado por marca, posteriormente reemplazaremos el código HTML del listado de modelos por el nuevo

Leer más


Tutorial Jenkins 2 – Configuración pipeline

Introducción

Después del tutorial de instalación de Jenkins 2 en Ubuntu, continuamos con la configuración de Jenkins 2 con un sencillo pipeline de integración continua.

En este tutorial aprenderemos los fundamentos de los pipelines de Jenkins y configuraremos uno sencillo en el que integraremos una aplicación java con Spring Boot + Maven + GitHub. El pipeline lo mantendremos en el propio repositorio de GitHub y conectaremos GitHub con Jenkins de forma que cada vez que se realice un commit en el repositorio se ejecute de forma automática el pipeline de Jenkins.

 

Índice


Tutorial Jenkins 2 – Instalación

Instalación Jenkins 2 en Ubuntu

Vamos a instalar la última versión de Jenkins disponible en Ubuntu utilizando los paquetes del repositorio oficial de Jenkis. Para ello ejecutamos los siguientes comandos para añadir el repositorio y realizar la instalación de Jenkis.

$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ echo -e "\ndeb http://pkg.jenkins-ci.org/debian binary/" | sudo tee --append /etc/apt/sources.list > /dev/null 
$ sudo apt-get update
$ sudo apt-get install jenkins

¡Ya tenemos instalada la última versión de Jenkins! Podemos ver el log en la ruta /var/log/jenkins/jenkins.log y acceder a la aplicación en la dirección http://localhost:8080. Para modificar las rutas de los logs, el puerto de escucha y otras opciones de configuración el fichero que buscas es /etc/default/jenkins.

Una de las novedades de la versión 2.0 de Jenkins es

Leer más


Conector Microsoft para Spring Social

He estado jugueteando con el módulo spring-social para la autenticación de nuestras aplicaciones utilizando servicios Oauth como los de Linkedin, Facebook o Twitter. He realizado una implementación sencilla de un conector para la plataforma de Microsoft y he subido el código fuente a GitHub. Lo podéis descargar desde spring-social-microsoft v0.1.0.

En el repositorio de GitHub incluyo tres módulos:

  • spring-social-microsoft: módulo principal que permite la integración de spring-social con la plataforma de Microsoft.
  • spring-social-microsoft-autoconfigure: proyecto para permitir la autoconfiguración con Spring Boot.
  • spring-social-microsoft-demo: aplicación web de demostración.

 

En el README del proyecto principal se puede ver las instrucciones de configuración y como lanzar la aplicación de demostración.

En próximas entradas del blog explicaré como integrar este sistema para la autenticación y autorización de los usuarios en nuestros desarrollos web utilizando spring-boot, spring-social y spring-secutiry.

Recursos:

Leer más


Cómo desplegar una app en Cloud Foundry

Introducción

En esta entrada voy a explicar como desplegar una aplicación basada en Spring en la plataforma Cloud Foundry. Para ello utilizaremos nuestro entorno Cloud Foundry local.

La aplicación pong_matcher_spring que vamos a utilizar como ejemplo requiere el servicio mysql en nuestra instancia Cloud Foundry, para instalarlo podemos seguir la guía cómo instalar el servicio mysql en Cloud Foundry.

 

Creando organización y espacio

En Cloud Foundry las aplicaciones se despliegan en espacios (spaces) que a su vez se encuentran agrupadas en organizaciones (orgs).

Las organizaciones son cuentas personales ó empresariales creadas en la plataforma de Cloud Foundry desde las que se pueden gestionar las aplicaciones y servicios pertenecientes a la organización. Los espacios se corresponden con las aplicaciones o servicios desplegados en dicha organización. La relación entre organizaciones

Leer más


Instalando servicio mysql en Cloud Foundry

Introducción

En esta entrada vamos a ver cómo instalar el servicio mysql en la plataforma Cloud Foundry. Para ello utilizaremos nuestro entorno de pruebas Clound Foundry local.

A pesar de su nombre, el servicio mysql está compuesto por un servidor MariaDB Galera Cluster. MariaDB es una alternativa con licencia GPL que es totalmente compatible con el servidor MySQL de Oracle.

 

Instalando servicio mysql

Vamos a desplegar el servicio con la última versión disponible, en el momento de hacer este tutorial la última versión es cf-mysql-26.

$ cd ~/workspace
$ git clone https://github.com/cloudfoundry/cf-mysql-release.git
$ cd cf-mysql-release/
$ bosh upload release releases/cf-mysql-26.yml

Ejecutamos el script que genera el manifest necesario para nuestra instancia Cloud Foundry local creada con BOSH-lite.

$ ./scripts/generate-bosh-lite-manifest 
Target set to `Bosh Lite Director'
Logged in as `admin'
Deployment set to															

Leer más


Cómo instalar Cloud Foundry en local (Ubuntu)

¿Qué es Cloud Foundry?

CloudFoundry (CF) es la propuesta de VMWare para la creación de un entorno PaaS (plataforma como servicio) sobre un entorno IaaS (infraestructura como servicio). Está basado en software abierto y se está convirtiendo en el estándar en la industria para soluciones PaaS. Una de las grandes ventajas que ofrece CF es que es una solución opensource y multi-nube.

Para probar el funcionamiento de CF podremos utilizar alguna de las cuentas gratuitas de prueba que ofrecen los proveedores como por ejemplo la prueba de 60 días de Pivotal PWS. En nuestro caso hemos optado por crear una instancia local en nuestro entorno de trabajo basado en Ubuntu.

 

Requisitos

La instalación en local la vamos a realizar en un entorno

Leer más


Cómo instalar Java 8 en Ubuntu 15.10

Por defecto Ubuntu tiene en sus repositorios la versión de la JVM de Java OpenJDK que es libre y mantenida por la comunidad. En el caso de que necesitemos instalar la versión 8 de la JDK de Oracle lo podemos hacer fácilmente añadiendo el repositorio PPA de webupd8team con los siguientes comandos:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

También podemos instalar de forma adicional el paquete oracle-java8-set-default para establecer las variables de entorno de forma automática.

sudo apt-get install oracle-java8-set-default

Para finalizar, podemos comprobar las versiones de java que tenemos configuradas con los siguientes comandos.

java -version
javac -version

Leer más


Certificación Java 8 – Cómo preparla

Hace unos días he podido completar la certificación de Oracle de Java 8 SE, en concreto la certificación Java SE 8 Programmer I 1Z0-808. Voy a resumir en esta entrada en que consiste esta certificación y algunos de los recursos que he utilizado para preparar el examen y poder superarlo con éxito.

Certificaciones Oracle Java

Si te planteas presentarte al examen de certificación necesitarás conocer las certificaciones de Java existentes y saber los requisitos que se han de cumplir para poder presentarte a los exámenes. Existen cuatro tipos de certificaciones en distintos niveles, según vamos avanzando en los niveles las certificaciones serán más complejas y especializadas.

La certificación Java SE 8 Programmer I 1Z0-808 es la puerta de entrada al abanico de certificaciones que ofrece Oracle para el lenguaje de programación Java.

La

Leer más