Administrar VMware ESX(i) durante el desastre (II)
Esta semana me gustaría profundizar algo más en alguna de las opciones del comando vim-cmd, la gestión de máquinas virtuales mediante el comando vmsvc.
Si hacemos un listado de las opciones o subcomandos que nos presenta este comando podemos ver cosas interesantes:
~ # vim-cmd help vmsvc
Commands available under vmsvc/:
acquiremksticket get.configoption power.on
acquireticket get.datastores power.reboot
connect get.disabledmethods power.reset
convert.toTemplate get.environment power.shutdown
convert.toVm get.filelayout power.suspend
createdummyvm get.guest power.suspendResume
destroy get.guestheartbeatStatus queryftcompat
device.connection get.managedentitystatus reload
device.connusbdev get.networks setscreenres
device.disconnusbdev get.runtime snapshot.create
device.diskadd get.snapshotinfo snapshot.dumpoption
device.diskaddexisting get.summary snapshot.get
device.diskremove get.tasklist snapshot.remove
device.getdevices getallvms snapshot.removeall
device.toolsSyncSet gethostconstraints snapshot.revert
device.vmiadd login snapshot.setoption
device.vmiremove logout tools.cancelinstall
devices.createnic message tools.install
get.capability power.getstate tools.upgrade
get.config power.hibernate unregister
get.config.cpuidmask power.off upgrade
~ #
Antes de poder trabajar con la mayoría de estos comandos es necesario que obtengamos el vmid asociado a la máquina virtual con la que queremos trabajar. Si recordamos último ejemplo del post de la semana anterior podemos ver como localizar fácilmente este vmid:
~ # vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
1024 VM1 [DS001] VM1/VM1.vmx windows7_64Guest vmx-07 PLANTILLA BASE – Windows Server 2008 R2 Standard SELLADO
1072 VM2 [DS001] VM2/VM2 .vmx other26xLinuxGuest vmx-07
1136 VM3 [DS001] VM3/VM3.vmx windows7Server64Guest vmx-07
1184 VM4 [DS001] VM4/VM4.vmx windows7_64Guest vmx-07 PLANTILLA BASE – Windows Server 2008 R2 Standard SELLADO
272 VM5 [DS001] VM5/ VM5.vmx other26xLinuxGuest vmx-07
Donde la primera columna es precisamente el valor que estamos buscando. Una vez que tenemos localizado este identificador, trabajar con la(s) maquina(s) virtual(es) es cuestión de usar el comando correcto.
Por ejemplo, como podréis haber adivinado, los comandos power.* gestionarán el encendido, apagado, hibernación, etc de la máquina virtual que elijamos. Como ejemplo de uso, supongamos que queremos reiniciar la máquina con el ID 1024…
Nos aseguramos que la máquina está iniciada:
~ # vim-cmd vmsvc/power.getstate 1024
Retrieved runtime info
Powered on
~ #
Para a continuación reiniciarla:
~ # vim-cmd vmsvc/power.reboot 1024
~ #
Para estos comandos, ocurre igual que con las acciones que podemos realizar directamente desde el vClient, algunas opciones estarán disponibles si las vmware tools están instaladas, que como podeis ver también podremos instalar usando los comandos tools.install o tools.upgrade, dependiendo del caso.
Sin embargo si hay un grupo de comandos que sean especialmente interesante son aquellos que muestran información sobre la máquina virtual, get.*
Veamos un par de ejemplos. El siguiente comando nos devolverá la configuración específica de una máquina virtual:
~ # vim-cmd vmsvc/get.config 1024 | less
Configuration:
(vim.vm.ConfigInfo) {
dynamicType =
changeVersion = «2011-04-08T07:52:44.57038Z»,
modified = «1970-01-01T00:00:00Z»,
name = » VM1″,
guestFullName = «Microsoft Windows 7 (64-bit)»,
version = «vmx-07»,
uuid = «564d3715-27e9-ffe0-1d09-c769b43733a6»,
instanceUuid = «52c515e0-95e4-db75-99f1-abc05705718b»,
npivWorldWideNameType = «»,
npivDesiredNodeWwns =
La salida del comando ha sido reducida en favor del espacio del post. Debido a la cantidad de información que devuelve este comando es más que recomendable pasarlo por un less que nos pagine la salida.
De un modo muy similar podremos consultar la información sobre las interfaces de red virtuales:
~ # vim-cmd vmsvc/get.networks 1024
Networks:
(vim.Network.Summary) {
dynamicType =
network = ‘vim.Network:HaNetwork-PGPPRQOS001’,
name = «PGPPRQOS001»,
accessible = true,
ipPoolName = «»,
}
~ #
Desafortunadamente, la documentación existente sobre este interesante comando de mantenimiento resulta un tanto laxa, por lo que en ocasiones puede resultar un poco complejo.
La semana que viene continuaremos con otro grupo de comandos, pero para ir abriendo boca, os invito a que ejecutéis el comando vim-cmd vimsvc/license –show
¿Crees que este artículo puede interesar a alguien a quien conoces? Compártelo clicando los botones de Twitter y Facebook de abajo o arriba. Gracias.