VMware

提供: Wikinote
移動: 案内検索

えす・いー もすなる仮想化といふものを、をたく もしてみむとて、するなり。

VMware Server 2.0

メモ

# vmware-vim-cmd vmsvc/power.on 16
  • VM リスト
# vmware-vim-cmd vmsvc/getallvms
Vmid     Name                   File                  Guest OS     Version   Annotation
16     centos52   [standard] centos52/centos52.vmx   rhel5Guest    vmx-07
32     centos47   [standard] centos47/centos47.vmx   rhel4Guest    vmx-07
48     centos39   [standard] centos39/centos39.vmx   rhel3Guest    vmx-07
64     suse103    [standard] suse103/suse103.vmx     sles10Guest   vmx-07

これらを簡単なコマンドにしておく。

[hagio@lab hagi_utils]$ cat vmlist
#! /bin/bash
/usr/bin/vmware-vim-cmd vmsvc/getallvms
[hagio@lab hagi_utils]$ cat vmon
#! /bin/bash
if [ $# -ne 1 ]; then
    echo "Usage: vmon VMID"
    exit
fi 
vmware-vim-cmd vmsvc/power.on $1

機能を追加して、VM リストに電源の状態を表示するようにしてみた。

#! /bin/bash
IFS=$'\n'
VMLIST=($(vmware-vim-cmd vmsvc/getallvms))
VMS=$(echo "${VMLIST[*]}" | awk '/vmx/{print $1}')
POWER=("Power")
for vm in $VMS; do
    POWER=("${POWER[@]}" "$(vmware-vim-cmd vmsvc/power.getstate $vm | awk 'NR==2{print $2}')")
done

for i in $(seq 1 ${#VMLIST[@]}); do
    i=$((i - 1))
    echo "${VMLIST[$i]}" "${POWER[$i]}"
done

bash の配列が難しくて苦労した・・

[root@lab ~]# vmlist
Vmid     Name                   File                  Guest OS     Version   Annotation Power
16     centos52   [standard] centos52/centos52.vmx   rhel5Guest    vmx-07               off
32     centos47   [standard] centos47/centos47.vmx   rhel4Guest    vmx-07               off
48     centos39   [standard] centos39/centos39.vmx   rhel3Guest    vmx-07               off
64     suse103    [standard] suse103/suse103.vmx     sles10Guest   vmx-07               on

ホストの IP アドレスを固定する

vmnet の dhcpd.conf を書き換える方法をとっていたが、VMware をバージョンアップした際に書き換えられてしまった。 アクセス権からも、自分で書き換えることは想定されていない可能性が高いので、この方法はよろしくないようだ。

ここに書くのはどうかと思うが、いちおうゲスト側で固定 IP にする方法を書いておく。。

/etc/sysconfig/network-scripts/ifcfg-ethX を以下のように書き換えればよい。

DEVICE=eth0
#BOOTPROTO=dhcp ★コメントアウト
BOOTPROTO=none  ★追記
HWADDR=00:0C:29:AE:5A:CE
IPADDR=192.168.8.47   ★追記
NETMASK=255.255.255.0 ★追記
ONBOOT=yes
TYPE=Ethernet

ちなみに、NETMASK は書かなくてもよい (IPADDR から推測される)。 NETWORK、BROADCAST は書かない方がよい。 それぞれ、IPADDR と NETMASK から自動的に計算されるからである。 (参照:Linux/ネットワーク)

古いメモ <toggledisplay> 設定ファイルは /etc/vmware/vmnet?/dhcpd/dhcpd.conf であるが、書き込み権限がない。

  [root@lab ~]# ll /etc/vmware/vmnet8/dhcpd/
  合計 12
★-r--r--r-- 1 root root  765  3月 28 01:42 dhcpd.conf
  -rw-r--r-- 1 root root  539  4月  2 20:39 dhcpd.leases
  -rw-r--r-- 1 root root 1271  4月  2 20:39 dhcpd.leases~

これは、勝手に書き換えない方が良いということだろうか? 設定スクリプトとかがあるのかもしれない。

だがやる。

まず、VM の MAC アドレスを確認する。ゲスト OS で ifconfig を実行してもよいが、 立ち上げていない場合などは面倒なので、vmx ファイルを見ればよい。

[root@lab ~]# grep Address /vmware/vms/centos52/centos52.vmx
ethernet0.generatedAddress = "00:0c:29:cb:d4:aa"★
ethernet0.generatedAddressOffset = "0"

上述の設定ファイルを編集する。

[root@lab ~]# vi /etc/vmware/vmnet8/dhcpd/dhcpd.conf
                   :
subnet 192.168.8.0 netmask 255.255.255.0 {
    range 192.168.8.128 192.168.8.254;
    option broadcast-address 192.168.8.255;
    option domain-name-servers 192.168.8.2;
    option domain-name "localdomain";
    option routers 192.168.8.2;

    host centos52 { ★追加する
        hardware ethernet 00:0c:29:cb:d4:aa;
        fixed-address 192.168.8.52;
    }
}

VMware を再起動する。(もちろん、ゲストも終了しておく。)

# /etc/init.d/vmware restart

</toggledisplay>