「VMware」の版間の差分
(→DHCP でホストの IP アドレスを固定する) |
細 (→メモ) |
||
| (同じ利用者による、間の8版が非表示) | |||
| 行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"★ | ||
| 行38: | 行111: | ||
VMware を再起動する。(もちろん、ゲストも終了しておく。) | 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>