624d1cc2 |
#!/bin/bash
#################################################
# Title: cloud-image-build.sh #
# Date: 2015-07-22 #
# Version: 1.0 #
# Author: anishs@vmware.com #
#################################################
# Overview
# Create cloud images
# End
#
set -x |
c20a93b2 |
BUILD_SCRIPTS_PATH=$1
IMG_NAME=$2
SRC_ROOT=$3
GENERATED_DATA_PATH=$4 |
23cb2070 |
PHOTON_ISO_PATH=$5
PHOTON_STAGE_PATH=${PHOTON_ISO_PATH%/*} |
c20a93b2 |
ADDITIONAL_RPMS_PATH=$6 |
8ff5c437 |
WORKING_DIR=$PHOTON_STAGE_PATH/$IMG_NAME |
624d1cc2 |
PHOTON_IMG_OUTPUT_PATH=$PHOTON_STAGE_PATH/$IMG_NAME |
c20a93b2 |
VMDK_CONFIG_FILE=${BUILD_SCRIPTS_PATH}/$IMG_NAME/vmdk_$IMG_NAME.json
VMDK_CONFIG_SAFE_FILE=${BUILD_SCRIPTS_PATH}/$IMG_NAME/vmdk_safe_$IMG_NAME.json |
624d1cc2 |
|
e8c90151 |
cd $BUILD_SCRIPTS_PATH
image_list=`for i in $(ls -d */); do echo ${i%%/}; done`
if ! [[ $image_list =~ (^|[[:space:]])$IMG_NAME($|[[:space:]]) ]]
then
echo "Input image name not supported. Aborting."; exit 1;
fi
|
8ff5c437 |
rm -rf $WORKING_DIR
mkdir -p $WORKING_DIR/installer
cp -R $SRC_ROOT/installer $WORKING_DIR/ |
624d1cc2 |
|
8ff5c437 |
cd $WORKING_DIR/installer |
624d1cc2 |
cp $VMDK_CONFIG_FILE $VMDK_CONFIG_SAFE_FILE |
c20a93b2 |
cp ${BUILD_SCRIPTS_PATH}/mk-setup-vmdk.sh .
cp ${BUILD_SCRIPTS_PATH}/mk-clean-vmdk.sh . |
239730f8 |
|
8ff5c437 |
if [[ $IMG_NAME == ova* ]]
then
command -v ovftool >/dev/null 2>&1 || { echo "Ovftool not installed. Aborting." >&2; exit 1; }
fi |
624d1cc2 |
|
c20a93b2 |
if [ -e ${BUILD_SCRIPTS_PATH}/${IMG_NAME}/mk-setup-grub.sh ] |
624d1cc2 |
then |
c20a93b2 |
cp ${BUILD_SCRIPTS_PATH}/${IMG_NAME}/mk-setup-grub.sh . |
624d1cc2 |
fi
|
c20a93b2 |
PASSWORD=`date | md5sum | cut -f 1 -d ' '`
sed -i "s/PASSWORD/$PASSWORD/" $VMDK_CONFIG_SAFE_FILE |
624d1cc2 |
|
c20a93b2 |
if [ -n "$ADDITIONAL_RPMS_PATH" ] |
624d1cc2 |
then |
8ff5c437 |
mkdir $PHOTON_STAGE_PATH/RPMS/additional
cp -f $ADDITIONAL_RPMS_PATH/* $PHOTON_STAGE_PATH/RPMS/additional/ |
624d1cc2 |
fi
|
b944098f |
./photonInstaller.py -p $GENERATED_DATA_PATH/build_install_options_$IMG_NAME.json -r $PHOTON_STAGE_PATH/RPMS -v $WORKING_DIR/photon-${IMG_NAME} -o $GENERATED_DATA_PATH -d $PHOTON_STAGE_PATH/pkg_info.json -f $VMDK_CONFIG_SAFE_FILE |
7e59b7e3 |
cat $VMDK_CONFIG_SAFE_FILE |
624d1cc2 |
rm $VMDK_CONFIG_SAFE_FILE
|
c20a93b2 |
cd $BUILD_SCRIPTS_PATH |
624d1cc2 |
|
8ff5c437 |
./customize_cloud_image.py \
-r ${PHOTON_IMG_OUTPUT_PATH}/photon-${IMG_NAME}.raw \
-c $VMDK_CONFIG_FILE \
-w $WORKING_DIR \
-m $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME} \
-a $PHOTON_STAGE_PATH/RPMS/additional \
-i $IMG_NAME \
-t $SRC_ROOT/tools/bin/ \
-b $BUILD_SCRIPTS_PATH
rm -rf $WORKING_DIR/installer |
5462e062 |
exit 0 |