Entradas

Mostrando entradas de 2022

Docker, cómo confiar en certificados self-signed en Ubuntu 22.04

Es muy común desplegar una Registry privada en nuestro ambiente para gestionar imágenes de contenedores. También es habitual que esta registry privada tenga certificados auto-firmados.  Pero cuando ejecutamos "docker login" recibimos un mensaje de error diciendo que no puede verificar la validez de los certificados de la Registry. x509: certificate signed by unknown authority Instalar certificados autofirmados en Ubuntu 22.04 Para que Docker funcione correctamente debemos instalar el certificado CA de la Registry en nuestro Ubuntu 22.04.  En el siguiente ejemplo asumo que el certificado ca se llama "registry-ca.crt": # Instalamos las dependencias necesarias sudo apt-get install -y ca-certificates # Copiamos el certificado sudo cp ./registry-ca.crt /usr/local/share/ca-certificates # Actualizamos los certificados de Ubuntu sudo update-ca-certificates # Reiniciamos el servicio de Docker sudo service docker restart Ahora ya podemos ejecutar "docker login&qu

Instalar Ubuntu Cloud Image y configurar con mi usuario y password

Imagen
En este artículo se describen los pasos para desplegar un Ubuntu Cloud-Image en nuestro datacenter, configurarlo con IP fija, con nuestro usuario y habilitar el login por SSH con contraseña. Las "cloud-images" de Ubuntu son geniales. Podemos deplegar un servidor en minutos directamente desde un template en cualquier nube o datacenter que querramos. Uno de los beneficios que más me gusta es que, cambiando el tamaño del disco rígido de la Máquina Virtual, la imagen actualiza sus particiones simplemente reiniciando el servidor. Cloud Images Las imágenes cloud de ubuntu las podemos encontrar en  https://cloud-images.ubuntu.com/ . Seleccionamos la versión y descargamos el formato que corresponda con la nube en la cual queremos desplegar. En mi caso es nube de VMware por lo que descargo el archivo .OVA. Pre requisitos En principio, cloud image permite el ingreso por SSH con certificados. Por lo que, si no contamos con uno, debemos crearlo. En ubuntu esto es sencillo, simpemente eje

Kubernetes, Pod para generación de tráfico

Imagen
Muchas veces debemos generar tráfico cuando estamos testeando una aplicación. Hace poco estaba probando el reenvío de logs desde Kubernetes hacia plataformas externas y necesitaba generar dichos logs. Para ello creé un Contenedor que generara llamadas a diferentes URLs usando el comando "curl". Definiciones Pensé en un contenedor que aceptara, por variables de entorno, los siguientes parámetros: REQUESTS_COUNT: cantidad de llamadas que debía realizar SECONDS_BETWEEN_REQUESTS: tiempo de espera entre las llamadas URLS: lista de URLs a las cuales llamar Construcción de la imagen Docker Simplemente construí una imagen basada en Alpine a la cual fue necesario agregarle los paquetes "curl" y "bash". El entrypoint fue un simple archivo ".sh" que hace llamadas curl aleatorias basado en la lista de URLs. #!/bin/bash requestsCount = "${REQUESTS_COUNT:-3}" sleepSeconds = "${SECONDS_BETWEEN_REQUESTS:-0.5}" IFS = ' ' read -r

vRA8 - Definir redes disponibles por Projecto

Imagen
¿Cómo compartir un Template entre varios Proyectos de vRealize Automation 8.x si cada Proyecto debe utilizar diferentes redes? En vRealize Automation 7.x las redes se definían en la Reservación de un Bussiness Group y se podían consultar con una Action "built-in" de vRO. En vRealize Automation 8.x la reservación de define en el Proyecto y no incluye las redes que puede utilizar. Configurar los Proyectos   Definimos dos Proyectos y en cada uno de ellos agregamos una Custom Property llamada "applicableNetworks" y, como valor, definimos los TAGs correspondientes a las redes que queremos habilitar para el Proyecto (separados por comas). Para el Proyecto #1: dev,qa Para el Proyecto #2: dev,qa,dmz Template En el Template definimos un Input y listamos las redes. De esta forma podremos probarlo en Cloud Assembly. vRealize Orchestrator En vRealize Orchestrator creamos una Action para seleccionar las redes según el Proyecto. Debe devolver un String Array y aceptar un String &

Aplicación para Kubernetes - Documentación

