"El éxito en la vida de un hombre está en prepararse para aprovechar la ocasión cuando se le presente"
Autor: Diego Felipe Tunubalá Medina
Profesional con una sólida trayectoria de más de una década en Consultoría de Servicios Profesionales, reconocido como miembro del VMware CTO Ambassador y ahora desempernándome en el rol de TAM, liderando exitosamente proyectos de gran escala tanto a nivel nacional como internacional en el sector de Tecnologías de la Información, lo que ha fortalecido mis habilidades técnicas y de gestión.
Mi experiencia abarca desde la concepción hasta la implementación de soluciones tanto On-Premise como Cloud, así como el diseño y despliegue de infraestructuras físicas y virtuales. Me especializo en áreas críticas como Cloud Management y Automation (Aria Automation), Network Virtualization and Security (NSX), Compute (vSphere) y Storage (vSAN), así como en las operaciones de ciclo de vida (Aria Suite) de la infraestructura.
Cuento con reconocidas certificaciones en tecnologías líderes del mercado como VMware (VCP, VCAP, Specialist, vExpert), Nutanix (NCP) y CompTIA (Server+), respaldadas por una profunda experiencia en metodologías de gestión de proyectos como PMI, SCRUM e ITILv4. Me destaco por mis habilidades de liderazgo, comunicación y trabajo en equipo, lo que se ha traducido en logros significativos en la mejora continua de la eficiencia de los servicios profesionales prestados al cliente.
Después de algunas semana sin tener tiempo para hornear un par de post que tengo pendientes, retomamos esta tarea con este capitulo en el cual vamos a explicar como realizar el parchado (patching) de la solución vRealize Suite Lifecycle Manager, ahora renombrado a Aria Suite Lifecycle.
Para quienes nos estan familiarizado con Aria Suite Lifecycle podría ser una tarea confusa, pero en este video vamos a ver que realmente es muy sencillo.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
Si alguna vez te has encontrado con el error que muestro a continuación, no te preocupes!, muy seguramente tu subscripción ha expirado, esto en el caso que no tengas una licencia perpetua por supuesto.
"It appears that your subscription has expired.Your workloads are still available. Contact yourAccount Manager or Customer Success Manager torenew so that you can log in and keep working".
Por otro lado, sino es tu caso pero aún quieres saber como reemplazar la licencia asignada a tu solución de Aria Automation (antes vRealize Automation), continual leyendo el blog.
PROCEDIMIENTO
1. Lo primero, será entonces iniciar sesión en la solución Aria Suite Lifecycle
2. En el servicio Locker > Licenses, verificamos que efectivamente tengamos nuestra licencia en estado Expired. De igual forma, como lo comenté anteriormente, si solo quieres saber como reemplazar la licencia, puedes continuar leyendo los siguientes pasos
3. Sino hemos agregado una licencia de Aria Suite (vRealize Suite) que es la que contiene la solución de Aria Automation (vRealize Automation) debemos hacer click en el botón ADD LICENSE MANUALLY e ingresar un nombre para la Licencia (License Alias) y el License Key. Después Click en VALIDATE y posteriormente ADD
4. Una vez adicionada la licencia de vRealize Suite, debemos ir al servicio de Lifecycle Operations
5. Navegar hasta Environments -> Click en VIEW DETAILS del environment donde tenemos el Aria Automation (vRA), en este caso el ambiente que tiene la solución de Aria Automation es el llamado VRA-LAB
6. Click en los tres punto de la derecha (…) y luego Add License
7. Seleccionamos la nueva licencia en este caso vExpert 2023
8. Seleccionamos la licencia que vamos a retirar, que en este caso la que está en estado expired y click en el botón FINISH
9. El resultado del Request generado debería ser Succesfull
10. Volvemos al ambiente de vRA y verificamos que ahora la licencia ha sido aplicada
11. Por ultimo podemos vovler al servicio de Locker a eliminar las licencias expiradas para mantener nuestro ambiente limpio
12. Una vez reemplazada la licencia podemos ver que nuestra solucion de vRA esta de nuevo operativa
Nota: El procedimiento aplicado en este blog puede ser utilizado para reemplazar la licencia de cualquier solucion de la Aria Suite (Antes vRealize Suite), esto es, Aria Operations (vRealize Operations Manager), Aria Operations for Logs (vRealize Log Insight), Aria Operations for Networks (vRealize Network Insight), etc.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este séptimo capitulo de la serie dedicada a la instalación y configuración de NSX-T 3.x, explicáremos los conceptos básicos necesario para preparar un nodo KVM basado en sistema operativo Ubuntu KVM, como nodo de transporte Node de NSX-T.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este sexto capitulo de la serie dedicada a la instalación y configuración de NSX-T 3.x, explicaremos los conceptos asociados a los Segmentos o Logical Switches de NSX. Posteriormente explicaremos la creación de estos Segmentos en la interfaz gráfica del NSX Manager y migraremos cargas de trabajo tipo VM (Virtual Machine) desde Distributed Port Groups tradicionales hacia nuevos Segmentos de NSX.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este quinto capitulo de la serie dedicada a la instalación y configuración de NSX-T 3.x, explicaremos la preparación de un cluster vSphere como Transport Node de NSX-T. Esto es básicamente la instalación de los módulos kernel de NSX sobre los host ESXi, los cuales vienen empaquetados en VIBs (vSphere Installation Bundle) que se ejecutan en el kernel del hipervisor para brindar servicios como enrutamiento distribuido, firewall distribuido y capacidades de conexión en puente (bridging).
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este cuarto capitulo de la serie dedicada a la instalación y configuración de NSX-T 3.x, explicaremos los conceptos asociados a los Uplink Profiles y Transport Node Profiles. Adicionalmente, mostraremos en el laboratorio el procedimiento para su creación dentro de la interfaz gráfica del NSX Manager.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este tercer capitulo de la serie dedicada a la instalación y configuración de NSX-T 3.x, agregaremos el vCenter Server como Compute Manager, crearemos Transport Zone tipo VLAN y Overlay y definiremos los IP Pools para los Tunnel End Points (TEPs) de los Transport Nodes.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este segundo capitulo de la serie dedicada a la instalación y configuración de NSX-T 3.x, prepararemos la infraestructura del laboratorio y realizaremos las configuraciones iniciales (NTP, Log Forwarding y Backup) en el NSX Manager.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
Después de algunos días de grabaciones y aprendizaje a prueba y error acerca de diferentes herramientas de edición, comenzamos a explorar una nueva forma de compartir nuestro conocimiento.
Con este post iniciamos el primer capitulo de una serie de videos publicados en YouTube acerca del proceso de instalación y configuración de NSX-T 3.x en nuestro ambiente. La idea principal de este mini curso es no solo proveer los conceptos básicos de la solución y la arquitectura de NSX-T sino que ademas mostrar en el laboratorio cómo se ejecutan algunas de estas tareas de implementación.
Sin más preámbulos, los invito a ver el primer capitulo llamado «Arquitectura de NSX-T – Parte 1» donde revisaremos conceptos básicos de la arquitectura y desplegaremos en el laboratorio el NSX-T Manager.
Por último, no olviden seguir el canal de NachoAprendeVirtualizacion si desean recibir notificaciones de las siguientes publicaciones.
ATENCIÓN!!!
TODOS LOS NOMBRES DE VMS USADOS EN ESTE BLOG SON INVENTADOS Y OBEDECEN A UN AMBIENTE DE LABORATORIO PROPIO, UTILIZADO PARA FINES DE ESTUDIO.
En este blog explicaremos paso a paso cómo crear una notificación por correo electrónico para las VMs desplegadas desde vRA 8.x. Esto debido a que lamentablemente a la fecha de escritura de este blog, no existe esta funcionalidad de manera nativa y el servicio de Service broker esta limitado únicamente a enviar notificaciones para los escenarios indicados en el siguiente enlace de la documentación oficial Send email notifications to Service Broker users.
Agradecimientos a @Sam Perrin, quien ha dado la pauta para esta solución en este blog.
En este caso para suplir esa necesidad de notificación, utilizaremos la funcionalidad de vRealize Orchestrator (vRO) para extender las funcionalidades de vRealize Automation (vRA).
Comenzaremos creando una plantilla muy básica de HTML en cualquier editor de texto, y la guardaremos con el nombre VM-Details y la extensión .html. Esta plantilla será utilizada posteriormente por vRO para presentar los datos de la VM en el contenido del email.
Dejo a continuación el código de la plantilla para que evite la fatiga y pueda simplemente copiar/pegar.
<html>
<body>
<p>=============================================</p>
<p>Please find your VM details below;</p>
<ul>
<li>VM Name = {{vmName}}</li>
<li>IP Address = {{ipAddress}}</li>
<li>Memory = {{memory}}</li>
<li>CPU = {{cpu}}</li>
<li>Guest OS = {{guestOs}}</li>
</ul>
<p>=============================================</p>
</body>
</html>
Posteriormente vamos a iniciar sesión el nuestra solución de vRA y seleccionaremos el servicio de Orchestrator
Ahora dentro de vRO, en el panel de navegación izquierdo debemos ir a la sección Assets -> Resources.
Y bajo la carpeta Resources debemos crear una Carpeta llamada Email-Templates.
Nota 1: Utilice la vista de árbol (Tree View) para crear la carpeta justo debajo de Resources.
Nota 2: Para configurar la vista en modo árbol podemos hacer click en icono enmarcado en la imagen anterior.
Seleccionamos la nueva carpeta creada (Email-Template) y dentro de esta carpeta haremos click en el botón +IMPORT para importar el archivo .html que hemos creado
Una vez hecho lo anterior podemos volver ahora al panel izquierdo de vRO y navegar hasta Library -> Workflows para proceder a crear el nuevo workflow que hará la magia.
Click en +NEW WORLFLOW, definir un nombre en este caso lo llamaremos «Notifications with VM deployed from vRA».
En la pestaña de Schema, dentro del nuevo workflow, agregamos al canvas los siguientes schema elements, Scriptable Task y Workflow element, en el orden indicado a continuación.
Scriptable task
Workflow element
Scriptable task
Workflow element
Comenzaremos editando el primer Scriptable task de izquierda a derecha. Para esto simplemente seleccionamos el schema element dentro del canvas y aparecerá un panel al lado derecho para configurar los parámetros de este elemento.
En la pestana General, bajo la sección Details, podemos cambiar el nombre del Schema element cambiando el texto que esta frente al campo Name. En este caso lo reemplazamos por «Get Resource Name» (sin comillas) y en el campo Description agregamos el siguiente texto «This Scriptable task get the Parameter «resourceName» coming from Compute Post Provisioning event topic in vRA» (sin las comillas).
Ahora debemos expandir la sección de Inputs/Outputs y frente al campo Imputs debemos hacer click en el signo (+) y luego click en Create New para crear un nuevo Input con el nombre inputProperties del tipo Properties.
Luego click en CREATE
De igual forma, pero frente al campo Outputs vamos hacemos click en el signo (+) y luego click en Create New para crear una nueva Variable con el nombre vmResourceName del tipo String.
Y click en CREATE
Debe quedar de la siguiente forma
Ahora en la pestana scripting debemos incluir el siguiente código. Para mayor facilidad simplemente copie/pegue
Pasaremos ahora a editar el siguiente schema element llamado Workflow element. De nuevo al seleccionarlo aparecerá un panel al lado derecho. En la sección Workflow vamos a utilizar uno de los workflows que trae incorporado vRO y que nos servirá para obtener el nombre de la VM. Entonces escribimos en el campo de texto «get virtual machines by name» y seleccionamos de la lista el workflow existente que contiene ese nombre.
Nota 1: Una vez seleccionamos el workflow, podemos notar que el campo name en la sección Details se ha renombrado y ahora este schema element ha tomado el nombre del workflows que hemos seleccionado.
En la sección Workflows de este elemento configuraremos los inputs/outputs que el workflow invocado (Get virtual machines by name) requiere.
Ahora frente al input hacemos click en el campo de texto criteria escribiremos el nombre de la variable creada anteriormente vmResourceName y la seleccionaremos de la lista desplegable.
Seguidamente, frente al output vms hacemos click en el campo de texto y luego click en Create New para crear una nueva Variable con el nombre vmObject del tipo VC:VirtualMachine.
Nota 2: Observe que esta variable será un Array
Estos cambios deberían lucir de la siguiente manera.
Pasaremos al tercer schema element de izquierda a derecha para editarlo. Click en Scriptable task para seleccionarlo.
Lo primero que vamos a hacer, como ya lo sabemos, es editar el Name bajo la sección Details, y lo renombraremos como «Get VM Properties» (sin comillas).
En el campo Description colocaremos lo siguiente «This simple task gets vm properties from vmObjet coming from Get virtual machines by name Workflow».
Ahora debemos expandir la sección de Inputs/Outputs y frente al campo Imputs debemos hacer click en el signo (+) y en el campo de texto escribiremos el nombre de la variable creada anteriormente vmObject y la seleccionaremos de la lista desplegable.
De igual forma, pero frente al campo Outputs debemos hacer click en el signo (+) y luego click en Create New para crear una nueva Output con el nombre emailContent del tipo String.
Y click en CREATE
Repetiremos la acción del paso anterior para crear una salida (output) adicional, click en el signo (+) y luego click en Create New pero creando esta vez será una nueva Variable con el nombre contentEmail del tipo String.
Debe quedar de la siguiente forma
Lo siguiente que debemos hacer, es hacer clic en la pestaña Scripting de este schema element, y agregar el siguiente código. Para evitar la fatiga de nuevo, simplemente copiar/pegar.
/*
- Input: vm [VC:VirtualMachine]
- Output: emailContent [string]
*/
var vm = vmObject[0];
var vmName = vm.name;
var ipAddress = vm.ipAddress;
var memory = vm.memory;
var cpu = vm.cpu;
var guestOs = vm.guestOS;
var htmlTemplate = fetchEmailTemplate("VM-Details.html");
var fieldKeyValues = new Properties();
fieldKeyValues.put("{{vmName}}",vmName);
fieldKeyValues.put("{{ipAddress}}",ipAddress);
fieldKeyValues.put("{{guestOs}}",guestOs);
fieldKeyValues.put("{{cpu}}",cpu);
fieldKeyValues.put("{{memory}}",memory);
for each (field in fieldKeyValues.keys) {
htmlTemplate = updateContent(field,fieldKeyValues.get(field),htmlTemplate);
}
System.debug("==== Email Content ==== \n" + htmlTemplate);
emailContent = htmlTemplate;
contentEmail = emailContent;
function fetchEmailTemplate(elementName) {
var categoryPath = "Email-Templates";
var category = Server.getResourceElementCategoryWithPath(categoryPath);
for each (var resourceElement in category.resourceElements) {
if (resourceElement.name.toLowerCase() === elementName.toLowerCase()) {
var mime = resourceElement.getContentAsMimeAttachment()
return mime.content;
}
}
}
function updateContent(key,value,content) {
content = content.replace(key,value);
return content;
}
En la pestana Scripting de este Schema element, debería verse de la siguiente forma.
Pasamos ahora a editar el ultimo elemento de nuestro workflow. Como ya sabemos simplemente lo seleccionamos y en esta ocasión nuevamente utilizaremos uno de los workflows preconstruidos que trae incorporado vRO.
Entonces bajo la sección Workflow de este schema element, en el campo de texto escribiremos «Send notification (TLSv1.2)» (sin las comillas) y lo seleccionaremos de la lista.
Nota 3: De nuevo, puede notar que al seleccionar el workflow el nombre de este schema element se actualiza con el nombre del workflow que estamos invocando.
Ahora utilizando el procedimiento de crear nueva variables que ya conocemos, debemos crear variables para cada una de los inputs requeridos por este workflow (Send notification (TLSv1.2)).
Configuremos entonces cada una de las entradas del workflow como sigue. Podrá ver al fondo del screenshot como se van poblando cada una de las inputs.
En input content en el campo de texto vamos a escribir el nombre de la variable contentEmail y la seleccionamos de la lista
Por último, para el input useStartTls input crearemos una variable con el value en True.
Después de la creación de cada una de las variables para cada uno de los inputs de este workflow, debería quedar así
Nota 5: Como pudo notar el contenido del email que será enviado por correo, esta definido en el input content el cual obtiene su valor de la variable contentEmail creada en el Scriptable task anterior llamado Get VM Properties.
Al final nuestro workflow personalizado debería quedar con las siguientes Variables.
Y deberíamos tener los siguiente inputs/outputs
Ahora solo queda crear una Extensibility subscription en vRA para que el workflow se lance en el evento Compute Post Provisioning. Para ver mas información acerca de extensibility subscription vea el siguiente enlace Create an extensibility subscription.
Nota 6: Una subscription habilita el uso de acciones o workflows a través de un event topic seleccionado.
Vamos entonces al servicio de Cloud Assembly -> Extensibility -> Subscription y click en +NEW SUBSCRIPTION.
Diligenciamos los datos como se muestra a continuación
Nota 7: Como recomendación y best practice, es importante que se habilite siempre la opción Filter events in topic en la condición de la Subscription, para que se ejecute solo con los blueprints específicos que nosotros definamos. En este caso hemos utilizado el filtro event.data.blueprintId.
Realizamos un despliegue desde el Catalogo de Service Broker y esperamos que termine el despliegue.
Al final del despliegue debería llegarnos una notificación por cada VM desplegada desde vRA
Por ultimo, si queremos revisar la ejecución del Workflow podemos ir al vRealize Orchestrator vRO -> Activity -> Workflow Runs
Y hacer click en cualquiera de los que aparecen listados, en este caso haremos click en el que se ejecutó por ultima vez para verificar el valor de cada una de las Variables.
Con esto terminamos esta entrada, que seguramente nos ayudara a llenar este vacío existente en vRA. Espero sea de gran utilizada.