# vi /vmfs/volumes/ESXiVol/mkvm.sh
#!/bin/sh cd /vmfs/volumes/ESXiVol/ VMNAME=$1 VMMEMM=$2 VMSIZE=$3 CPFROM=$4 if [ "${VMNAME}" == "" -o "${VMMEMM}" == "" -o "${VMSIZE}" == "" ]; then echo "illegal parameters." echo "e.g. mkvm.sh NAME MEMMORY DISKSIZE & CopyFrom" exit 1 fi mkdir /vmfs/volumes/ESXiVol/${VMNAME} # First make the disk SEED=/vmfs/volumes/ESXiVol/${CPFROM}/${CPFROM}.vmdk if [ -f ${SEED} ]; then echo "Copy From ${SEED}..." vmkfstools -i /vmfs/volumes/ESXiVol/${CPFROM}/${CPFROM}.vmdk -d zeroedthick /vmfs/volumes/ESXiVol/${VMNAME}/${VM else echo "create new vm image..." vmkfstools -c ${VMSIZE} -a lsilogic /vmfs/volumes/ESXiVol/${VMNAME}/${VMNAME}.vmdk fi # Now output the vmx file cat << EOT >> ${VMNAME}/${VMNAME}.vmx .encoding = "UTF-8" config.version = "8" virtualHW.version = "8" pciBridge0.present = "TRUE" pciBridge4.present = "TRUE" pciBridge4.virtualDev = "pcieRootPort" pciBridge4.functions = "8" pciBridge5.present = "TRUE" pciBridge5.virtualDev = "pcieRootPort" pciBridge5.functions = "8" pciBridge6.present = "TRUE" pciBridge6.virtualDev = "pcieRootPort" pciBridge6.functions = "8" pciBridge7.present = "TRUE" pciBridge7.virtualDev = "pcieRootPort" pciBridge7.functions = "8" vmci0.present = "TRUE" hpet0.present = "TRUE" nvram = "${VMNAME}.nvram" virtualHW.productCompatibility = "hosted" powerType.powerOff = "soft" powerType.powerOn = "hard" powerType.suspend = "hard" powerType.reset = "soft" displayName = "${VMNAME}" extendedConfigFile = "${VMNAME}.vmxf" memsize = "${VMMEMM}" ide1:0.present = "TRUE" ide1:0.clientDevice = "TRUE" ide1:0.deviceType = "cdrom-raw" ide1:0.startConnected = "FALSE" ethernet0.present = "TRUE" ethernet0.virtualDev = "e1000" ethernet0.networkName = "VM Network" ethernet0.addressType = "generated" guestOS = "centos-64" scsi0.present = "TRUE" scsi0.sharedBus = "none" scsi0.virtualDev = "lsilogic" scsi0:0.present = "TRUE" scsi0:0.fileName = "${VMNAME}.vmdk" scsi0:0.deviceType = "scsi-hardDisk" floppy0.present = "FALSE" EOT # Now register our new VM vnum=`vim-cmd solo/registervm /vmfs/volumes/ESXiVol/${VMNAME}/${VMNAME}.vmx` vim-cmd vmsvc/power.on $vnum # MAC cat /vmfs/volumes/ESXiVol/${VMNAME}/${VMNAME}.vmx | grep generatedAddress
新規作成(vm名称 メモリ HDD)
# /vmfs/volumes/ESXiVol/mkvm.sh taro 1024 15G
コピー作成(vm名称 メモリ HDD(無視される) コピー元)
# /vmfs/volumes/ESXiVol/mkvm.sh hanako 4096 30G CentOS6_Base