Implementación de microsegmentación en VMware Cloud on AWS

Microsegmentación es un caso de uso muy común cuando NSX esta disponible. En VMware Cloud on AWS, NSX está incluido y permite dar uso a dicha función. Acá muestro un ejemplo de como lograr proteger, o bloquear trafico en la red con una simple póliza y una regla asociada.



Si deseas ver como abrir acceso por primera vez a vCenter en la nube, mira este artículo. También te puede interesar manejo de redes lógicas desde el portal de tu SDDC en este articulo.



---

Redes logicas para vCenter en VMware Cloud on AWS

Si te has preguntado cómo crear y administrar las redes lógicas para tu vCenter cuando este está en VMware Cloud on AWS, debes saber que la mayoría de configuraciones de redes se ejecutan desde el portal del SDDC y no desde vCenter propiamente, como es común cuando la infraestructura es local y tienes total control del ambiente.

En este corto video explico:


Este video es parte de una corta serie donde comparto varios #vTidbits sobre administración de VMware Cloud on AWS. 

Si deseas ver como abrir acceso por primera vez a vCenter existente en VMware Cloud on AWS, mira este artículo. Para ver como implementar microsegmentación, puedes intentar ver este artículo con video también.



---

Acceso a vCenter en VMware Cloud on AWS

Hace unos días capture un video describiendo los pasos esenciales iniciales para acceder a vCenter Server desplegado en VMware Cloud on AWS. Aquí podrás ver en detalle.



Para ver los detalles de cómo configurar el VPC dedicado en AWS puedes ver este artículo del año pasado y/o HOL-2087-01 donde están los pasos necesarios para iniciarse en este servicio.

Este video es parte de una corta serie donde comparto varios #vTidbits sobre administración de VMware Cloud on AWS. 

En este artículo que incluye video, podrás ver detalles sobre redes lógicas y en este otro artículo encontraras como implementar microsegmentación en VMware Cloud on AWS.



---


Let's be the change we need

I am deeply saddened, disturbed and frustrated. I feel a sense of hopelessness that I can't describe.

The horrific, inexcusable actions of four cops caught on video in Minnesota resulting in the death of George Floyd last week, all the events that have followed, every other abuse of power, police brutality and systematic inequality and failures in this country for so many years, and the lack of accountability, contribute to those feelings in me right now. It hurts me to see the situation we are in currently and not being able to change anything about it. 

I want a future with a better country and a better humanity for my kids and for everyone's kids, regardless of the color of their skin or origin.

I don't need to have a great deal of knowledge in history or be an expert on how societies should function to understand that too much of what we see is fundamentally wrong; even if we, the lucky ones living in a nice bubble, never directly experience or are affected by it.

Those of us who are anti-racist and against discrimination of all kinds, have agreed for decades that things must change, yet, many forms of abuses continue to occur all across this country way too often. If it wasn't for video, we would never hear about them in most instances. 

Change must come, but change won't occur by itself, nor will it be brought by the so-called leaders, many of whom really don't care about average people and tend to favor special interests one way or another.

The change must come from us, ALL OF US who want a more fair and peaceful country and humanity. A world with less disparities, less poverty and more dignity, respect and opportunities for EVERYONE.

I know that this last sentence is a broken song, a canned message that we hear every time something horrific happens. But here are my thoughts on how we need to start making that change we desperately need, deserve, and want...

  1. Register to vote. If you are like me some years ago, you dislike politicians and often disregard the power of voting, please reconsider. It is not a perfect, ideal process in my opinion, but it is what we got, and we need to make it count the best possible way. As part of this, make sure you donate to the candidate of our choice. I hate seeing money in politics, but again, that's how that stuff works and the people seeking your vote need funds.
    Start at the most basic level, your local/municipal elections for school boards, counselors, etc. Things need to change at all levels if we want to fix the rotten core of many systems.

  2. VOTE. DON'T FORGET TO VOTE. Do not take this for granted. I have learned the importance of this at all levels, not just voting for the president, which many people think is enough. Real changes come from all levels and in many circumstances a lot of improvements can be done at the municipal, city and state levels.

  3. Contact your elected officials. Again, at all levels. Make sure they hear your voice; it isn't enough to just vote for people you like and put them in power; you must be aware of what legislation, reforms and other stuff they are working on and make sure they know your position on things. Emails and phone calls are simple, powerful ways of communicating with them.

  4. Peacefully March. If you have the opportunity, join peaceful marches and demonstrate that we want change.

  5. Donate to causes that reflect your beliefs. If you have the opportunity, consider donating a few bucks to organizations that defend what you align with.

  6. Be an Anti-Racist. If you are truly NOT racist, you cannot just be passive about racism. You must take a stand when you hear or see a racist act, otherwise you are complicit.

  7. Advocate & Educate. Nelson Mandela said "No one is born hating another person because of the color of his/her skin, or his/her background of his/her religion. People learn to hate, and if they can learn to hate, they can be taught to love" If you believe in this, be an advocate and emphasize it everywhere possible, starting in your family and communities.

