Posts

  • Integrate Terraform Language Server Protocol With vim

    Aug 20
  • VIM

    We write large-scale infrastructure with terraform. We spend hours creating modules, writing resources, developing infrastructure. To feel more comfortable, surely we need a langserver in our editor. I’ll show how to integrate a terraform langserver in vim - making it a Swiss Army Knife.

    The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features. Like auto complete, go to definition, find all references and alike into the tool. This post explains how to integrate terraform-lsp on vim.

  • Continuous Integration for Golang Applications with Terraform, Codebuilds and ECR

    Jul 26
  • I wrote this post for sharing, how we can do continuous integration for Golang APIs with some tools. In this post I’m going to use terraform for making a codebuild resource, Code build to build the Golang API and generate a docker image and ECR for keeping the docker image. The workflow: The continuous integration workflow is very easy to understand, every time a new tag is created the webhook will start the job, Codebuild will compile the Golang API and will generate the docker image, then will run a docker push to AWS ECR,
  • Parseando JSON con Golang y las naves de spaceX

    Feb 10
  • Golang

    Golang se ha convertido en uno de mis lenguajes favoritos y hoy escribiré de como podemos usar go para poder consumir la API de spaceX y obtener información de las naves lanzadas al espacio

    Soy admirador total de Elon musk y de todas sus compañías, una de ellas es spaceX, una compañía dedicada al transporte aeroespacial y hoy por medio de Golang vamos a obtener información de su ultima nave lanzada al espacio.

  • Creando un cluster de kubernetes en GCP con terraform

    Feb 3
  • Kubernetes

     

    Terraform, es una de las herramientas mas potentes de hashicorp y hoy en día es usada por grandes compañías para mantener infraestructura en la nube.

    Terraform destaca porque podemos trabajar con múltiples providers al mismo tiempo, ¿ que quiere decir esto ? que le podemos decir a terraform que cuando se cree una nueva instancia en GCP al mismo tiempo  genere un registro DNS en route53 en AWS, esto de una manera muy sencilla.

    Pero hoy no vamos a hablar de AWS, hoy vamos a hablar de GCP, una nube muy poderosa que tiene características muy interesantes para tener en cuenta y en este caso, construiremos un cluster de Kubernetes en GCP usando terraform.

    Conectandonos a Google Cloud platform:

    Para conectarnos a GCP solo necesitamos determinar:

    • Credentials : En este caso tenemos que generar un account service y usar el archivo json que se genera con los permisos necesarios
    • Project  : Determinamos el proyecto en GCP en el cual vamos a trabajar
    • region : Determinamos la región por el cual vamos a trabajar.

    Despues de determinar los valores mencionados anteriormente, los seteamos en el siguiente archivo.

  • Utilizando Traefik como Dynamic Reverse Proxy en Docker Swarm sobre AWS

    Dec 22
  • image1

    Traefik es una herramienta muy potente gracias a que soporta varios providers como backend, en este caso usaremos traefik para que nos sirva como Dynamic Reverse Proxy sobre un cluster de Docker Swarm en Amazon Web Services.

    Componentes:

    3 Instancias (1 Manager  y 2 worker):

    **Manager: **Esta instancia sera la que controlara todo el cluster, en ella desplegaremos traefik y los servicios que no son worker, esta instancia estará sobre una subnet , la cual llamaremos **“subnet frontend” **y tendrá su respectivo Secure Group

    **Worker: **las instancias llamadas workers son dichas instancias donde correran nuestros servicios desplegados en AWS, sin tener en cuenta los servicios de “management” que podemos desplegar en la subnet de frontend, aquí desplegaremos los servicios que necesitemos como un web server, un micro servicio, etc, estas dos instancias estarán sobre otra subnet, la cual la llamaremos “subnet backend” y tendrá su respectivo Secure Group

  • Traefik: Load Balancer y Reverse Proxy para Docker

    Oct 25
  • image1

    Cuando trabajamos con docker en ambientes productivos, la mayoría de casos usamos tecnologías para orquestar y poder ofrecer alta disponibilidad sobre nuestros micro servicios, debido a esto, nosotros corremos multiples aplicaciones sobre un mismo host que haga parte de nuestro stack de orquestación. Para que estas aplicaciones puedan ser consumidas sin necesidad de exponer un puerto, necesitamos un reverse proxy para poder consumir estos servicios desde un único puerto.

    **Traefik **es un reverse proxy  y load balancer compatible con docker escrito en Go, creado especialmente para micro servicios, Traefik soporta diferentes Backends como: (Docker, docker Swarm, Kubernetes, Rancher, Amazon ECS y muchos mas ) su configuración es bastante sencilla y cuenta con un Dashboard donde podemos visualizar nuestros Micro servicios.

  • Howto: Instalando Rocket.Chat en Docker

    Mar 7
  • Rocket.chat para mi es una de las mejores plataformas de chat OpenSource que existen, es muy flexible a la hora de adaptarlo y lo mejor, tiene cliente para toda las plataformas.

    En este caso, realizaremos la instalación de Rocket.chat en docker, por el cual no importara la distribución linux que utilicemos, pero en este caso utilizare Centos 7 como host de mis contenedores para hacer el despliegue.

    Instalación:

    Vamos a usar varios contenedores y para lograr la comunicación entre ellos, se usara Docker Compose, el cual nos permite hacer despliegues de servicios el cual involucra varios contenedores.

    Docker:

    Instalamos docker usando el script que se encuentra en su pagina oficial.

    wget -qO- https://get.docker.com/ | sh
    

    Al finalizar el proceso usamos systemctl para subir el servicio y dejarlo habilitado para que inicie cuando se inicie el servidor.

    systemctl start enable
    
    systemcl enable docker
    
  • Autentificación LDAP Vtiger CRM 6

    Jan 19
  • Vtiger es un CRM de código abierto muy potente que trata de acercarse  a grandes crms como salesforce y SugarCRM, pero en esta ocasión veremos como autentificarlo hacia LDAP.

    Con un gran compañero de la compañía Gabo, logramos hacer la autentificación continuación describo los pasos para lograrla.

    Para lograr la autentificación debemos usar los archivos de autentificación de Vtiger de 5.x,  estos archivos los encuentran en github.

    https://github.com/braybaut/ldap-vtiger

  • Howto: como crear un contenedor de datos en docker

    Jan 13
  • los contenedores no son persistentes en sus datos al ser ejecutados, esto quiere decir que al terminar una ejecución de un contenedor este pierde sus datos.

    Existen varias practicas para realizar la persistencia de los datos, en esta ocasión usaremos un contenedor de datos ( data container) para hacer la persistencia.

    Este contenedor solo guardara la información que se requiere sea persistente, no es necesario que este iniciado ya que  lo podemos compartir sin necesidad  de que este ejecutado.

  • Docker: Ingresar al bash de un contenedor iniciado | Script

    Jan 12
  • Ultimamente he trabajado mucho con docker y en el maravilloso recorrido que he tenido con docker se me presento un problema gigante,  inicio el contenedor con su servicio pero por X o Y motivo quiero ingresar al bash y el “docker attach” no funciona porque el docker no lo inicie con /bin/bash

    Una solución es abrir el puerto 22 e ingresar por ssh, pero no es la gracia trabajar de esta manera ya que estamos con container. Navegando por la red encontré un comando un poco largo para poder ingresar al bash del container y un compañero de la compañía donde trabajo también me paso uno parecido, pero me pareció algo fastidioso usar un comando largo para ingresar al bash entonces me tome la tarea de crear un script para que me facilite esta tarea, se los mostrare:

  • Introducción Vpn Full Mesh con Tinc y configuración en Raspberry Pi

    Mar 24
  • <div class="separator" style="clear:both;text-align:center;"> </div> <div class="separator" style="clear:both;text-align:center;"> <a href="https://braybaut.files.wordpress.com/2014/03/8000d-tinclogo1.png?w=648" style="margin-left:1em;margin-right:1em;"><img border="0" src="https://braybaut.files.wordpress.com/2014/03/8000d-tinclogo1.png?w=648" data-recalc-dims="1" /></a> </div> <p> Con tinc Podemos crear una <b>VPN </b>tipo full mesh(<i>Nodos conectados entre s</i>i), Estableciendo la comunicación de todos los host conectados a cada nodo. Cabe aclarar que cada nodo es el servidor donde esta configurado tinc. </p> <p> Tinc esta lanzada bajo licencia GPL que en pocas palabras podemos decir que es <b>Software Libre =D</b>, este maravilloso protocolo nos ofrece unas caracteristicas que son: </p> <ul style="text-align:left;"> <li> Encryptation, Authenticatión and compressión: Comprime los paquetes antes de enviarlos, encripta los datos para que uestra información viaje segura en este medio tan inseguro como lo es la internet, ofrece la autentificación para que los nodos desconocidos no se puedan conectar a nuestra red.