vmware-cmdとは
VMware server 1.x系をインストール後に
GUI(VMware server console)環境で扱える実行プロセスを、CUI環境で扱う時に使用するコマンド群のことです。
他にも別途インストールが必要ですがVIX API 、Perl API等があります。
今回はそのvmware-cmdを用い仮想マシンの複製から登録までを、
勉学の意味も込めて私が業務で使用することがないshell scriptで書いてみました。
◆vmware-cmdを使って仮想マシンを複製登録する
#!/bin/bash
# define
BASE_PARH=/var/lib/vmware/Virtual\ Machines
BASE_SYSNAME=Ubuntu
VMXFILE=`ls "${BASE_PARH}/${BASE_SYSNAME}" | grep .vmx`
a() {
echo -n $2
for cnt in `seq 1 $1`
do
echo -n "。"
sleep 1
done
echo
}
b(){
echo -n $2
while [ `ps -A |grep $1|wc -l` -ne 0 ];
do
echo -n "。"
sleep 1
done
echo
}
c(){
if [ ! -n "$1" ];
then
echo "入力してください。"
exit 1
fi
}
# 始
if [ -z $1 ]
then
echo "名称を入力してください。"
read NEW_SYSNAME
c ${NEW_SYSNAME}
else
NEW_SYSNAME=$1
fi
if [ `vmware-cmd -l | grep ${NEW_SYSNAME} | wc -l` -gt 0 ]
then
echo "${NEW_SYSNAME} はすでに存在します。"
echo "別の名前を入力してください。"
exit 1
fi
if [ `ls "${BASE_PARH}" | grep ${NEW_SYSNAME} | wc -l` -gt 0 ]
then
echo "${NEW_SYSNAME} はすでに存在します。"
echo "別の名前を入力してください。"
exit 1
fi
cp -pfR "${BASE_PARH}/${BASE_SYSNAME}" "${BASE_PARH}/${NEW_SYSNAME}" &
b $! "Virtual Machineをコピーしています。"
# rename
sed -e s/displayName\ \=\ \".*\"/displayName\ \=\ \"${NEW_SYSNAME}\"/ -i "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}"
# vmware-cmd regist
vmware-cmd -s register "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}" >/dev/null
a 10 "Virtual Machineを登録しています。"
# vmware-cmd start
vmware-cmd "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}" start 2>/dev/null
a 10 "Virtual Machineを開始しています。"
# vmware-cmd answer
vmware-cmd "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}" answer
# vmware-cmd rename on VMware Server Tools
#vmware-cmd "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}" setconfig displayName ${NEW_SYSNAME} >/dev/null
#a 3 "Virtual Machineをリネームしています。"
#vmware-cmd "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}" suspend
#a 5 "Virtual Machineを停止しています。"
#vmware-cmd "${BASE_PARH}/${NEW_SYSNAME}/${VMXFILE}" start
#a 5 "Virtual Machineを起動しています。"
# vmware-cmd list
echo
echo "Virtual Machine一覧"
vmware-cmd -l
# 終
echo
echo "おしまい。"
VMware server consoleで確認して頂ければ登録した仮想マシンが、追加されているのが分かると思います。
Tags: shell script, vmware