Enable to fully comprehend why in this day and age we still see the level of hatred, discrimination and disregard for human beings, demoralized that there are so many who have suffered for generations and substantial improvements take so long or aren't enough. I refuse to believe that if in fact the good people are more, why couldn't we achieve the change?  It will take ALL OF US, it will take determination and commitment to stick to the actions that will shape the policies, rules, laws, etc.

Why couldn't we in the active, generous, friendly, and welcoming tech community, one that gets behind folks to help them achieve certifications, find jobs, guide and assist in many ways; why couldn't we advocate for a better world?  I think we can!

Please join me with ideas and spreading the word so we can plant the seeds that one day will give our kids a better human race.

--

Terraform para vSphere

Recientemente, como parte de mi papel en los Hands-on Labs de VMware, comencé a irrumpir un poco con Terraform y sus funciones para ambientes de VMware, tanto vSphere nativo como VMware Cloud on AWS y NSX-T. Lo que me encontré fue una herramienta simple, funcional y con mucho futuro. Digo con mucho futuro, porque algunos aspectos aún están en su infancia como tal, y aunque el desarrollo es continuo, no todas las funciones se encuentran disponibles, en especial para VMware Cloud on AWS. Sin embargo, creo que amerita escribir algo al respecto, ya que pueden existir personas, que, como yo, apenas y conocía el concepto de Terraform, pero sin idea de cómo funciona o sus detalles.

En este y futuros blogs intentare dejar como referencia propia y para quienes se puedan beneficiar, lo que en pocos días he aprendido y como lo he usado con diferentes funciones y módulos o providers, como son conocidos en Terraform.

Advertencia: Como todo lo demás que veras en este blog, nada es garantizado y proviene de mi propias ideas y experiencias. Lo que aquí escribo no es para, ni de mi empleador y debe ser usado bajo tu propio riesgo.

Terraform es una herramienta creada y distribuida por HashiCorp, una organización que se enfoca en crear software open source. Terraform como tal es una herramienta para desplegar y gestionar infraestructura en base código (Infrastructure as Code) de manera sencilla, si se puede decir. Usa archivos de configuración declarativos, ósea, que lo que estipules previamente en dichos archivos, sus variantes y atributos, será implementado tan pronto sea ejecutado el “plan” por vía de línea de comando. Todo en base a los APIs disponibles para cada producto.
La herramienta te permite crear nuevos recursos, mantener actuales o destruir existentes con tan solo ejecutar un comando. Yo que nunca fui un desarrollador, me ha sorprendido lo simple que es.

Uno de los beneficios de Terraform, es la facilidad de poder repetir tareas que manualmente se tomarían mucho mas tiempo. Es como tener un script, pero más inteligente, ya que entiende los recursos existentes y no repetirá (creará de nuevo) lo que ya existe.

La lista de productos a los cuales Terraform se integra es bastante extensa, aquí puedes ver la larga lista de providers disponibles.

Yo por ahora estoy enfocado en dos providers en especial… VMware Cloud onAWS Provider y vSphereProvider de los cuales pondré ejemplos y datos en este o futuros blogs.

 

¿Como iniciar con Terraform?
Es realmente sencillo, lo único que tienes que hacer es descargar Terraform para tu sistema operativo aquí – hay versiones para MacOS, Linux, Windows, Solaris, FreeBSD y OpenBSD.

En Windows, ni siquiera hay que instalar algo, simplemente descomprimir el zip que descargaste, y agregar el destino donde elijes poner el archivo Terraform.exe en el PATH de Windows. Yo lo ubique en C:\Terraform y lo agregue al PATH. En este link podrás ver paso por paso como hacerlo.

