Un poder que impresiona a muchos, administrar o consultar a través de línea de comandos.
Si prefieren los videos, al final tienen la demostración en 5 minutos.
El poder del get-member de VMware PowerCLI.
Empecemos accediendo al vCenter desde la línea de comandos con el comando y les abrirá una ventana para ingresar los datos, también los pueden ingresar como parámetro vía comando, pero es tema de otro artículo.
connect-viserver [nombre | dirección ip del vCenter]
Cuando se está manipulando las vm´s a través de PowerCLI, uno de los comandos que se suelen aplicar es el comando
get-vm.
Pero cuando la salida al comando resulta en 3 columnas, el estado de la vm, prendido y apagado, la cantidad de cpu virtuales y la cantidad de memoria ram virtual.
Muchos se preguntan: ¿Por que el resultado de get-vm parece faltarle muchos atributos?
¿Cómo hago para obtener, consultar y manipular los otros atributos o características de la vm?
La respuesta a esta pregunta es, get-member, uno de los comandos más útiles de PowerCLI.
para verlo en acción, simplificar el ejercicio y para trabajar con una sola vm, la guardaremos en una variable.
$vm = get-vm | select -first 1
para verificar y mostrar la salida del contenido, colocamos la variable creada y le damos enter.
$vm
Ahora al objeto guardado en la variable $vm le aplicaremos el comando get-member
$vm | get-member
¿Qué nos arroja el comando get-member sobre un objeto?
Lo primero nos informa es el tipo de objeto, en este caso es un derivado de virtual machine implementation.
Otra información que nos dará son qué métodos tiene y qué propiedades tiene el objeto que estamos consultando.
Un objeto tiene asociados varias propiedades.
objeto carro, tiene puertas, motor, ruedas, etc.
Una propiedad es una característica de un elemento (ej: Folder)
Una propiedad del elemento puerta, puede ser color, y los valores del color de la puerta puede ser gris.
Un método son las acciones que se pueden ejecutar sobre una propiedad determinada.
Sobre la propiedad puerta, podemos cerrarla o abrirla por ejemplo.
Vamos a consultar una propiedad para que lo veamos en vivo, específicamente la propiedad: NumCPU
el comando sería:
$vm | select name, numcpu, CorePerSocket
El resultado son las 3 columnas seleccionadas para la vm que está almacenada en la variable, nombre de la vm, la cantidad o número de cpu y la cantidad de core virtual por socket.
Esta misma consulta se podría aplicar para muchas vm´s, lo hacemos sustituyendo la variable que contiene una vm para muchas vm´s, podríamos aplicar el comando get-vm. Tendríamos la misma salida para cada vm del centro de datos del vCenter.
get-vm | select name, numcpu, CorePerSocket
Ahora viene algo interesante que seguro les va a gustar, si analizamos la salida del comando get-member, verán que algunas propiedades son boolean, integer o string.
Pero hay algunas propiedades que son un objeto, es decir, un objeto dentro de un objeto. Lo que significa que podemos profundizar más y aplicar los mismos comandos que al objeto principal.
Tomemos el ejemplo de la propiedad guest, que es un objeto tipo guest. Yo lo identifico ya que empieza con VMware.Vimautomation.
Podemos consultar el objeto de la siguiente forma
$vm.guest
y como es un objeto, podemos profundizar con get-member
$vm.guest | get-member
y noten de nuevo la cantidad de propiedades y métodos que tiene solo una propiedad del objeto vm, ¡wow!
Consultemos una de esas propiedades, IPAddress, y como es tipo arreglo, ¿cómo lo sabes? Ya que luego del string tiene dos corchetes, lo que indica que es un arreglo en la cual podemos acceder a cada nodo del arreglo a través del índice:
$vm.guest.ipaddress[0]
El primer elemento del arreglo lo accedemos con el valor 0, el segundo con el 1 y así sucesivamente.
Si no indicamos el índice, nos devolvería todas las direcciones ip de la vm.
$vm.guest.ipaddress
Para que puedan ver un resultado más amplio, seleccionaremos una vm que contenga varias ip y así demostrar como acceder.
Como pueden ver en el vCenter, tomaremos la vm llamada ESG-LAB-0 que tienes varias interfases ip v6.
Cambiamos el valor de la variable $vm
$vm = get-vm ‘ESG-LAB-0’
Ahora, hacemos una consulta de las direcciones ip que contiene.
$vm.guest.ipaddress
Y por último, penetremos a cada dirección ip del arreglo mediante el índice.
$vm.guest.ipaddress[0]
A continuación el ejercicio en formato video: