Symfoware

Symfowareについての考察blog

Windows XPにVIX APIをインストールし、ESXとVMWareの情報を取得する

以前、DebianにVIX APIをインストールしてみました。

Debian lennyにVIX APIをインストールし、ESXとVMWareの情報を取得する


今回は、Windows XPにインストールして使ってみることにします。





VIX APIインストーラーの入手



VIX APIインストーラーのダウンロードURLはこちら。
http://www.vmware.com/support/developer/vix-api/

VIX API 1.10のダウンロードリンクをクリックします。

01_001_20101116181642.png





ダウンロードには、会員登録(無料)が必要です。
取得したIDとパスワードを入力し、ログインします。

01_002_20101116181641.png






Download
VMWARE(R) SOFTWARE DEVELOPMENT KIT (SDK) AGREEMENT
というページが表示されます。
内容を確認し「Yes」を選択します。

01_003_20101116181641.png


ダウンロードページが表示されます。
「.exe for 32-bit and 64-bit Windows 」のリンクをクリックして、
インストーラーをダウンロードします。

01_004_20101116181641.png


これで、「VMware-vix-1.10.1-266898.exe」というインストーラーが
取得できると思います。






VIX APIのインストール



ダウンロードした「VMware-vix-1.10.1-266898.exe」を起動すると、
インストールが開始されます。
「Next」をを押下し、インストールを続行します。

01_005_20101116181641.png


ライセンス条項の確認画面です。
内容を確認し「I accept the terms in the license agreement」を選択。
「Next」を押下します。

01_006_20101116181641.png


インストールフォルダの確認画面です。
選択の余地はなさそうなので、このまま「Install」を押下しました。

01_007_20101116181716.png


インストール完了です。
「Finish」を押下して画面を閉じます。

01_008_20101116181716.png


これでVIX APIのインストールは完了です。






パスの設定



VIX APIのインストールは上記手順で終了ですが、apiを使用するためのコマンド
「vmrun.exe」にはパスを通してくれないようです。

[マイコンピューター]-[プロパティ]を開き、[詳細設定]タブの[環境変数]ボタンを押下。
下のリストのシステム環境変数の変数「Path」を選択して、編集ボタン押下。

既に入力されているパスに、「C:\Program Files\VMware\VMware VIX\」を追加します。

01_009_20101116181716.png



コマンドプロンプトを起動し、「vmrun」を実行してこんな出力が得られれば
VIX APIのインストールとパスの設定は上手くいってます。



vmrun version e.x.p build-266898

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



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

   -h <hostName> (not needed for Workstation)
   -P <hostPort> (not needed for Workstation)
   -T <hostType> (ws|server|server1|fusion|esx|vc|player)
     for example, use '-T server' for VMware Server 2.0
                 use '-T server1' for VMware Server 1.0
                 use '-T ws' for VMware Workstation
                 use '-T esx' for VMware ESX
                 use '-T vc' for VMware vCenter Server
   -u <userName in host OS> (not needed for Workstation)
   -p <password in host OS> (not needed for Workstation)
   -vp <password for encrypted virtual machine>
   -gu <userName in guest OS>
   -gp <password in guest OS>



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

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

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

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

pause                    Path to vmx file     Pause a VM

unpause                 Path to vmx file     Unpause a VM



SNAPSHOT COMMANDS        PARAMETERS         DESCRIPTION
-----------------        ----------         -----------
listSnapshots            Path to vmx file     List all snapshots in a VM
                         [showTree]

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
                         [andDeleteChildren]

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

enableSharedFolders     Path to vmx file     Enable shared folders in Guest
                         [runtime]

disableSharedFolders     Path to vmx file     Disable shared folders in Guest
                         [runtime]

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
                         [-noWait]
                         [-activeWindow]
                         [-interactive]
                         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'

vprobeLoadFile         Path to vmx file     Load VP file
                         Path to VP file

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

deleteVM                 Path to vmx file     Delete a VM

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 on an ESX host
   vmrun -T esx -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:8333/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[standard] 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


Enabling Shared Folders with Workstation on a Windows host
   vmrun -T ws enableSharedFolders "c:\my VMs\myVM.vmx"









基本的な使い方



今、困っているのは「この仮想OS、どこのホストで動いてるんだっけ?」っていうことが
わからないことです。
追々ツール化するとして、ホストに対し保持している仮想OSの問い合わせを行なってみます。


コマンドは、ESXに対してとVMWareServerで異なるようです。




ESX(ESXiを含む)に対して、登録している仮想OSのリストを要求する場合。




vmrun -T esx -h https://[ESXホスト名]/sdk -u [ユーザー名] -p [パスワード] listRegisteredVM





実行例は以下の通り。


C:\>vmrun -T esx -h https://192.168.1.1/sdk -u root -p Password listRegisteredVM
Total running VMs: 3
[ha-datacenter/datastore1] sv01/sv01.vmx
[ha-datacenter/datastore1] sv02/sv02.vmx
[ha-datacenter/datastore1] cl01/cl01.vmx





現在稼働しているリストを取得するには、以下のコマンドを実行します。


vmrun -T esx -h https://[ESXホスト名]/sdk -u [ユーザー名] -p [パスワード] list





実行例は以下の通り。


C:\>vmrun -T esx -h https://192.168.1.1/sdk -u root -p Password list
Total running VMs: 3
[ha-datacenter/datastore1] sv01/sv01.vmx
[ha-datacenter/datastore1] cl01/cl01.vmx







VMWareServer Ver1.xに対して、稼働している仮想OSのリストを要求する場合




現在稼働しているリストを取得するには、以下のコマンドを実行します。


vmrun -T server1 -h http://[VMWareServerホスト名]:902/sdk -u [ユーザー名] -p [パスワード] list



ポート番号は902ですが、インストール時の設定によっては異なるかもしれません。
※Ver2.x系では、https://[VMWareServerホスト名]:8333/sdkを指定するようですが、
手元に実機がないので不明です。


実行結果は以下の通り。


C:\>vmrun -T server1 -h http://192.168.1.1:902/sdk -u root -p Password list
Total running VMs: 3
/var/lib/vmware/Virtual Machines/sv01/sv01.vmx
/var/lib/vmware/Virtual Machines/sv02/sv02.vmx
/var/lib/vmware/Virtual Machines/cl01/cl01.vmx




ちなみに、VMWareServerに対しては、listRegisteredVMというオプションは
使用できないようです。エラーになりました。












関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2010/11/16(火) 18:18:56|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<VBScriptを使用して、Hyper-Vの仮想OSの情報を取得する | ホーム | SQL Server 2008 R2 Express コマンドでデータベースとテーブルを作成する(sqlcmd)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/647-e3ff685c
この記事にトラックバックする(FC2ブログユーザー)