Después de tener Terraform listo en tu máquina, elijes el Provider que vayas a usar y al cual tengas acceso para poder ‘jugar’ y aprender el concepto de Infrastructure as code.

Al visitar el link de cada provider en la lista, veras el modelo o plantilla de archivo a seguir en formato JSON; este archivo hace parte del grupo de archivos conocidos como configuration code, de extensión .tf y es donde se declara como se quiere la infraestructura.
Los archivos .tf son pieza central donde se expresa la información particular para ejecutar un plan, bien sea para desplegar, modificar o destruir recursos.

Por ejemplo, la plantilla básica inicial del archivo .tf para el vSphere Provider, el cual puedes encontrar aquí, luce así:

Terraform vSphere provider


En la propia página de Terrafom.io encontraras las plantillas de formato JSON para cada provider, las cuales solo tienes que modificar con tus propios datos y variables que aparecen en color vino. Una vez los datos sean actualizados, estarás casi listo para desplegar infraestructura por código. Simple, ¿verdad?

Los siguientes pasos por seguir son comandos sencillos que preparan, validan y ejecutan el plan de Terraform.

1.       Crea un directorio dedicado para la configuración en la que vas a trabajar, en este ejemplo, vamos a usar el vSphere Provider para desplegar infraestructura en vCenter

2.       Copiar el archivo plantilla en este link y guardarlo con extensión .tf (ej.: Cambios.tf pero cualquier nombre sirve, lo importante es que el formato sea correcto)

3.       Modifica las variables con nombres correspondientes a tu entorno

4.       Como ya Terraform debe ser parte del PATH, se puede ejecutar desde el directorio que se esta trabajando. Entonces proceder con los siguientes comandos:

a.   Terraform init – comando necesario para iniciar una configuración nueva. Este comando genera ajustes y datos que son guardados en el mismo directorio y servirán para ejecutar Terraform con esa configuración en el futuro (para cambios o remover, por ejemplo).

b.    Terraform Validate  comando opcional para validar que la estructura del codigo en los archivos esta bien escrito.

b.    Terraform Plan - este comando muestra el plan de ejecución y/o si existen errores en los archivos.

c.    Terraform Apply - Al igual que Terraform plan, genera el plan de ejecución, pero presenta un espacio para que escribas yes ratificando así los cambios y proceder a ejecutar el plan.  Correr los comandos Terraform Plan y luego Terraform Apply es algo redundante ya que el ultimo de por si presenta el plan a producir.

El resultado de Terraform Plan o Terraform Apply, muestran con un prefijo + los recursos que se crearan al ejecutar, con prefijo lo que se removerá, con prefijo -/+ lo que destruirá y creara de nuevo y con prefijo ~ lo que cambiara en su lugar. Igualmente, al final aparece en resumen del Plan donde se ve el número de cambios a agregar, modificar o destruir.

Si no existen errores, Terraform pedirá aprobación de ejecución del plan, el cual se aprueba con la palabra yes

 

Para modificar tu infraestructura, solo debes hacer cambios, en el archivo .tf a los atributos de tus recursos desplegados, o agregar nuevos recursos en bloques y proceder con un Terraform Apply para generar el cambio o adición.

Para destruir toda o parte de la infraestructura, debes remover el bloque de dicho recurso del archivo .tf y ejecutar Terraform Apply de nuevo.

Aca un video que muestra los atributos de 3 VMs a crear, luego ejecución de terrafom apply y posteriormente terraform destroy despues de actualizar el archivo .tf para remover las mismas 3 VMs.



Proximamente espero escribir acerca de mi experiencia usando el Terraform provider para VMC and NSX-T

Como siempre que escribo algo acá en mi blog, lo hago para yo mismo intentar aprender más, al igual que con la esperanza que le pueda ayudar a alguien en nuestra comunidad. Si en algo puedo asistir, contáctame en Twitter.


Gracias especialesNico Vibert quien no solo comparte su conocimiento públicamente en su blog, sino que también me ayudo a iniciarme con Terraform y personalmente me guio. Siguiendo a Nico en Twitter y en su blog (en ingles) podrán aprender aun mas sobre automatización

Special thanks to Nico Vibert who not only shared his knowledge of this tool publicly, but helped getting me started with Terraform and personally provided me a lot of guidance. Follow Nico on Twitter and visit his blog for more automation knowledge.

======