Restricciones de password en EAP 6/7

 

Hace tiempo que no posteo trucos, pero aquí va uno.
JBoss EAP 6/7 ofrece el script `add-user.sh` para la creación de usuarios administrativos o de aplicaciones.

Al solicitar el password, requiere uno con:

  1. Más de 8 caracteres
  2. Al menos una mayúscula
  3. Al menos un dígito
  4. Al menos un caracter no alfanumérico

El script genera una huella md5 codificada en base hexadecimal de la siguiente cadena “username:realm:password”, que guarda en el fichero de properties correspondiente mgmt-users.properties o app-users.properties
Bien, pues con la siguiente instrucción de python podremos generar una huella que podremos guardar manualmente y crear una password no sometida a las restricciones del script


python -c 'import hashlib; print hashlib.md5("username:realm:password").hexdigest()'

Todo ello con propósito de pruebas. ¡¡ NO APLICAR EN PRODUCCIÓN !!

Introducción a Ansible 2 – vol.2

Ansible

Avanzando con Ansible

Variables

En el post anterior pudimos ver cómo un playbook era capaz de instalar y configurar un servidor Apache, y abrir los puertos necesarios en el firewall. Si quisieramos instalar un servidor ftp tendríamos que crear un nuevo playbook; pero gracias a las variables vamos a ver como reaprovechar nuestro playbook.

Continue reading

Introducción a Ansible 2 – vol.1

Ansible

 

Ansible

Ansible es un motor de automatización IT radicalmente sencillo que automatiza el aprovisionamiento cloud, gestión de configuraciones, despliegue de aplicaciones, orquestación intra-servicios y muchas otras necesidades IT.

Diseñada para despliegues multi-capas desde el primer día, Ansible modela la infrastructura IT, describiendo cómo todos los sistemas se inter-relacionan, en lugar de gestionar un sistema cada vez.

No usa agentes ni infrastructuras de seguridad personalizadas, así que es simple de desplegar; y lo más importante, hace uso de un lenguaje sencillo, YAML, en la forma de Ansible Playbooks, que permiten describir los trabajos de automatización en una manera que se aproxima al Inglés.

Esta información está extraída de la documentación oficial de Ansible. Para más detalles docs.ansible.com.

Continue reading

Contenedores Docker: Añadiendo código

Docker

Modificando la imagen

En el post anterior vimos cómo descargar una imagen de Tomcat y crear un contenedor  desde ella. De ese modo pudimos tener instalado un servidor de aplicaciones web Tomcat. En la imagen base no está configurado el acceso a la consola de administración de Tomcat. Tomcat usa un fichero xml en el que se configuran los usuarios y los roles de acceso a Tomcat. Este fichero se llama tomcat-users.xml y se encuentra en el directorio ${TOMCAT_DIR}/conf. El contenido del fichero en la imagen base es:

Continue reading

Introducción a contenedores Docker

>> Es miércoles y David no ha publicado la 4ª parte del tutorial de OpenShift y por aquí se acerca Docker. ¿Se acerca el fin del mundo?
>> No tengo respuesta para eso, pero sí tengo una explicación de por qué no hay tutorial esta semana. Debido a una situación laboral muy particular, he decidido hacer una pausa en el Mega Tutorial de OpenShift v3.

>> ¿Y cuándo estará?

>>No tengo respuesta tampoco, pero es posible que en dos o tres semanas lo retome

>>¿Y mientras?

>> Pues mientras, ya que lo comenté y he tenido bastantes peticiones de ello, hablaré de Docker y de Ansible que, en parte, nos ayudará a profundizar en OpenShift v3

 

¿Empezamos?

Continue reading

OpenShift v3 (Mega Tutorial) – Parte 3 – CLI

OpenShift

OpenShift v3 – CLI

OpenShift pone a nuestra disposición dos maneras principales de conectar a su API: la línea de comandos y la consola Web. Vamos a empezar viendo el CLI (Command Line Interface).

CLI

OpenShift nos ofrece dos utilidades CLI para la gestión de nuestro clúster:

  • oc: es la herramienta básica, pensada para la creación y gestión de los proyectos y las aplicaciones. Es, por así decirlo, la utilidad para los desarrolladores.
  • oadm: esta herramienta administra el clúster. Permite gestionar ciertos recursos, límites, políticas y seguridad.

Ambas herramientas se encuentran disponibles en cualquier host de nuestro cluster, pero también pueden descargarse y utilizarse en una máquina remota. Existen dos versiones: únicamente oc, para plataformas Linux/Mac/Windows, y oc+oadm para Linux exclusivamente. Pueden descargarse aquí.

