Hatena::Grouptech

id:rx7(@namikawa)の技術メモ このページをアンテナに追加 RSSフィード

過去記事一覧 | Main Blog (元RX-7乗りの適当な日々) | SBM (id:rx7のBookmark)

2010/12/10

VMware vSphere CLIを使ってリモート操作 (SDK for Perl編その1)

| VMware vSphere CLIを使ってリモート操作 (SDK for Perl編その1) - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - VMware vSphere CLIを使ってリモート操作 (SDK for Perl編その1) - id:rx7(@namikawa)の技術メモ VMware vSphere CLIを使ってリモート操作 (SDK for Perl編その1) - id:rx7(@namikawa)の技術メモ のブックマークコメント

VMware vSphere CLIを使ってリモート操作 (vmware-cmd編その1)」に引き続き。

"--url"はvCenterのアドレス、"--vmname"は基本的に対象の仮想マシン(VM)名。あと"--password"でパスワードも指定できる。

# ちなみに、下記以外にも、もっと色々なコマンドやオプションがあるのですが、それはおいおい。

仮想マシン(VM)を起動/停止する

# perl vmcontrol.pl --username Administrator --operation poweron --vmname test01 --url https://10.255.xxx.xxx/sdk/webService

"--operation"の選択肢は、以下の通り。

poweron - Power on one or more virtual machines.
poweroff - Power off one or more virtual machines.
suspend - Suspend one or more virtual machines.
reboot - Reboot one or more guests.
reset - Reset one or more virtual machines.
shutdown - Shutdown one or more guests.
standby - Set to standby mode one or more guests.

テンプレートから仮想マシンへのデプロイ

# perl vmclone.pl --username Administrator --vmhost 10.255.yyy.yyy --vmname template_n --vmname_destination test01 --url https://10.255.xxx.xxx/sdk/webService --datastore data10

"--vmname"にはテンプレート名、"--vmname_destination"には新しく作る仮想マシン名。

テンプレートから仮想マシンへの変換

# perl vmtemplate.pl --username Administrator --url https://10.255.xxx.xxx/sdk/webService --vmname test01 --operation T --pool Resources

"--operation"で"VM"を指定すると、仮想マシンからテンプレートへの変換となる。

対象ホストに割り当てられているリソース確認

# perl vidiscovery.pl --url https://10.255.xxx.xxx/sdk/webService --username Administrator --managedentity datacenter --entityname datacenter_name
Enter password:

***************Datacenter CA_test***************
DataCenter : datacenter_name
   Host : 10.255.yyy.yyy
      VM : template_n
      VM : test01
      VM : test02

仮想マシンの情報確認

# perl vminfo.pl --url https://10.255.xxx.xxx/sdk/webService --username Administrator --vmname test01
Enter password:

Information of Virtual Machine test01

Name:            test01
No. of CPU(s):           1
Memory Size:             1024
Virtual Disks:           1
Template:                0
vmPathName:              [data_store_name] test01/test01.vmx
Guest OS:                CentOS 4/5 (64 ビット)
guestId:                 centos64Guest
Host name:               localhost
IP Address:              Not Known
VMware Tools:            VMware Tools is running and the version is current
Cpu usage:               0 MHz
Host memory usage:               290 MB
Guest memory usage:              0 MB
Overall Status:          The entity is OK

ゲスト(仮想OS)の情報確認

# perl guestinfo.pl --url https://10.255.xxx.xxx/sdk/webService --username Administrator --vmname test01 --operation display
Enter password:


Guest Info for the Virtual Machine 'test01' under host 10.255.yyy.yyy

test01 guestFamily: linuxGuest
test01 guestFullName: CentOS 4/5 (64 ビット)
test01 guestId: centos64Guest
test01 guestState: running
test01 hostName: localhost
test01 ipAddress: Not Known
test01 toolsStatus: VMware Tools is running and the version is current.
test01 toolsVersion: 8290
test01 Screen - Height: 400
test01 Screen - Width: 720
test01 Disk[0]: Capacity 34842681344
test01 Disk[0]: Path : /
test01 Disk[0]: freespace : 32237264896
test01 Disk[1]: Capacity 517738496
test01 Disk[1]: Path : /boot
test01 Disk[1]: freespace : 500488192
test01 guest - Net : Not Known
トラックバック - http://tech.g.hatena.ne.jp/rx7/20101210

2010/12/09

VMware vSphere CLIを使ってリモート操作 (vmware-cmd編その1)

| VMware vSphere CLIを使ってリモート操作 (vmware-cmd編その1) - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - VMware vSphere CLIを使ってリモート操作 (vmware-cmd編その1) - id:rx7(@namikawa)の技術メモ VMware vSphere CLIを使ってリモート操作 (vmware-cmd編その1) - id:rx7(@namikawa)の技術メモ のブックマークコメント

CLIをインストールしたリモートのサーバからコマンドを発行して、vCenter Serverの仮想マシン(VM)を制御する。

"--server"はvCenterのIPアドレス、"--vihost"はホスト(ノード)のIPアドレス、って感じ。ちなみに"--password"でパスワードも指定できる。

# ちなみに、vmware-cmdは、下記以外にも、もっと色々な操作が可能。おいおい書いていきます。

Config(.vmx, .vmtx)のパスを確認する

# vmware-cmd --server 10.255.xxx.xxx --username Administrator --vihost 10.255.yyy.yyy -l
Enter password:


