Using Vmrun To Control Virtual Machines: Vmware Workstation 7.0 Vmware Fusion 3.0 Vmware Vsphere 4 Vmware Server 2.0
Using Vmrun To Control Virtual Machines: Vmware Workstation 7.0 Vmware Fusion 3.0 Vmware Vsphere 4 Vmware Server 2.0
VMware Workstation 7.0 VMware Fusion 3.0 VMware vSphere 4 VMware Server 2.0
This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions of this document, see http://www.vmware.com/support/pubs.
EN-000222-2
You can find the most up-to-date technical documentation on the VMware Web site at: http://www.vmware.com/support/ The VMware Web site also provides the latest product updates. If you have comments about this documentation, submit your feedback to: [email protected]
Copyright 2008, 2009 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
VMware, Inc.
Contents
AboutThisBook
5 7
UsingvmruntoControlVirtualMachines
AboutthevmrunUtility 7 PowerCommands 7 SnapshotCommands 7 RecordandReplayCommands 7 GuestOperatingSystemCommands 8 MaintenanceCommands 8 VProbesCommands 8 Limitations 8 SettingUpvmrun 8 HowtoGetvmrun 8 LinuxSetup 8 WindowsSetup 9 MacOSXSetup 9 SpecifyingtheVMwareProductPlatform 9 EncryptedVirtualMachines 9 GuestOperations 9 RunningHostedPlatformsLocally 9 RunningVMwarevSphereRemotely 10 RunningVMwareServerRemotely 10 VirtualMachineRunReference 10 PathtoVMXFile 10 DisablingDialogBoxes 10 SyntaxofvmrunCommands 11 ExamplesofUsingvmrun 15 RebootCommands 15 PowerCommands 15 SnapshotCommands 16 RecordandReplayCommands 16 RunningGuestApplications 16 GuesttoHostFileOperations 17 MaintenanceCommands 18
Index 19
VMware, Inc.
VMware, Inc.
Revision History
Thisbookisrevisedwitheachreleaseoftheproductorwhennecessary.Arevisedversioncancontainminor ormajorchanges.Table 1summarizesthesignificantchangesineachversionofthisguide. Table 1. Revision History
Revision 20091020 20090909 20081231 20080815 20080724 20080623 Description ForVMwareWorkstation7.0,VMwarePlayer3.0,andVMwareFusion3.0. FortheVIXAPI1.7release,whichprovidedsupportforESX/ESXihostsandVMwarevSphere4. NewinformationaboutnullinterpreterforRunScriptInGuestonWindows. MoreexamplesforVMwareServer2.0RC2andWorkstation6.5RC. Initialrelease,includingsupportforVMwareFusiononIntelbasedMacintoshOSXhosts. InitialdraftfortheVMwareServer2.0RC1andWorkstation6.5Beta2releases.
Intended Audience
Thisbookisintendedfordevelopersandsystemadministratorswhowanttocontrolguestvirtualmachines onvariousVMwareproductplatforms.SupportedplatformsincludeWorkstation,Player,VMwareFusion, VMwareServer,andVMwarevSphere(ESX/ESXihostswithvCenterServer).
Document Feedback
VMwarewelcomesyoursuggestionsforimprovingourdocumentation.Sendyourfeedbackto [email protected].
VMware, Inc.
Support Offerings
TofindouthowVMwaresupportofferingscanhelpmeetyourbusinessneeds,goto http://www.vmware.com/support/services.
VMware, Inc.
Thisdocumentcontainsthefollowingsections:
Power Commands
Powercommandscontrolthesevirtualmachineoperations:start(poweron),stop(poweroff),reset(reboot), suspend(butallowlocalworktoresume),pause(withoutinterrupting),andunpause(continue). Workstationcangroupvirtualmachinesinteamsandapplypoweroperationstothewholeteam.
Snapshot Commands
Asnapshotcapturesthestateofavirtualmachineatthetimeofthesnapshot,includingalldataonvirtual disks.Youcanthenusethesnapshottorevertthevirtualmachinetoitspreviousstate.Snapshotsareuseful fordatabackup,andasaplaceholderfordevelopmentandtesting. Snapshotcommandslistexistingsnapshotsofavirtualmachine,createasnapshot,deleteasnapshot,and revertavirtualmachinetoitsstateatthetimeofasnapshot. VMwareServerlimitseachvirtualmachinetoonesnapshot.VMwareFusionsupportssnapshotsinalineonly.
VMware, Inc.
Thetimeout(waitforVMwareTools)isfiveminutesforallguestrelatedcommands.
Maintenance Commands
Thiscategoryincludescommandstolistallrunningvirtualmachines,upgradethevirtualmachinehardware version,andinstallVMwareToolsintheguestoperatingsystem. Additionally,exceptonVMwareServer,youcancloneavirtualmachineimagetoanothervirtualmachine. OnVMwarevSphereandVMwareServer,youcanregisterandunregistervirtualmachines.
VProbes Commands
OnWorkstationandFusion,vmruncaninteractwithVProbes,afacilityforinstrumentingapoweredonguest operatingsystem,itsprocesses,andthevirtualizationlayer.SeetheVProbesProgrammingReferencefordetails.
Limitations
VMwareFusiondoesnotsupportsnapshottrees,orrecordandreplay. Playerdoesnotsupportpauseandunpause,snapshotoperations,virtualmachinecloning,virtualhardware upgrade,orrecordandreplay. VMwareServerdoesnotsupportteams,sharedfolders,cloning,recordandreplay,ormultiplesnapshots. Whenyoutrytocreateasecondsnapshot,theUIasksyoutooverwriteyourexistingsnapshot.
Setting Up vmrun
Theprocedureforsettingupvmrunvariesbasedontheoperatingsystemoftheclientcomputer.
Linux Setup
To use the vmrun utility on Linux 1 2 Inacommandorterminalwindow,typevmruntoseecommandlineoptions. IfthisfailsonanoldLinuxdistribution:asrootorsuperuser,editthe/etc/ld.so.conffile,addthe followinglinewiththedefaultlocationoftheVIXlibrary,savethefile,andruntheldconfigcommand.
/usr/lib/vmware-vix/lib
VMware, Inc.
Windows Setup
To use the vmrun utility on Windows 1 Thevmrunutilityisinstalledinthisfolderbydefault:
C:\Program Files\VMware\VMware VIX
Inacommandwindow,typevmruntoseecommandlineoptions.
Mac OS X Setup
To use the vmrun utility on Mac OS 1 InaTerminalwindow,addtheVMwareFusiondirectorytoyoursystempath.
export PATH="$PATH:/Library/Application Support/VMware Fusion"
Typevmruntoseecommandlineoptions.
Inthefollowingsyntaxexamples,optionsenclosedinanglebracketsindicatevariablesthatyousupply.
Guest Operations
Guestoperationsrequireauthenticationbytheguestoperatingsystem,sotheircommanddescriptionsin Table 2,vmrunCommandsandParameters,onpage 11saythatavalidguestloginisrequired.Usethe followingflagstospecifytheguestlogin:
-gu <userName in guest OS> -gp <userPassword in guest OS>
VMware, Inc.
InVMwarevSphere,usethe-TflagtoconnecttothevCenterServer.
vmrun -T vc
VMwarevSphererequiresadditionalflagsforconnectionstoanESX/ESXihostorthevCenterServer:
-h -P -u -p https://<hostName or IPaddr>/sdk <portNumber> <adminLogin on VMware Server> <adminPassword on VMware Server>
TosetthehosttypeforremoteaccesstoVMwareServer1.0.x,usethe-Toption,the-hoptionwiththehost nameinsteadoftheURL,andthe-Poptionwiththeportnumber.
vmrun -T server1 -h vm1.example.com -P 443 -u root -p secretpw list
DatastoreonanESX/ESXihost
[Storage1] Win XP/Win XP.vmx
VMwareServerdatastore
[standard] Win XP/Win XP.vmx
WorkstationforWindowspath
C:\Documents and Settings\<username>\My Documents\My Virtual Machines\Win XP\Win XP.vmx
WorkstationforLinuxpath
/home/<username>/VirtualMachines/Ubuntu/Ubuntu.vmx
VMwareFusionforMacOSXpath
~/Documents/Virtual Machines.localized/Windows XP Home.vmwarevm/Windows XP Home.vmx
10
VMware, Inc.
<pathto.vmxfile>
VMware, Inc.
11
Guest Operating System Commands Thetimeout(waitforVMwareTools)isfiveminutesforallguestrelatedcommands. runProgramInGuest Runsaspecifiedprogramintheguestoperatingsystem. The-noWaitoptionreturnsapromptimmediatelyafter theprogramstartsintheguest,ratherthanwaitingforit tofinish.Thisoptionisusefulforinteractiveprograms. The-activeWindowoptionensuresthattheWindows GUIisvisible,notminimized.IthasnoeffectonLinux. The-interactiveoptionforcesinteractiveguestlogin. ItisusefulforWindowsVistagueststomakethe programvisibleintheconsolewindow. Youmustprovidethefullpathnameofaprogram accessibletotheguest.Alsoprovidefullaccessible pathnamesforanyfilesspecifiedintheprogram arguments,accordingtorequirementsoftheprogram. VMwareToolsandavalidguestloginarerequired. <pathto.vmxfile> [ -noWait | -activeWindow | -interactive ] <programname> [<programarguments>]
12
VMware, Inc.
setSharedFolderState (VMwarevSphereand VMwareServerdonot supportsharedfolders.) addSharedFolder (VMwarevSphereand VMwareServerdonot supportsharedfolders.) removeSharedFolder (VMwarevSphereand VMwareServerdonot supportsharedfolders.) enableSharedFolders (VMwarevSphereand VMwareServerdonot supportsharedfolders.)
<pathto.vmxfile> <sharename>
<pathto.vmxfile> [runtime]
killProcessInGuest
<pathto.vmxfile> <processID>
<pathto.vmxfile> <pathtofileonguest>
VMware, Inc.
13
copyFileFromHostToGuest
Maintenance Commands list upgradevm Listsallrunningvirtualmachines. Upgradesavirtualmachinetothecurrentversionof virtualhardware.Hasnoeffectifthevirtualhardware versionisthemostrecentsupported. PreparestoinstallVMwareToolsintheguestoperating system.InWindowsguestswithautorunenabled,the VMwareToolsinstallerstartsbyitself.InLinuxguests withoutautorun,thiscommandconnectsthevirtual CDROMdrivetotheVMwareToolsISOimagesuitable fortheguest,buttheinstallerdoesnotstart.Youmust completetheinstallationwithadditionalmanualsteps, asdescribedintheproductdocumentation. Registersthespecifiedvirtualmachine,addingittothe hostsinventory.Pathformatdependsontheproduct. ForVMwareServer2.0,"[storage1] vm/vm.vmx" (startingwiththedatastore)istypical. Unregistersthespecifiedvirtualmachine,removingit fromthehostsinventory.Pathformatdependsonthe product.ForServer2.0,"[storage1] vm/vm.vmx" (startingwiththedatastore)istypical. Listsallregisteredvirtualmachines. Removesthespecifiedvirtualmachine. None <pathto.vmxfile>
installTools
<pathto.vmxfile>
register (Registrationnotsupported onWorkstationoron VMwareFusion.) unregister (Registrationnotsupported onWorkstationoron VMwareFusion.) listRegisteredVM deleteVM
<pathto.vmxfile>
<pathto.vmxfile>
None <pathto.vmxfile>
14
VMware, Inc.
Reboot Commands
RebootavirtualmachinerunningonWorkstationforLinux:
vmrun -T ws reset /path/to/vm/RHEL4/RHEL4.vmx soft
RebootavirtualmachinerunningonWorkstationforWindows:
cd "C:\Documents and Settings\<user>\My Documents\My Virtual Machines" vmrun -T ws reset "WindowsXP\WindowsXP.vmx" soft
RebootavirtualmachinerunningonVMwareFusion:
vmrun -T fusion reset ~/Documents/VirtualMachines.localized/WindowsXP.vmwarevm/WindowsXP.vmx soft
RebootavirtualmachinerunningonanESX/ESXihost:
vmrun -T esx -h https://10.0.1.8/sdk -u root -p <pass> reset "[storage1] WinXP/WinXP.vmx" soft
Power Commands
PoweronavirtualmachinewithWorkstationonaWindowshost:
vmrun start "C:\Documents and Settings\<user>\My Documents\My Virtual Machines\WinXP\WinXP.vmx"
ThiserrormessagefollowingthiscommandindicatesthattheVIXpackageyouinstalleddoesnotsupport VMwareServer:
vmrun -T server start "My Virtual Machines\WinXP\WinXP.vmx" Error: The specified service provider was not found
PoweroffavirtualmachinewithWorkstationonaWindowshost:
vmrun stop "C:\Documents and Settings\<user>\My Documents\My Virtual Machines\WinXP\WinXP.vmx"
OntheremoteESX/ESXihostwithIPaddress10.0.1.8,poweronavirtualmachine:
vmrun -T esx -h https://10.0.1.8/sdk -u root -p <pass> start "[storage1] WinXP/WinXP.vmx"
VMware, Inc.
15
IfHTTPSserviceisnotconfiguredonport443,specifytheappropriateportafterthecolon:
vmrun -T esx -h https://10.0.1.9:8333/sdk -u root -p <pass> start "[storage1] WinXP/WinXP.vmx"
OntheremoteESX/ESXihostwithIPaddress10.0.1.8,poweroffthevirtualmachine:
vmrun -T esx -h https://10.0.1.8/sdk -u root -p <pass> start "[storage1] WinXP/WinXP.vmx"
ForVMwareServerinstalledonWindowshosts,the-uuserisusuallyAdministrator,notroot.
vmrun -T server -h https://10.0.1.8/sdk -u Administrator -p <pass> start "[std] WinXP/WinXP.vmx"
Snapshot Commands
CreateasnapshotofavirtualmachinewithWorkstationonaLinuxhostorVMwareFusion:
vmrun -T ws snapshot /path/to/vm/Ubuntu/Ubuntu.vmx mySnapshot
Listsnapshotsonthevirtualmachine,showingtheonemadeinthepreviouscommand:
vmrun -T ws listSnapshots /path/to/vm/Ubuntu/Ubuntu.vmx Total snapshots: 1 mySnapshot
Reverttothesnapshotyoumade,whichsuspendsthevirtualmachine,andrestarttoresumeoperation:
vmrun -T ws revertToSnapshot /path/to/vm/Ubuntu/Ubuntu.vmx mySnapshot vmrun -T ws start /path/to/vm/Ubuntu/Ubuntu.vmx
Deletethesnapshotbyspecifyingitsname:
vmrun -T ws deleteSnapshot /path/to/vm/Ubuntu/Ubuntu.vmx mySnapshot
Whenyoustoprecording,nametherecordingsession:
vmrun -T ws -gu <user> -gp <pass> endRecording WinXP\WinXP.vmx
Reverttothevirtualmachinesnapshotandstartreplayingtherecordingofuserevents:
vmrun -T ws -gu <user> -gp <pass> beginReplay WinXP\WinXP.vmx session1
Pausereplay:
vmrun -T ws -gu <user> -gp <pass> pause WinXP\WinXP.vmx
Resumereplay:
vmrun -T ws -gu <user> -gp <pass> unpause WinXP\WinXP.vmx
Endreplay:
vmrun -T ws -gu <user> -gp <pass> endReplay WinXP\WinXP.vmx
StartthecommandtoolonaWindowsguestasanactivewindowonthedesktop:
vmrun -T ws -gu <user> -gp <pass> runProgramInGuest WinXP\WinXP.vmx -activeWindow cmd.exe
RunabatchscriptfileonaWindowsguest,withPerlasthescriptinterpreter:
vmrun -T ws -gu <user> -gp <pass> runScriptInGuest Win2k\Win2k.vmx C:\perl\perl.exe C:\script.pl
16
VMware, Inc.
Runabatchscriptandkeeprunningafterwards.Tousecmd.exeonWindows,youmustspecifythescript interpreterasnull:
vmrun -T ws -gu <user> -gp <pass> runScriptInGuest WindowsXP\WindowsProfessionalXP.vmx "" "cmd.exe /k \"C:\\Program Files\\Microsoft Visual Studio\\VC\\vcvarsall.bat\" x86"
RunaBashshellscriptcalledrunitonaLinuxguest:
vmrun -T ws -gu <user> -gp <pass> runScriptInGuest Ubuntu/Ubuntu.vmx /bin/bash /home/<user>/runit
StartanXclockonaLinuxguest(thisrequiresthe-displayoptiontoappearontheconsole).Runthesame Xclockcommand,butreturncontrolbacktotheconsoleimmediately:
vmrun -gu <user> -gp <pass> runProgramInGuest SUSE/SUSE.vmx /usr/bin/xclock -display :0 vmrun -gu <user> -gp <pass> runProgramInGuest SUSE/SUSE.vmx -noWait /usr/bin/xclock -display :0
ForLinuxapplicationsthatdonotacceptthe-displayoption,youcansettheguestenvironmentforthe vmware-guestdprocess,whichaffectssubsequentcommands(guestEnvrequiresrootpermission):
vmrun -T ws -gu root -gp <rootpass> writeVariable Ubuntu/Ubuntu.vmx guestEnv DISPLAY :0 vmrun -T ws -gu <user> -gp <userpass> runProgramInGuest Ubuntu/Ubuntu.vmx /usr/bin/firefox
ListprocessesinaLinuxguest,andendtheprocessnumbered8192:
vmrun -T ws -gu <user> -gp <pass> listProcessesInGuest Ubuntu/Ubuntu.vmx vmrun -T ws -gu <user> -gp <pass> killProcessInGuest Ubuntu/Ubuntu.vmx 8192
RunaPerlscriptonaLinuxguesttoremoveDOSstylecarriagereturnsfromafile:
vmrun -T ws -gu <user> -gp <pass> runProgramInGuest Ubuntu/Ubuntu.vmx /usr/bin/perl -e "open(FILE, '>/tmp/unix.txt'); while (<>) { s/\r\n/\n/ ; print FILE}" /tmp/dos.txt
RunaPerlscriptonaWindowsguesttoinsertDOSstylecarriagereturnsinafile:
vmrun -T ws -gu <user> -gp <pass> runProgramInGuest WinXP\WinXP.vmx C:\cygwin\bin\perl.exe -e "open(FILE, >C:\dos.txt); while (<>) { s/\n/\r\n/ ; print FILE}" C:\unix.txt
RunaprograminaLinuxvirtualmachineonanESX/ESXihost:
vmrun -T esx -h https://10.0.1.8/sdk -u root -p <pass> -gu <user> -gp <userpass> runProgramInGuest "[storage1] RHEL4/RHEL4.vmx" /usr/X11R6/bin/xclock -display :0
Tocopyafilefromaguesttothehost,theusermusthavereadpermissiononthesourcefile:
vmrun -gu <user> -gp <pass> copyFileFromGuestToHost Ubuntu\Ubuntu.vmx /home/<user>/addr addr.txt
Sharedfoldersarewritablebydefault.Tomakeasharedfolderreadonlyortodeletethesharedfolder:
vmrun -T ws setSharedFolderState Ubuntu\Ubuntu.vmx <sharedFolderName> C:\Share readonly vmrun -T ws removeSharedFolder Ubuntu\Ubuntu.vmx <sharedFolderName>
VMware, Inc.
17
Maintenance Commands
ListrunningvirtualmachinesonWorkstation:
vmrun -T ws list Total running VMs: 2 C:\Documents and Settings\user\My Documents\My Virtual Machines\Ubuntu\Ubuntu.vmx C:\Documents and Settings\user\My Documents\My Virtual Machines\WinXP\WinXP.vmx
PreparetoinstallVMwareToolsonVMwareFusion:
vmrun -T fusion installTools RedHatEnt5/RedHatEnt5.vmx
RegisteranewvirtualmachineinstalledonanESX/ESXihost:
vmrun -T esx -h https://10.0.1.5/sdk -u root -p <pass> register "[storage1] RHEL5/RHEL5.vmx"
UnregisteranoldvirtualmachinegoingoutofserviceonanESX/ESXihost:
vmrun -T esx -h https://10.0.1.5/sdk -u root -p <pass> unregister "[storage1] RHEL3/RHEL3.vmx"
OnVMwarevCenterServer,thevmrunutilitysupportsthesameformofpathtoVMXspecificationas ESX/ESXihosts.YoucannotreachavirtualmachinefilethroughitsresourcepoolorvApp.
vmrun -T vc -h https://10.0.1.9/sdk -u Administrator -p <pw> register "[storage1] RHEL5/RHEL5.vmx"
18
VMware, Inc.
Index
A
addSharedFolder command 13, 17
B
beginRecording command 12, 16 beginReplay command 12, 16
C
captureScreen command 14 clone command 15 command-line flags 9 copyFileFromGuestToHost command 14, 17 copyFileFromHostToGuest command 14, 17 createDirectoryInGuest command 13
listDirectoryInGuest 14 listProcessesInGuest 13 readVariable 14 removeSharedFolder 13 renameFileInGuest 14 runProgramInGuest 12 runScriptInGuest 13 setSharedFolderState 13 user name and password 9 writeVariable 14
I
installTools command 14, 18
K D
deleteDirectoryInGuest command 13 deleteFileInGuest command 13 deleteSnapshot command 12, 16 deleteVM command 14 dialog boxes, disabling 10 disableSharedFolders command 13 killProcessInGuest command 13, 17
L
Linux setup 8 list command 14, 18 listDirectoryInGuest command 14 listProcessesInGuest command 13, 17 listRegisteredVM command 14 listSnapshots command 11, 16
E
enableSharedFolders 13 endRecording command 12, 16 endReplay command 12, 16 ESX/ESXi hosts, flags for 10
M
Mac OS setup 9 maintenance commands 8 clone 15 deleteVM 14 installTools 14 list 14 listRegisteredVM 14 register 14 unregister 14 upgradevm 14
F
fileExistsInGuest command 13 flags on command line 9 Fusion, flags for 9
G
guest operations 8 addSharedFolder 13 captureScreen 14 copyFileFromGuestToHost 14 copyFileFromHostToGuest 14 createDirectoryInGuest 13 deleteDirectoryInGuest 13 deleteFileInGuest 13 disableSharedFolders 13 enableSharedFolders 13 fileExistsInGuest 13 killProcessInGuest 13
VMware, Inc.
P
path to VMX file 10 pause command 11, 16 power commands 7 pause 11 reset 11 start 11 stop 11 suspend 11 unpause 11
19
R
record and replay commands 7 beginRecording 12 beginReplay 12 endRecording 12 endReplay 12 register command 14, 18 removeSharedFolder command 13, 17 renameFileInGuest command 14 reset command 11, 15 revertToSnapshot command 12, 16 runProgramInGuest command 12, 16 runScriptInGuest command 13, 16
W
Windows setup 9 Workstation, flags for 9 writeVariable command 14, 17
S
Server, flags for 10 setSharedFolderState command 13, 17 setup on Linux 8 setup on Mac OS 9 setup on Windows 9 snapshot command 11, 16 snapshot commands 7 deleteSnapshot 12 listSnapshots 11 revertToSnapshot 12 snapshot 11 start command 11, 15 stop command 11, 15 suspend command 11
T
technical support resources 5
U
unpause command 11, 16 unregister command 14, 18 upgradevm command 14
V
vCenter Server, flags for 10 vmrun utility 7 VMware Fusion, flags for 9 VMware Server, flags for 10 VMware vSphere, flags for 10 VMware Workstation, flags for 9 VMX file, specifying 10 VProbes commands 8 vprobeListGlobals 15 vprobeListProbes 15 vprobeLoad 15 vprobeLoadFile 15 vprobeReset 15 vprobeVersion 15
20
VMware, Inc.