Continue reading

OpenShift v3 (Mega Tutorial) – Parte 2 – Ansible

OpenShift

OpenShift v3 – Ansible

Ansible es un motor de automatización IT radicalmente sencillo que automatiza el aprovisionamiento cloud, gestión de configuraciones, despliegue de aplicaciones, orquestación intra-servicios y muchas otras necesidades IT.

Diseñada para despliegues multi-capas desde el primer día, Ansible modela la infrastructura IT, describiendo cómo todos los sistemas se inter-relacionan, en lugar de gestionar un sistema cada vez.

No usa agentes ni infrastructuras de seguridad personalizadas, así que es simple de desplegar; y lo más importante, hace uso de un lenguaje sencillo, YAML, en la forma de Ansible Playbooks, que permiten describir los trabajos de automatización en una manera que se aproxima al Inglés.

Esta información está extraída de la documentación oficial de Ansible. Para más detalles docs.ansible.com.

Continue reading

OpenShift v3 (Mega Tutorial) – Parte 1 – Instalación base

OpenShift

OpenShift v3 – Instalación base

Disponemos de dos procesos de instalación:

  1. Simplificado: Que a su vez consta de tres versiones. La información de este mecanismo no la detallaré en este tutorial, pero si queréis probarlo lo tenéis disponible en la documentación de OpenShift
    • Contenedor Docker: Podemos obtener de dockehub una imagen all-in-one.
    • Descargar el binario: Red Hat ofrece binarios para ser ejecutados en nuestro sistema. Otro modelo all-in-one disponible en el github de OpenShift.
    • Compilar el código fuente: Es una alternativa al binario, compilar el código fuente de OpenShift. También all-in-one en github
  2. Avanzado: Hace uso de Ansible y será el que sigamos en este tutorial, por aproximarse a lo que sería un entorno de producción.

¿Empezamos?

Continue reading

OpenShift v3 (Mega Tutorial) – Introducción

OpenShift

OpenShift v3

Introducción

OpenShift v3 incorpora muchos cambios en su arquitectura e introduce nuevos conceptos y componentes. Está construido para ejecutar las aplicaciones en contenedores Docker, soportando programación y gestión provistos por el proyecto Kubernetes, y añadiendo una capa de funcionalidades de despliegue, orquestación y enrutamiento.

Los cambios más significativos giran entorno al modelo de contenedores y cómo son monitorizados e interconectados. Kubernetes pods son un grupo de contenedores que actuan como una única Máquina Virtual: tienen una IP única, pueden compartir un sistema de ficheros y, normalment, tienen parámetros de seguridad idénticos. Agrupar contendores incrementa de manera exponencial el número de aplicaciones que pueden incorporarse a OpenShift. En lugar de enfocarse en un modelo de microservicios que excluya al resto de patrones, los pods permiten a los desarrolladores migrar las aplicaciones existentes que necesitan compartir recursos locales mientras se benefician de este modelo  en contenedores.

En segundo lugar, se espera que los contenedores de OpenShift  sean inmutables: la imagen contiene un snapshot en concreto del código de la aplicación junto con las librerias necesarias, mientras que cualquier otra configuración, claves o datos persistentes son acoplados al contenedor en tiempo de ejecución. Esto permite a los administradores, y a los integradores, seoarar el código y los parches de las configuraciones y los datos. Aunque sigue siendo posible modificar los contenedores, mantener los conceptos de alto nivel de constucción y despliegue de contenedores inmutables ofrece garantías de qué código se está ejecutando y dónde.

El tercer cambio importante está en el diseño del núcleo del sistema: OpenShift y Kubernetes se construyen como un conjunto de microservicios que trabajan al unísono mediante un REST APIs para modificar el sistema. Esos APIs estñan disponbles para integradores de sistemes, y esos mismos componentes del núcleo se pueden deshabilitar para permitir implementaciones diferentes. Un claro ejemplo es el API watch: un cliente se puede conectar y recibir información de los cambios en los pods (u otros objetos) y realizar alguna acción cuando el pod esté disponible (para localizar errores o cambios en los registros del sistema). OpenShift establece un control de acceso preciso sobre su REST APIs para permitir esta integración, lo que quiere decir que no habrá cambios que realice el sistema que no pueda hacerlos un integrador.

Extraído de la documentación oficial de OpenShift

Continue reading