Skip to content

Commit 9d731c7

Browse files
committed
Refactoring to support custom datastore names
1 parent 4d80fb7 commit 9d731c7

File tree

54 files changed

+179
-119
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+179
-119
lines changed

create-all-templates.sh

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
set -e
3+
4+
if [ $# -ne 3 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> <scripts_datastore>"
6+
exit 1
7+
fi
8+
9+
ESXI_USER=$1
10+
ESXI_HOST=$2
11+
SCRIPTS_DATASTORE=$3
12+
13+
ESXI_SCRIPTS_DIR=/vmfs/volumes/$SCRIPTS_DATASTORE/unattended-scripts/templates
14+
15+
TEMPLATE_SCRIPTS[0]="create-hyperv-2012-r2-vm-template.sh"
16+
TEMPLATE_SCRIPTS[1]="create-hyperv-2012-vm-template.sh"
17+
TEMPLATE_SCRIPTS[2]="create-hyperv-2012-cn-vm-template.sh"
18+
TEMPLATE_SCRIPTS[3]="create-windows-8.1-enterprise-vm-template.sh"
19+
TEMPLATE_SCRIPTS[4]="create-centos-64-vm-template.sh"
20+
TEMPLATE_SCRIPTS[5]="create-centos-64-cloudinit-vm-template.sh"
21+
TEMPLATE_SCRIPTS[6]="create-ubuntu-1204-server-vm-template.sh"
22+
23+
24+
for TEMPLATE_SCRIPT in "${TEMPLATE_SCRIPTS[@]}"; do
25+
ssh $ESXI_USER@$ESXI_HOST "$ESXI_SCRIPTS_DIR/$TEMPLATE_SCRIPT" > /dev/null &
26+
done
27+
28+
wait
29+

create-centos-64-cloudinit-vm-template.sh

-8
This file was deleted.

create-centos-64-vm-template.sh

-8
This file was deleted.

create-hyperv-2012-cn-vm-template.sh

-9
This file was deleted.

create-hyperv-2012-r2-vm-template.sh

-8
This file was deleted.

create-hyperv-2012-vm-template.sh

-9
This file was deleted.

create-ubuntu-1204-server-vm-template.sh

-9
This file was deleted.

create-windows-8.1-enterprise-vm-template.sh

-8
This file was deleted.

deploy-devstack-example.sh

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
#!/bin/bash
22
set -e
33

4-
if [ $# -lt 2 ]; then
5-
echo "Usage: $0 <esxi_user> <esxi_host> [<use_linked_vmdks>]"
4+
if [ $# -lt 5 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> <scripts_datastore> <templates_datastore> <datastore> [<use_linked_vmdks>]"
66
exit 1
77
fi
88

99
ESXI_USER=$1
1010
ESXI_HOST=$2
11-
VMDK_OPTION=$3
11+
SCRIPTS_DATASTORE=$3
12+
TEMPLATES_DATASTORE=$4
13+
DATASTORE=$5
14+
VMDK_OPTION=$6
1215

1316
DEVSTACK_NAME=devstack-test-$RANDOM
1417

15-
DATASTORE=ssd1
1618
ESXI_PUBLIC_SWITCH=vSwitch0
1719
ESXI_PUBLIC_VMNIC=vmnic0
1820

19-
LINUX_TEMPLATE_VMDK=/vmfs/volumes/datastore1/ubuntu-12.04-server-template-40G/ubuntu-12.04-server-template-40G.vmdk
20-
HYPERV_TEMPLATE_VMDK=/vmfs/volumes/datastore1/hyperv-2012-r2-template-80G/hyperv-2012-r2-template-80G.vmdk
21+
LINUX_TEMPLATE_VMDK=/vmfs/volumes/$TEMPLATES_DATASTORE/ubuntu-12.04-server-template-100G/ubuntu-12.04-server-template-40G.vmdk
22+
HYPERV_TEMPLATE_VMDK=/vmfs/volumes/$TEMPLATES_DATASTORE/hyperv-2012-r2-template-100G/hyperv-2012-r2-template-80G.vmdk
2123

2224
if [ "$VMDK_OPTION" == "use_linked_vmdks" ]; then
2325
LINUX_TEMPLATE_VMDK=${LINUX_TEMPLATE_VMDK%%.vmdk}-000001.vmdk
@@ -28,5 +30,5 @@ BASEDIR=$(dirname $0)
2830

2931
echo "Deploying DevStack: $DEVSTACK_NAME"
3032

31-
$BASEDIR/deploy-devstack.sh $ESXI_USER $ESXI_HOST "$DATASTORE" "$DEVSTACK_NAME" "$ESXI_PUBLIC_SWITCH" $ESXI_PUBLIC_VMNIC "$LINUX_TEMPLATE_VMDK" "$HYPERV_TEMPLATE_VMDK"
33+
$BASEDIR/deploy-devstack.sh $ESXI_USER $ESXI_HOST "$SCRIPTS_DATASTORE" "$DATASTORE" "$DEVSTACK_NAME" "$ESXI_PUBLIC_SWITCH" $ESXI_PUBLIC_VMNIC "$LINUX_TEMPLATE_VMDK" "$HYPERV_TEMPLATE_VMDK"
3234

deploy-devstack.sh

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
#!/bin/bash
22
set -e
33

4-
if [ $# -ne 8 ]; then
5-
echo "Usage: $0 <esxi_user> <esxi_host> <datastore> <name> <esxi_public_switch> <esxi_public_vnic> <linux_template_vmdk> <hyperv_template_vmdk>"
4+
if [ $# -ne 9 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> <scripts_datastore> <datastore> <name> <esxi_public_switch> <esxi_public_vnic> <linux_template_vmdk> <hyperv_template_vmdk>"
66
exit 1
77
fi
88

99
ESXI_USER=$1
1010
ESXI_HOST=$2
11-
DATASTORE=$3
12-
DEVSTACK_NAME=$4
13-
ESXI_PUBLIC_SWITCH=$5
14-
ESXI_PUBLIC_VNIC=$6
15-
LINUX_TEMPLATE_VMDK=$7
16-
HYPERV_TEMPLATE_VMDK=$8
17-
18-
ESXI_BASEDIR=/vmfs/volumes/datastore1/unattended-scripts
11+
SCRIPTS_DATASTORE=$3
12+
DATASTORE=$4
13+
DEVSTACK_NAME=$5
14+
ESXI_PUBLIC_SWITCH=$6
15+
ESXI_PUBLIC_VNIC=$7
16+
LINUX_TEMPLATE_VMDK=$8
17+
HYPERV_TEMPLATE_VMDK=$9
18+
19+
ESXI_BASEDIR=/vmfs/volumes/$SCRIPTS_DATASTORE/unattended-scripts
1920
VM_IPS_FILE=`mktemp -u /tmp/devstack_ips.XXXXXX`
2021

2122
BASEDIR=$(dirname $0)

deploy-rdo-example.sh

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
11
#!/bin/bash
22
set -e
33

4-
if [ $# -lt 3 ]; then
5-
echo "Usage: $0 <esxi_user> <esxi_host> <openstack_release> [<use_linked_vmdks>]"
4+
if [ $# -lt 6 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> <scripts_datastore> <templates_datastore> <datastore> <openstack_release> [<use_linked_vmdks>]"
66
exit 1
77
fi
88

99
ESXI_USER=$1
1010
ESXI_HOST=$2
11-
OPENSTACK_RELEASE=$3
12-
VMDK_OPTION=$4
11+
SCRIPTS_DATASTORE=$3
12+
TEMPLATES_DATASTORE=$4
13+
DATASTORE=$5
14+
OPENSTACK_RELEASE=$6
15+
VMDK_OPTION=$7
1316

1417
RDO_NAME=rdo-test-$RANDOM
1518

16-
DATASTORE=ssd1
1719
ESXI_PUBLIC_SWITCH=vSwitch0
1820
ESXI_PUBLIC_VMNIC=vmnic0
1921

20-
LINUX_TEMPLATE_VMDK=/vmfs/volumes/datastore1/centos-6.4-template-40G/centos-6.4-template-40G.vmdk
22+
LINUX_TEMPLATE_VMDK=/vmfs/volumes/$TEMPLATES_DATASTORE/centos-6.4-template-100G/centos-6.4-template-40G.vmdk
2123

2224
if [ "$OPENSTACK_RELEASE" == "grizzly" ]; then
23-
HYPERV_TEMPLATE_VMDK=/vmfs/volumes/datastore1/hyperv-2012-template-80G/hyperv-2012-template-80G.vmdk
25+
HYPERV_TEMPLATE_VMDK=/vmfs/volumes/$TEMPLATES_DATASTORE/hyperv-2012-template-100G/hyperv-2012-template-80G.vmdk
2426
else
25-
HYPERV_TEMPLATE_VMDK=/vmfs/volumes/datastore1/hyperv-2012-r2-template-80G/hyperv-2012-r2-template-80G.vmdk
27+
HYPERV_TEMPLATE_VMDK=/vmfs/volumes/$TEMPLATES_DATASTORE/hyperv-2012-r2-template-100G/hyperv-2012-r2-template-80G.vmdk
2628
fi
2729

2830
if [ "$VMDK_OPTION" == "use_linked_vmdks" ]; then
@@ -34,5 +36,5 @@ BASEDIR=$(dirname $0)
3436

3537
echo "Deploying RDO: $RDO_NAME"
3638

37-
$BASEDIR/deploy-rdo.sh $ESXI_USER $ESXI_HOST "$DATASTORE" $OPENSTACK_RELEASE "$RDO_NAME" "$ESXI_PUBLIC_SWITCH" $ESXI_PUBLIC_VMNIC "$LINUX_TEMPLATE_VMDK" "$HYPERV_TEMPLATE_VMDK"
39+
$BASEDIR/deploy-rdo.sh $ESXI_USER $ESXI_HOST "$SCRIPTS_DATASTORE" "$DATASTORE" $OPENSTACK_RELEASE "$RDO_NAME" "$ESXI_PUBLIC_SWITCH" $ESXI_PUBLIC_VMNIC "$LINUX_TEMPLATE_VMDK" "$HYPERV_TEMPLATE_VMDK"
3840

deploy-rdo.sh

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
#!/bin/bash
22
set -e
33

4-
if [ $# -ne 9 ]; then
5-
echo "Usage: $0 <esxi_user> <esxi_host> <datastore> <openstack_release> <rdo_name> <esxi_public_switch> <esxi_public_vnic> <linux_template_vmdk> <hyperv_template_vmdk>"
4+
if [ $# -ne 10 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> <scripts_datastore> <datastore> <openstack_release> <rdo_name> <esxi_public_switch> <esxi_public_vnic> <linux_template_vmdk> <hyperv_template_vmdk>"
66
exit 1
77
fi
88

99
ESXI_USER=$1
1010
ESXI_HOST=$2
11-
DATASTORE=$3
12-
OPENSTACK_RELEASE=$4
13-
RDO_NAME=$5
14-
ESXI_PUBLIC_SWITCH=$6
15-
ESXI_PUBLIC_VNIC=$7
16-
LINUX_TEMPLATE_VMDK=$8
17-
HYPERV_TEMPLATE_VMDK=$9
11+
SCRIPTS_DATASTORE=$3
12+
DATASTORE=$4
13+
OPENSTACK_RELEASE=$5
14+
RDO_NAME=$6
15+
ESXI_PUBLIC_SWITCH=$7
16+
ESXI_PUBLIC_VNIC=$8
17+
LINUX_TEMPLATE_VMDK=$9
18+
HYPERV_TEMPLATE_VMDK=${10}
1819

1920
BASEDIR=$(dirname $0)
2021

@@ -29,7 +30,7 @@ grizzly|havana)
2930
;;
3031
esac
3132

32-
ESXI_BASEDIR=/vmfs/volumes/datastore1/unattended-scripts
33+
ESXI_BASEDIR=/vmfs/volumes/$SCRIPTS_DATASTORE/unattended-scripts
3334
RDO_VM_IPS_FILE=`mktemp -u /tmp/rdo_ips.XXXXXX`
3435

3536
ssh $ESXI_USER@$ESXI_HOST $ESXI_BASEDIR/deploy-rdo-esxi-vms.sh $DATASTORE $RDO_NAME $ESXI_PUBLIC_SWITCH $ESXI_PUBLIC_VNIC "$LINUX_TEMPLATE_VMDK" "$HYPERV_TEMPLATE_VMDK" $RDO_VM_IPS_FILE

deploy-template.sh

+8-7
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@
22
set -e
33

44
if [ $# -lt 3 ]; then
5-
echo "Usage: $0 <esxi_user> <esxi_host> <template> [<resource_pool_name>] [<datastore>] [<vm_name>] [<ram>] [<network>]"
5+
echo "Usage: $0 <esxi_user> <esxi_host> <template> [<scripts_datastore>] [<resource_pool_name>] [<datastore>] [<vm_name>] [<ram>] [<network>]"
66
exit 1
77
fi
88

99
ESXI_USER=$1
1010
ESXI_HOST=$2
1111
TEMPLATE_NAME=$3
12-
POOL_NAME=${4:-$ESXI_USER}
13-
DATASTORE=${5:-datastore1}
14-
VM_NAME=${6:-$TEMPLATE_NAME-$RANDOM}
15-
RAM=${7:-1024}
16-
NETWORK=${8:-"VM Network"}
12+
SCRIPTS_DATASTORE=${4:-ssd1}
13+
POOL_NAME=${5:-$ESXI_USER}
14+
DATASTORE=${6:-ssd1}
15+
VM_NAME=${7:-$TEMPLATE_NAME-$RANDOM}
16+
RAM=${8:-1024}
17+
NETWORK=${9:-"VM Network"}
1718

1819
TEMPLATE_DATASTORE=ssd1
1920

2021
NET_ADAPTER_TYPE=vmxnet3
2122

22-
ESXI_BASEDIR=/vmfs/volumes/datastore1/unattended-scripts
23+
ESXI_BASEDIR=/vmfs/volumes/ssd1/unattended-scripts
2324
TEMPLATE_BASEDIR=/vmfs/volumes/$TEMPLATE_DATASTORE/$TEMPLATE_NAME
2425

2526
TEMPLATE_VMX_FILE=$TEMPLATE_BASEDIR/$TEMPLATE_NAME.vmx
File renamed without changes.

esxi-install.sh

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
#!/bin/bash
22
set -e
33

4-
if [ $# -ne 2 ]; then
5-
echo "Usage: $0 <esxi_user> <esxi_host>"
4+
if [ $# -ne 3 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> <datastore>"
66
exit 1
77
fi
88

99
ESXI_USER=$1
1010
ESXI_HOST=$2
11+
DATASTORE=$3
1112

12-
ESXI_BASEDIR=/vmfs/volumes/datastore1/unattended-scripts
13+
ESXI_BASEDIR=/vmfs/volumes/$DATASTORE/unattended-scripts
1314

1415
BASEDIR=$(dirname $0)
1516

16-
ssh $ESXI_USER@$ESXI_HOST "mkdir -p $ESXI_BASEDIR"
17-
scp $BASEDIR/* $ESXI_USER@$ESXI_HOST:$ESXI_BASEDIR/
17+
ssh $ESXI_USER@$ESXI_HOST "if [ -d $ESXI_BASEDIR ]; then rm -rf $ESXI_BASEDIR; fi && mkdir -p $ESXI_BASEDIR"
18+
scp -r $BASEDIR/esxi/* $ESXI_USER@$ESXI_HOST:$ESXI_BASEDIR/
1819

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

delete-rdo.sh esxi/delete-rdo.sh

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

esxi/templates/config

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
TEMPLATES_DATASTORE=ssd1
2+
ISO_DATASTORE=datastore2
3+
ISO_DIR=iso
4+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
set -e
3+
4+
BASEDIR=$(dirname $0)
5+
source $BASEDIR/config
6+
FLOPPY_IMAGE_PATH=$BASEDIR/ks_cloudinit.flp
7+
ISO_PATH=/vmfs/volumes/$ISO_DATASTORE/$ISO_DIR/CentOS-6.4-x86_64-bin-DVD1-ks.iso
8+
SIZE=10G
9+
10+
$BASEDIR/create-vm-template.sh $TEMPLATES_DATASTORE rhel6-64 centos-6.4-cloudinit-template-$SIZE 1024 $SIZE "$ISO_PATH" linux "$FLOPPY_IMAGE_PATH" "VM Network" true true
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
set -e
3+
4+
BASEDIR=$(dirname $0)
5+
source $BASEDIR/config
6+
FLOPPY_IMAGE_PATH=$BASEDIR/ks.flp
7+
ISO_PATH=/vmfs/volumes/$ISO_DATASTORE/$ISO_DIR/CentOS-6.4-x86_64-bin-DVD1-ks.iso
8+
SIZE=100G
9+
10+
$BASEDIR/create-vm-template.sh $TEMPLATES_DATASTORE rhel6-64 centos-6.4-template-$SIZE 1024 $SIZE "$ISO_PATH" linux "$FLOPPY_IMAGE_PATH" "VM Network" true true
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
set -e
3+
4+
BASEDIR=$(dirname $0)
5+
source $BASEDIR/config
6+
FLOPPY_IMAGE_PATH=$BASEDIR/unattend_hyperv_2012_cloudbaseinit.flp
7+
ISO_PATH=/vmfs/volumes/$ISO_DATASTORE/$ISO_DIR/cn_microsoft_hyper-v_server_2012_x64_dvd_915786.iso
8+
SIZE=100G
9+
10+
$BASEDIR/create-vm-template.sh $TEMPLATES_DATASTORE winhyperv hyperv-2012-cn-template-$SIZE 2048 $SIZE "$ISO_PATH" windows "$FLOPPY_IMAGE_PATH" "VM Network" true true
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
set -e
3+
4+
BASEDIR=$(dirname $0)
5+
source $BASEDIR/config
6+
FLOPPY_IMAGE_PATH=$BASEDIR/unattend_hyperv_2012_r2_cloudbaseinit.flp
7+
ISO_PATH=/vmfs/volumes/$ISO_DATASTORE/$ISO_DIR/en_microsoft_hyper-v_server_2012_r2_x64_dvd_2708236.iso
8+
SIZE=100G
9+
10+
$BASEDIR/create-vm-template.sh $TEMPLATES_DATASTORE winhyperv hyperv-2012-r2-template-$SIZE 2048 $SIZE "$ISO_PATH" windows "$FLOPPY_IMAGE_PATH" "VM Network" true true
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
set -e
3+
4+
BASEDIR=$(dirname $0)
5+
source $BASEDIR/config
6+
FLOPPY_IMAGE_PATH=$BASEDIR/unattend_hyperv_2012_cloudbaseinit.flp
7+
ISO_PATH=/vmfs/volumes/$ISO_DATASTORE/$ISO_DIR/en_microsoft_hyper-v_server_2012_x64_dvd_915600.iso
8+
SIZE=100G
9+
10+
$BASEDIR/create-vm-template.sh $TEMPLATES_DATASTORE winhyperv hyperv-2012-template-$SIZE 2048 $SIZE "$ISO_PATH" windows "$FLOPPY_IMAGE_PATH" "VM Network" true true
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
set -e
3+
4+
BASEDIR=$(dirname $0)
5+
source $BASEDIR/config
6+
FLOPPY_IMAGE_PATH=$BASEDIR/preseed.flp
7+
ISO_PATH=/vmfs/volumes/$ISO_DATASTORE/$ISO_DIR/ubuntu-12.04.3-server-amd64-preseed.iso
8+
SIZE=100G
9+
10+
$BASEDIR/create-vm-template.sh $TEMPLATES_DATASTORE ubuntu-64 ubuntu-12.04-server-template-$SIZE 1024 $SIZE "$ISO_PATH" linux "$FLOPPY_IMAGE_PATH" "VM Network" true true
11+

0 commit comments

Comments
 (0)