#!/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 BUILD_SCRIPTS_PATH=$1 IMG_NAME=$2 SRC_ROOT=$3 GENERATED_DATA_PATH=$4 PHOTON_ISO_PATH=$5 PHOTON_STAGE_PATH=${PHOTON_ISO_PATH%/*} ADDITIONAL_RPMS_PATH=$6 WORKING_DIR=$PHOTON_STAGE_PATH/$IMG_NAME PHOTON_IMG_OUTPUT_PATH=$PHOTON_STAGE_PATH/$IMG_NAME 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 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 rm -rf $WORKING_DIR mkdir -p $WORKING_DIR/installer cp -R $SRC_ROOT/installer $WORKING_DIR/ cd $WORKING_DIR/installer cp $VMDK_CONFIG_FILE $VMDK_CONFIG_SAFE_FILE cp ${BUILD_SCRIPTS_PATH}/mk-setup-vmdk.sh . cp ${BUILD_SCRIPTS_PATH}/mk-clean-vmdk.sh . if [[ $IMG_NAME == ova* ]] then command -v ovftool >/dev/null 2>&1 || { echo "Ovftool not installed. Aborting." >&2; exit 1; } fi if [ -e ${BUILD_SCRIPTS_PATH}/${IMG_NAME}/mk-setup-grub.sh ] then cp ${BUILD_SCRIPTS_PATH}/${IMG_NAME}/mk-setup-grub.sh . fi PASSWORD=`date | md5sum | cut -f 1 -d ' '` sed -i "s/PASSWORD/$PASSWORD/" $VMDK_CONFIG_SAFE_FILE if [ -n "$ADDITIONAL_RPMS_PATH" ] then mkdir $PHOTON_STAGE_PATH/RPMS/additional cp -f $ADDITIONAL_RPMS_PATH/* $PHOTON_STAGE_PATH/RPMS/additional/ fi ./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 cat $VMDK_CONFIG_SAFE_FILE rm $VMDK_CONFIG_SAFE_FILE cd $BUILD_SCRIPTS_PATH ./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 exit 0