Skip to content

Commit 2eb8685

Browse files
committed
Adds ESXi nested VMX support
1 parent 8f7b7fd commit 2eb8685

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

create-esxi-vm.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ set -e
33

44
#TODO: use getops for command line parsing
55

6-
if [ $# -lt 13 ]; then
7-
echo "Usage: $0 <datastore> <guest_os> <vm_name> <resource_pool_name> <ram> <vcpus> <vcores> <vmdk_size> <vmdk_template_path> <iso_path> <vmware_tools_iso> <floppy_template_path> <boot_vm> (<port_group_name>)*"
6+
if [ $# -lt 14 ]; then
7+
echo "Usage: $0 <datastore> <guest_os> <vm_name> <resource_pool_name> <ram> <vcpus> <vcores> <vmdk_size> <vmdk_template_path> <iso_path> <vmware_tools_iso> <floppy_template_path> <nested_hypervisor_support> <boot_vm> (<port_group_name>)*"
88
exit 1
99
fi
1010

@@ -20,8 +20,9 @@ VMDK_TEMPLATE_PATH=$9
2020
ISO_PATH=$10
2121
VMWARE_TOOLS_ISO=$11
2222
FLOPPY_TEMPLATE_PATH=$12
23-
BOOT=$13
24-
FIRST_NETWORK_IDX=14
23+
NESTED_HYPERVISOR=$13
24+
BOOT=$14
25+
FIRST_NETWORK_IDX=15
2526

2627
VMDK_FILE_NAME=$VM_NAME.vmdk
2728
FLOPPY_FILE_NAME=floppy.flp
@@ -126,6 +127,14 @@ tools.syncTime = "FALSE"
126127
bios.bootOrder = "hdd,cdrom,floppy"
127128
EOF
128129

130+
if [ "$NESTED_HYPERVISOR" == "true" ]; then
131+
cat << EOF >> "$VMX_PATH"
132+
vcpu.hotadd = "FALSE"
133+
featMask.vm.hv.capable = "Min:1"
134+
vhv.enable = "TRUE"
135+
EOF
136+
fi
137+
129138
if [ -n "$LINKED_SNAPSHOT" ]; then
130139
cat << EOF >> "$VMX_PATH"
131140
snapshot.redoNotWithParent = "true"

create-vm-template.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ BASEDIR=$(dirname $0)
3232
$BASEDIR/delete-esxi-vm.sh "$VM_NAME" "$DATASTORE"
3333

3434
echo "Creating VM"
35-
$BASEDIR/create-esxi-vm.sh $DATASTORE $GUEST_OS "$VM_NAME" $POOL_NAME $RAM 2 2 $VMDK_SIZE - $ISO_PATH $VMWARE_TOOLS_ISO $FLOPPY_PATH true "$VM_NETWORK"
35+
$BASEDIR/create-esxi-vm.sh $DATASTORE $GUEST_OS "$VM_NAME" $POOL_NAME $RAM 2 2 $VMDK_SIZE - $ISO_PATH $VMWARE_TOOLS_ISO $FLOPPY_PATH false true "$VM_NETWORK"
3636

3737
# Set permission to ReadOnly for everybody except the current user
3838
$BASEDIR/set-esxi-vm-permission-all-users.sh "$VM_NAME" ReadOnly "$USER"

deploy-rdo-vms.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ $BASEDIR/delete-esxi-vm.sh "$NETWORK_VM_NAME" $DATASTORE
6969
$BASEDIR/delete-esxi-vm.sh "$QEMU_COMPUTE_VM_NAME" $DATASTORE
7070
$BASEDIR/delete-esxi-vm.sh "$HYPERV_COMPUTE_VM_NAME" $DATASTORE
7171

72-
$BASEDIR/create-esxi-vm.sh $DATASTORE $LINUX_GUEST_OS $CONTROLLER_VM_NAME $POOL_NAME 1024 2 2 11G $LINUX_TEMPLATE_VMDK - - - false "$MGMT_NETWORK"
73-
$BASEDIR/create-esxi-vm.sh $DATASTORE $LINUX_GUEST_OS $NETWORK_VM_NAME $POOL_NAME 1024 2 2 11G $LINUX_TEMPLATE_VMDK - - - false "$MGMT_NETWORK" "$DATA_NETWORK" "$EXT_NETWORK"
74-
$BASEDIR/create-esxi-vm.sh $DATASTORE $LINUX_GUEST_OS $QEMU_COMPUTE_VM_NAME $POOL_NAME 4096 2 2 30G $LINUX_TEMPLATE_VMDK - - - false "$MGMT_NETWORK" "$DATA_NETWORK"
75-
$BASEDIR/create-esxi-vm.sh $DATASTORE $HYPERV_GUEST_OS $HYPERV_COMPUTE_VM_NAME $POOL_NAME 4096 2 2 60G $HYPERV_TEMPLATE_VMDK - - - false "$MGMT_NETWORK" "$DATA_NETWORK"
72+
$BASEDIR/create-esxi-vm.sh $DATASTORE $LINUX_GUEST_OS $CONTROLLER_VM_NAME $POOL_NAME 1024 2 2 11G $LINUX_TEMPLATE_VMDK - - - false false "$MGMT_NETWORK"
73+
$BASEDIR/create-esxi-vm.sh $DATASTORE $LINUX_GUEST_OS $NETWORK_VM_NAME $POOL_NAME 1024 2 2 11G $LINUX_TEMPLATE_VMDK - - - false false "$MGMT_NETWORK" "$DATA_NETWORK" "$EXT_NETWORK"
74+
$BASEDIR/create-esxi-vm.sh $DATASTORE $LINUX_GUEST_OS $QEMU_COMPUTE_VM_NAME $POOL_NAME 4096 2 2 30G $LINUX_TEMPLATE_VMDK - - - true false "$MGMT_NETWORK" "$DATA_NETWORK"
75+
$BASEDIR/create-esxi-vm.sh $DATASTORE $HYPERV_GUEST_OS $HYPERV_COMPUTE_VM_NAME $POOL_NAME 4096 2 2 60G $HYPERV_TEMPLATE_VMDK - - - false false "$MGMT_NETWORK" "$DATA_NETWORK"
7676

7777
sleep 20
7878

test-linked-snapshot.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ VM_NAME2=centos_test5
99
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/delete-esxi-vm.sh "$VM_NAME2" $DATASTORE
1010
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/delete-esxi-vm.sh "$VM_NAME" $DATASTORE
1111

12-
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/create-esxi-vm.sh $DATASTORE rhel6-64 "$VM_NAME" $POOL_NAME 1024 2 2 - /vmfs/volumes/datastore1/centos-6.4-template/centos-6.4-template.vmdk - - - false "VM Network"
12+
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/create-esxi-vm.sh $DATASTORE rhel6-64 "$VM_NAME" $POOL_NAME 1024 2 2 - /vmfs/volumes/datastore1/centos-6.4-template/centos-6.4-template.vmdk - - - false false "VM Network"
1313
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/create-esxi-vm-snapshot.sh "$VM_NAME" template false
1414

15-
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/create-esxi-vm.sh $DATASTORE rhel6-64 "$VM_NAME2" $POOL_NAME 1024 2 2 - /vmfs/volumes/datastore1/$VM_NAME/$VM_NAME-000001.vmdk - - - false "VM Network"
15+
ssh [email protected] /vmfs/volumes/datastore1/unattended-scripts/create-esxi-vm.sh $DATASTORE rhel6-64 "$VM_NAME2" $POOL_NAME 1024 2 2 - /vmfs/volumes/datastore1/$VM_NAME/$VM_NAME-000001.vmdk - - - false false "VM Network"
1616
echo "Sleeping..."
1717
sleep 20
1818
echo "Powering on $VM_NAME2"

0 commit comments

Comments
 (0)