「VMware」の版間の差分

提供: Wikinote
移動: 案内検索
(DHCP でホストの IP アドレスを固定する)
(メモ)
 
(同じ利用者による、間の9版が非表示)
行3: 行3:
 
== VMware Server 2.0 ==
 
== VMware Server 2.0 ==
  
=== DHCP でホストの IP アドレスを固定する ===
+
=== メモ ===
 +
* [http://www.vmware.com/support/pubs/server_pubs.html VMware Server Documentation]
 +
* [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427 Timekeeping best practices for Linux guests] これはいい情報
 +
* [http://d.hatena.ne.jp/pyopyopyo/20081011/p1 VMware Server 2.0 をコマンドラインから操作する方法]
 +
* 電源 ON
 +
# 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 であるが、書き込み権限がない。
 
設定ファイルは /etc/vmware/vmnet?/dhcpd/dhcpd.conf であるが、書き込み権限がない。
 
   [root@lab ~]# ll /etc/vmware/vmnet8/dhcpd/
 
   [root@lab ~]# ll /etc/vmware/vmnet8/dhcpd/
行15: 行87:
 
だがやる。
 
だがやる。
  
まず、VM の MAC アドレスを確認する。vmx ファイルに記載がある。
+
まず、VM の MAC アドレスを確認する。ゲスト OS で <code>ifconfig</code> を実行してもよいが、
 +
立ち上げていない場合などは面倒なので、vmx ファイルを見ればよい。
 
  [root@lab ~]# grep Address /vmware/vms/centos52/centos52.vmx
 
  [root@lab ~]# grep Address /vmware/vms/centos52/centos52.vmx
 
  ethernet0.generatedAddress = "00:0c:29:cb:d4:aa"★
 
  ethernet0.generatedAddress = "00:0c:29:cb:d4:aa"★
行32: 行105:
 
     host centos52 { ★追加する
 
     host centos52 { ★追加する
 
         hardware ethernet 00:0c:29:cb:d4:aa;
 
         hardware ethernet 00:0c:29:cb:d4:aa;
         fixed-address 192.168.1.52;
+
         fixed-address 192.168.8.52;
 
     }
 
     }
 
  }
 
  }
  
たぶん、VMware の再起動が必要。
+
VMware を再起動する。(もちろん、ゲストも終了しておく。)
 
  # /etc/init.d/vmware restart
 
  # /etc/init.d/vmware restart
 
+
</toggledisplay>
=== メモ ===
+
* [http://d.hatena.ne.jp/pyopyopyo/20081011/p1 VMware Server 2.0 をコマンドラインから操作する方法]
+
* 電源 ON
+
# 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
+

2011年4月21日 (木) 18:27時点における最新版

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

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>