「VMware」の版間の差分
(→DHCP でホストの IP アドレスを固定する) |
細 (→メモ) |
||
(同じ利用者による、間の9版が非表示) | |||
行3: | 行3: | ||
== VMware Server 2.0 == | == VMware Server 2.0 == | ||
− | === | + | === メモ === |
+ | * [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 | + | まず、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. | + | fixed-address 192.168.8.52; |
} | } | ||
} | } | ||
− | + | VMware を再起動する。(もちろん、ゲストも終了しておく。) | |
# /etc/init.d/vmware restart | # /etc/init.d/vmware restart | ||
− | + | </toggledisplay> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
2011年4月21日 (木) 18:27時点における最新版
えす・いー もすなる仮想化といふものを、をたく もしてみむとて、するなり。
VMware Server 2.0
メモ
- VMware Server Documentation
- Timekeeping best practices for Linux guests これはいい情報
- 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 であるが、書き込み権限がない。
[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>