Imagen
Hoy en día muchas empresas están comenzando a trabajar con Kubernetes. Hay bastante información y varios productos que hacen sencillo el despliegue y el mantenimiento de clusters. Sin embargo, para los equipos de desarrollo no hay tanta información o tal vez todavía no hay un acuerdo real en "cómo hacer las cosas". Mi objetivo es construir una aplicación sencilla buscando mejores prácticas para que me sirva de guía al momento de construir aplicaciones más complejas. Documentación de una aplicación para Kubernetes Toda aplicación comienza con una definición de arquitectura y un diseño. Mi primer pregunta es obvia, ¿cómo puedo documentar una aplicación para Kubernetes? Estuve googleando pero no encontré una forma "aceptada" de hacerlo.  Este es mi primer intento de documentación de mi aplicación: Elementos en la documentación Todo comienza con un usuario que interactúa con un "servicio" que balancea un "replicaset".  El replicaset gestiona "Po

VPNs en Ubuntu 22.04

Imagen
Por mi trabajo necesito conectarme a diferentes VPNs todo el tiempo. Ubuntu es genial para esto, sobre todo en comparación con Windows. Habilitando VPNs en Ubuntu Para habilitar las VPNs adicionales en Ubuntu 22.04 primero instalé los paquetes necesarios: sudo apt-get install -y network-manager-openconnect-gnome network-manager-openconnect network-manager-vpnc network-manager-vpnc-gnome vpnc vpnc-scripts openvpn easy-rsa network-manager-openvpn-gnome Sin embargo Cisco AnyConnect y Fortinet , las dos VPNs que más utilizo, no aparecen en la lista cuando intento configurar una nueva conexión. Configurando las VPNs que no aparecen el listado  Aún cuando no aparecen en el listado, hay varias VPNs que se pueden configurar. Para ello, iniciamos el Advanced Network Configuration (o ejecutamos nm-connection-editor en la terminal) y aquí podemos configurar muchas otras opciones.

Dig, la alternativa a nslookup

Imagen
Luego de muchos años de usar el comando "nslookup" finalmente cambié por el nuevo comando "dig" que viene disponible en forma predeterminada en Ubuntu 22.04. Realmente es más rápido y tiene muchas opciones interesantes. Mis opciones más usadas Query básico dig google.com Query indicando el servidor DNS al que le quiero consultar dig @8.8.8.8 google.com Devolver sólo la IP dig google.com +short Sólo el resultado de la consulta dig google.com +noall +answer Trace dig google.com +trace Reverse lookup dig -x 8.8.8.8

Cómo obtener la documentación de los laboratorios de VMware

Imagen
Muchos ya conocen Hands On Lab (HOL). Es una excelente plataforma con laboratorios para aprender sobre los productos de VMware. Lo que no muchos saben es que podemos descargar la documentación de los laboratorios para poder consultarla más tarde. Laboratiorios Ingresamos a la plataforma de Hands On Labs , ingresamos un texto relevante a lo que estamos buscando y aparecerán los laboratorios disponibles. Para poder hacer los laboratorios debemos registrarnos, es gratuito, con cualquier dirección de mail. En este ejemplo vemos un gran laboratorio para aprender las tecnologías básicas de Virtualización de VMware. Podemos "enrolarnos" y hacer el laboratorio.  Documentación Para obtener la documentación vamos docs.hol.vmware.com . En la caja de búscqueda ingresamos el código del laboratorio, en el ejemplo sería "HOL-2210-01-SDC", luego hacemos clic en "Summary", clic en "Show Documentation" y, por último, el idioma del PDF que queremos descargar.

Nested ESXi Virtual Appliance - Modificar la versión de Virtual Hardware

Imagen
En el blog de William Lam hay diferentes Appliances de Hosts ESXi para poder armar nuestros laboratorios virtuales. Sin embargo, no me funcionaron las versiones 7.0+ ya que requieren una versión de hardware superior a la que puedo usar en mi laboratorio. Este procedimiento describe cómo modificar el Virtual Hardware de un appliance de ESXi. Sin embargo, el procedimiento aplica a cualquier modificación que necesitemos realizar en un OVA. Paso 1: Instalar OVF Tools Existen versiones para Windows, Mac y Linux y se pueden descargar desde  customerconnect.vmware.com . Paso 2: Extraer los archivos del OVF ovftool.exe --allowExtraConfig --skipManifestCheck "MY_TEMPLATE.ova" "MY_UNPACKED_TEMPLATE.ovf" Paso 3: Modificar la versión de Virtual Hardware Editamos el .ovf y modificamos el XML para identificar Virtual Hardware 13 <System> <vssd:ElementName> Virtual Hardware Family </vssd:ElementName> <vssd:InstanceID> 0 </vssd:InstanceID> &l