/vmfs/volumes/4cfcxxxx-ba2cxxxx-64xx-00xxxx06xxxx/template_xxxx/template_n.vmtx
/vmfs/volumes/4cfcxxxx-ba2cxxxx-64xx-00xxxx06xxxx/test01/test01.vmx

仮想マシンを起動する

# vmware-cmd '/vmfs/volumes/4cfcxxxx-ba2cxxxx-64xx-00xxxx06xxxx/test01/test01.vmx' start --server 10.255.xxx.xxx --username Administrator --vihost 10.255.yyy.yyy
Enter password:
start() = 1

仮想マシンのuptimeを確認する

# vmware-cmd '/vmfs/volumes/4cfcxxxx-ba2cxxxx-64xx-00xxxx06xxxx/test01/test01.vmx' getuptime --server 10.255.xxx.xxx --username Administrator --vihost 10.255.yyy.yyy
Enter password:
getuptime() = 2340

仮想マシンを停止する(ゲストのシャットダウン)

# vmware-cmd '/vmfs/volumes/4cfcxxxx-ba2cxxxx-64xx-00xxxx06xxxx/test01/test01.vmx' stop soft --server 10.255.xxx.xxx --username Administrator --vihost 10.255.yyy.yyy
Enter password:
stop() = 1

参考

トラックバック - http://tech.g.hatena.ne.jp/rx7/20101209

2010/12/03

LinuxにVMware vSphere CLIをインストール

| LinuxにVMware vSphere CLIをインストール - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - LinuxにVMware vSphere CLIをインストール - id:rx7(@namikawa)の技術メモ LinuxにVMware vSphere CLIをインストール - id:rx7(@namikawa)の技術メモ のブックマークコメント

ちなみにCentOS 5。

まず、以下のURLあたりから、

http://downloads.vmware.com/d/info/datacenter_downloads/vmware_vsphere_4/4#drivers_tools

"VMware vSphere CLI" (ver.4.1)をダウンロードする。

# tar zxvf VMware-vSphere-CLI-4.1.0-254719.x86_64.tar.gz
# cd vmware-vsphere-cli-distrib
# ./vmware-install.pl

展開後に、インストールスクリプトを実行。

すると、ライセンス表示がされる。

Do you accept? (yes/no) yes

ライセンス表示を読み終えたら、同意するか聞かれるので"yes"を。

openssl 0.9.7 is required for encrypted connections.
Please install openssl-devel version 0.9.7 or greater.

opensslのライブラリが必要と言われた。

# yum install openssl-devel

yumでインストールして、./vmware-install.plを再実行。

The following Perl modules were found on the system but may be too old to work
with vSphere CLI:

Compress::Zlib 2.005 or newer
HTML::Parser 3.60 or newer
URI 1.37 or newer

CLIのインストールは完了するも、上記のPerlモジュールが古い、と言われた。

# cpan Compress::Zlib
# cpan HTML::Parser
# cpan URI

というわけで、CPANで最新モジュールをインストール。

# vmware-cmd --version
vSphere SDK for Perl version: 4.1
Script './' version: 4.1

ここまででインストールは完了。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20101203

2010/09/09

VMWareのディスクイメージ".vmdk"をLinuxからmountする

| VMWareのディスクイメージ".vmdk"をLinuxからmountする - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - VMWareのディスクイメージ".vmdk"をLinuxからmountする - id:rx7(@namikawa)の技術メモ VMWareのディスクイメージ".vmdk"をLinuxからmountする - id:rx7(@namikawa)の技術メモ のブックマークコメント

マウント

# yum install fuse-libs -y
# modprobe fuse
# vmware-mount /path/to/test.vmdk 1 /mnt/

"1"の部分は、パーティションナンバー。

アンマウント

# vmware-mount -d /mnt

vmware-mount: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory

必要なライブラリをインストール。 ⇒ "yum install fuse-libs -y"

fuse: device not found, try 'modprobe fuse' first

文字通り。 ⇒ "modprobe fuse"

参考

# vmware-mount
VMware DiskMount Utility version 2.0.1, build-156745

Usage: vmware-mount diskPath [partition num] mountPoint
       vmware-mount [option] [opt args]

There are two modes for mounting disks.  If no option is
specified, we mount individual partitions from virtual disks
independently.  The filesystem on the partition will be
accessible at the mount point specified.

The -f option mounts a flat representation of a disk on a
user-specified mount point.  The user must explicitly unmount
the disk when finished.  A disk may not be in both modes at once.

diskID is an identifier of the form username@hostname:/path/to/vm
for remote disks and just the path for local disks.  Options that
mount a remote disk also require -h -u -F and optionally -v options.
The -v option is required when connecting to a Virtual Center.

Options: -p <diskID>      list all partitions on a disk
         -l <diskID>      list all mounted partitions on a disk
         -L               list all mounted disks
         -d <mountPoint>  cleanly unmount this partition
                          (closes disk if it is the last partition)
         -f <diskPath> <mountPoint> mount a flat representation of the disk
                          at "mountPoint/flat."
         -k <diskID>      unmount all partitions and close disk
         -K <diskID>      force unmount all partitions and close disk
         -x               unmount all partitions and close all disks
         -X               force unmount all partitions and close all disks
Options for remote disks:
         -v                inventory path of the vm
         -h                hostname of remote server
         -u                username for remote server
         -F                file containing password
         -P                optional TCP port number (default: 902)
トラックバック - http://tech.g.hatena.ne.jp/rx7/20100909