Today is Thursday, 9th September 2010

VMware Server 2.x – CLI

Hoy escribiré sobre el modo línea de comandos de VMware Server 2.x.

Antecedentes: en las versiones anteriores de VMware Server 1.x, existía una consola standalone con la que gestionábamos todas las VM’s. En esta nueva versión, 2.x, todo se realiza a través de web.
Para las operaciones automatizadas, de backup, parada y arranque, etc… antes se utilizaba la herramienta vmware-cmd, pero ya no contamos con ella.

De la mano de VMware Server 2.x nace:

# vmrun

Esta herramienta es la que nos permitirá realizar operaciones automatizadas con nuestras máquinas virtuales. Una vez más, recordar que es necesario tener las vmware tools instaladas en las máquinas virtuales, para sacar todo el provecho a vmrun.

Seguid leyendo para encontrar más información.

En el caso que me ocupa, mi intención es realizar backups con Bacula de mis máquinas virtuales. Partimos de la base de que Bacula está bien configurado. A nivel de Job dentro de Bacula, destacaremos estas directivas:

Run Before Job = <command>

Run After Job = <command>

Con estas directivas pararemos la máquina virtual, la emaquetaremos/comprimiremos tar/gzip, y realizaremos el Backup (importante hacer una estimación de lo que ocupará en disco).

  • Listado de máquinas

$ vmrun -T server -g root -h ‘https://localhost:8333/sdk’ -p <password_de_root> list.vmx

Total running VMs: 2
[Storage1] vm_name1/vm_name1.vmx
[Storage1] vm_name2/vm_name2.vmx
  • Parada de máquina

$ vmrun -T server -g root -h ‘https://localhost:8333/sdk’ -p <password_de_root> start “[Storage1] vm_name1/vm_name1.vmx”

  • Arranque de máquina

$ vmrun -T server -g root -h ‘https://localhost:8333/sdk’ -p <password_de_root> stop “[Storage1] vm_name1/vm_name1.vmx”

El único problema que veo es que se necesitan las credenciales de root para funcionar. Grave riesgo de seguridad.

Ayuda sobre el comando:

vmrun version 2.0.1 build-156745

Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS]

AUTHENTICATION-FLAGS
--------------------
These must appear before the command and any command parameters.

   -h   (not needed for Workstation)
   -P   (not needed for Workstation)
   -T  (ws|server|server1)
     for example, use '-T server' for Server 2.0
                  use '-T server1' for Server 1.0
   -u   (not needed for Workstation)
   -p
  (not needed for Workstation)
   -gu
   -gp

POWER COMMANDS           PARAMETERS           DESCRIPTION
--------------           ----------           -----------
start                    Path to vmx file     Start a VM
                         [gui|nogui]                     

stop                     Path to vmx file     Stop a VM
                         [hard|soft]                   

reset                    Path to vmx file     Reset a VM
                         [hard|soft]                    

suspend                  Path to vmx file     Suspend a VM
                         [hard|soft]                      

pause                    Path to vmx file     Pause a VM

unpause                  Path to vmx file     Unpause a VM

SNAPSHOT COMMANDS        PARAMETERS           DESCRIPTION
-----------------        ----------           -----------
snapshot                 Path to vmx file     Create a snapshot of a VM
                         Snapshot name                                 

deleteSnapshot           Path to vmx file     Remove a snapshot from a VM
                         Snapshot name                                   

revertToSnapshot         Path to vmx file     Set VM state to a snapshot
                         Snapshot name                                  

RECORD/REPLAY COMMANDS   PARAMETERS           DESCRIPTION
----------------------   ----------           -----------
beginRecording           Path to vmx file     Begin recording a VM
                         Snapshot name                            

endRecording             Path to vmx file     End recording a VM

beginReplay              Path to vmx file     Begin replaying a VM
                         Snapshot name                            

endReplay                Path to vmx file     End replaying a VM

GUEST OS COMMANDS        PARAMETERS           DESCRIPTION
-----------------        ----------           -----------
runProgramInGuest        Path to vmx file     Run a program in Guest OS
                         [-noWait]
                         [-activeWindow]
                         [-interactive]
                         Complete-Path-To-Program
                         [Program arguments]                           

fileExistsInGuest        Path to vmx file     Check if a file exists in Guest OS
                         Path to file in guest                                  

setSharedFolderState     Path to vmx file     Modify a Host-Guest shared folder
                         Share name
                         Host path
                         writable | readonly                                   

addSharedFolder          Path to vmx file     Add a Host-Guest shared folder
                         Share name
                         New host path                                      

removeSharedFolder       Path to vmx file     Remove a Host-Guest shared folder
                         Share name                                            

listProcessesInGuest     Path to vmx file     List running processes in Guest OS

killProcessInGuest       Path to vmx file     Kill a process in Guest OS
                         process id                                     

runScriptInGuest         Path to vmx file     Run a script in Guest OS
                         Interpreter path
                         script_text                                  

deleteFileInGuest        Path to vmx file     Delete a file in Guest OS
                         Path in guest                                 

createDirectoryInGuest   Path to vmx file     Create a directory in Guest OS
                         Directory path in guest                            

deleteDirectoryInGuest   Path to vmx file     Delete a directory in Guest OS
                         Directory path in guest                            

listDirectoryInGuest     Path to vmx file     List a directory in Guest OS
                         Directory path in guest                          

copyFileFromHostToGuest  Path to vmx file     Copy a file from host OS to guest OS
                         Path on host
                         Path in guest                                            

copyFileFromGuestToHost  Path to vmx file     Copy a file from guest OS to host OS
                         Path in guest
                         Path on host                                             

renameFileInGuest        Path to vmx file     Rename a file in Guest OS
                         Original name
                         New name                                      

captureScreen            Path to vmx file     Capture the screen of the VM to a local file
                         Path on host                                                     

writeVariable            Path to vmx file     Write a variable in the VM state
                         [runtimeConfig|guestEnv]
                         variable name
                         variable value                                       

readVariable             Path to vmx file     Read a variable in the VM state
                         [runtimeConfig|guestEnv]
                         variable name                                       

VPROBE COMMANDS          PARAMETERS           DESCRIPTION
---------------          ----------           -----------
vprobeVersion            Path to vmx file     List VP version
vprobeLoad               Path to vmx file     Load VP script                        'VP script text'
vprobeReset              Path to vmx file     Disable all vprobes
vprobeListProbes         Path to vmx file     List probes
vprobeListGlobals        Path to vmx file     List global variables

GENERAL COMMANDS         PARAMETERS           DESCRIPTION
----------------         ----------           -----------
list                                          List all running VMs
upgradevm                Path to vmx file     Upgrade VM file format, virtual hw
installtools             Path to vmx file     Install Tools in Guest
register                 Path to vmx file     Register a VM
unregister               Path to vmx file     Unregister a VM
listRegisteredVM                              List registered VMs
clone                    Path to vmx file     Create a copy of the VM
                         Path to destination vmx file
                         full|linked
                         [Snapshot name]

Examples:

Starting a virtual machine with Workstation on a Windows host
   vmrun -T ws start "c:\my VMs\myVM.vmx"

Stopping a virtual machine with Server on a linux host
   vmrun -T server -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[storage1] vm/myVM.vmx"

Running a program in a virtual machine with Workstation on a Windows host with Windows guest
   vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe"

Running a program in a virtual machine with Server on a linux host with linux guest
   vmrun -T server -h https://myHost.com/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[storage1] vm/myVM.vmx" /usr/bin/X11/xclock -display :0

Creating a snapshot of a virtual machine with Workstation on a Windows host
   vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot

Reverting to a snapshot with Workstation on a Windows host
   vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot

Deleting a snapshot with Workstation on a Windows host
   vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot

Leave a Reply





Top