Merge "Support CentOS previous release in subcloud remote install"
This commit is contained in:
commit
c585c1dd71
|
@ -178,12 +178,13 @@ if [ -n "${BACKUP_DEVICE}" ] && [ -e "${BACKUP_DEVICE}" ]; then
|
|||
wlog "${KS} ${BACKUP_MOUNT} not mounted"
|
||||
fi
|
||||
else
|
||||
wlog "${KS} mount of ${BACKUP_DEVICE} to ${BACKUP_MOUNT} failed rc:$rc"
|
||||
wlog "${KS} mount of '${BACKUP_DEVICE}' to ${BACKUP_MOUNT} failed rc:$rc"
|
||||
fi
|
||||
else
|
||||
wlog "${KS} backup device ${BACKUP_DEVICE} does not exist"
|
||||
wlog "${KS} backup device '${BACKUP_DEVICE}' does not exist"
|
||||
fi
|
||||
|
||||
wlog "${KS} iso_check: ${iso_check} iso_mount: ${iso_mount}"
|
||||
if [ "${iso_check}" = true -a "${iso_mount}" = true ] ; then
|
||||
wlog "${KS} Local Install ready"
|
||||
elif [ "${iso_mount}" = false ] ; then
|
||||
|
@ -192,7 +193,7 @@ fi
|
|||
|
||||
# Make sure the prestage directory exists, as well as the required subdirectories.
|
||||
exists_prestage=false
|
||||
ilog "${KS} Checking prestaged content PRESTAGE_DIR: ${PRESTAGE_DIR}"
|
||||
wlog "${KS} Checking prestaged content PRESTAGE_DIR: ${PRESTAGE_DIR}"
|
||||
if [ ! -e ${PRESTAGE_DIR} ] || [ ! -e ${PRESTAGE_DIR}/Packages ] || [ ! -e ${PRESTAGE_DIR}/repodata ]; then
|
||||
exists_prestage=false
|
||||
wlog "${KS} Prestaged content not present"
|
||||
|
@ -229,15 +230,15 @@ fi
|
|||
# If this fails, they are fetched from the System Controller - Remote Install
|
||||
#
|
||||
if [ "${exists_prestage}" = true ]; then
|
||||
wlog "${KS} Prestage directory found: ${PRESTAGE_DIR}"
|
||||
wlog "${KS} Prestage directory found: ${PRESTAGE_DIR}. Proceeding with prestaged install."
|
||||
cat << EOF > /tmp/repo-include
|
||||
repo --name=local-base --cost=100 --baseurl=file://${PRESTAGE_DIR}/
|
||||
repo --name=local-updates --cost=100 --baseurl=file://${PRESTAGE_DIR}/patches/
|
||||
repo --name=remote-base --cost=200 --baseurl=xxxHTTP_URLxxx/
|
||||
repo --name=remote-updates --cost=200 --baseurl=xxxHTTP_URLxxx/patches/
|
||||
EOF
|
||||
elif [ "${iso_check}" = true -a "${iso_mount}" = true ] ; then
|
||||
wlog "${KS} Packages will be retrieved from prestage iso"
|
||||
elif [ "${iso_check}" = true ] && [ "${iso_mount}" = true ] ; then
|
||||
wlog "${KS} Packages will be retrieved from prestage ISO. Proceeding with local (ISO) install."
|
||||
cat << EOF > /tmp/repo-include
|
||||
repo --name=local-base --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/
|
||||
repo --name=local-updates --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/patches/
|
||||
|
@ -246,7 +247,7 @@ elif [ "${iso_check}" = true -a "${iso_mount}" = true ] ; then
|
|||
EOF
|
||||
else
|
||||
# Mirror remote software repositories
|
||||
wlog "${KS} Staging Repo"
|
||||
wlog "${KS} Staging Repo via ${feed_url}"
|
||||
|
||||
# Check for inst.noverifyssl
|
||||
if grep -q inst.noverifyssl /proc/cmdline; then
|
||||
|
@ -317,6 +318,7 @@ else
|
|||
repo --name=remote-updates --cost=200 --baseurl=xxxHTTP_URLxxx/patches/
|
||||
EOF
|
||||
fi
|
||||
wlog "Using repo config:\n$(cat /tmp/repo-include)"
|
||||
%end
|
||||
|
||||
# Repository arguments from %pre
|
||||
|
|
|
@ -15,11 +15,11 @@ KS="Prestaging post:"
|
|||
# much in-service controller function setup stuff.
|
||||
#
|
||||
# Therefore, it is added here to ensure that if the prestaging
|
||||
# ISO's pre_disk_aio.cfg 'created' the 'Platform Backup'
|
||||
# ISO's pre_disk_aio.cfg 'created' the 'Platform Backup/platform_backup'
|
||||
# partition then it will get labeled for prestaging group.
|
||||
#
|
||||
# This prestaging kickstart file uses the 'label' to find the
|
||||
# 'Platform Backup' partition for its prestaging function.
|
||||
# This prestaging kickstart file uses the GUID to find the
|
||||
# platform backup partition for its prestaging function.
|
||||
#
|
||||
change_guid=/tmp/backup-guid-change.sh
|
||||
if [ -f "$change_guid" ]; then
|
||||
|
@ -50,8 +50,8 @@ wlog "${KS} install source : $SOURCE_DIR"
|
|||
|
||||
export SW_VERSION=xxxPLATFORM_RELEASExxx
|
||||
export STAGING_DIR="platform-backup"
|
||||
export PRESTAGING_PART_LABEL=Platform\\x20Backup
|
||||
export PRESTAGING_DEVICE=/dev/disk/by-partlabel/${PRESTAGING_PART_LABEL}
|
||||
export BACKUP_PART_GUID="BA5EBA11-0000-1111-2222-000000000002"
|
||||
export BACKUP_DEVICE=
|
||||
export PRESTAGING_REPO_DIR="${SOURCE_DIR}/opt/${STAGING_DIR}"
|
||||
export PRESTAGING_LOCAL_DIR="/mnt/${STAGING_DIR}"
|
||||
|
||||
|
@ -75,59 +75,54 @@ elif [ ! -d "${PRESTAGING_REPO_DIR}/${SW_VERSION}" ] ; then
|
|||
report_prestaging_failure_with_msg "${msg}"
|
||||
fi
|
||||
|
||||
# Poll for the Platform Backup partition label.
|
||||
# TODO: Turn this into a function.
|
||||
found=false
|
||||
# Poll for the platform backup GUID
|
||||
for i in {1..6} ; do
|
||||
|
||||
files=$(ls /dev/disk/by-partlabel)
|
||||
for file in $files ; do
|
||||
if [ "$file" == "Platform\x20Backup" ] ; then
|
||||
if [ ${i} -gt 1 ] ; then
|
||||
wlog "${KS} prestaging partition label found in ${i} audit"
|
||||
fi
|
||||
found=true
|
||||
# Search for a backup partition, using GUID (which appears lower case in the blkid output):
|
||||
while read -r device_path; do
|
||||
if [ "$(blkid -p "${device_path}" | grep -c -i "${BACKUP_PART_GUID}")" -gt 0 ]; then
|
||||
BACKUP_DEVICE=${device_path}
|
||||
wlog "Found backup device: ${BACKUP_DEVICE}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
done <<<"$(lsblk --noheadings --list --path --output NAME)"
|
||||
|
||||
if [ "$found" = true ] ; then
|
||||
if [ -n "${BACKUP_DEVICE}" ] ; then
|
||||
break
|
||||
else
|
||||
wlog "${KS} searching for 'Platform\x20Backup' label ${i}"
|
||||
wlog "${KS} searching for backup partition ${BACKUP_PART_GUID} GUID [${i}/6]"
|
||||
sleep 10
|
||||
fi
|
||||
done
|
||||
|
||||
# if the label is not visable yet then we will see it in a mount failure
|
||||
if [ ! -d "${PRESTAGING_LOCAL_DIR}" ] ; then
|
||||
wlog "${KS} mounting ${PRESTAGING_LOCAL_DIR}"
|
||||
mkdir -p ${PRESTAGING_LOCAL_DIR}
|
||||
mount ${PRESTAGING_DEVICE} ${PRESTAGING_LOCAL_DIR}
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ] ; then
|
||||
sleep 2
|
||||
if [ ! -d "${PRESTAGING_LOCAL_DIR}" ] ; then
|
||||
wlog "${KS} mount of staging '${PRESTAGING_LOCAL_DIR}' does not exist"
|
||||
error=true
|
||||
else
|
||||
error=false
|
||||
fi
|
||||
else
|
||||
wlog "${KS} mount of '${PRESTAGING_DEVICE}' to '${PRESTAGING_LOCAL_DIR}' failed rc:${rc}"
|
||||
error=true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$error" = true ] ; then
|
||||
msg="Unable to mount ${PRESTAGING_LOCAL_DIR}"
|
||||
if [ -z "${BACKUP_DEVICE}" ]; then
|
||||
msg="Could not find backup device from GUID ${BACKUP_PART_GUID}"
|
||||
wlog "${KS} Prestaging failed: ${msg}"
|
||||
report_prestaging_failure_with_msg "${msg}"
|
||||
fi
|
||||
|
||||
errmsg=
|
||||
if [ ! -d "${PRESTAGING_LOCAL_DIR}" ] ; then
|
||||
wlog "${KS} mounting ${PRESTAGING_LOCAL_DIR}"
|
||||
mkdir -p "${PRESTAGING_LOCAL_DIR}"
|
||||
mount "${BACKUP_DEVICE}" "${PRESTAGING_LOCAL_DIR}"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ] ; then
|
||||
sleep 2
|
||||
if [ ! -d "${PRESTAGING_LOCAL_DIR}" ] ; then
|
||||
errmsg="${KS} mount of staging '${PRESTAGING_LOCAL_DIR}' does not exist"
|
||||
fi
|
||||
else
|
||||
errmsg="${KS} mount of '${BACKUP_DEVICE}' to '${PRESTAGING_LOCAL_DIR}' failed rc:${rc}"
|
||||
fi
|
||||
fi
|
||||
if [ -n "$errmsg" ] ; then
|
||||
wlog "${KS} Prestaging failed: ${errmsg}"
|
||||
report_prestaging_failure_with_msg "${errmsg}"
|
||||
fi
|
||||
|
||||
# nuke local prestaging dir - cleanup operation
|
||||
if [ -d ${PRESTAGING_LOCAL_DIR}/${SW_VERSION} ] ; then
|
||||
wlog "${KS} wiping prestaging dir '${PRESTAGING_LOCAL_DIR}/${SW_VERSION}'"
|
||||
wlog "${KS} cleanup; wiping existing prestaging dir '${PRESTAGING_LOCAL_DIR}/${SW_VERSION}'"
|
||||
rm -rf ${PRESTAGING_LOCAL_DIR}/${SW_VERSION}
|
||||
fi
|
||||
|
||||
|
@ -138,8 +133,14 @@ mkdir ${PRESTAGING_LOCAL_DIR}/${SW_VERSION}
|
|||
cd ${PRESTAGING_LOCAL_DIR}/${SW_VERSION}
|
||||
|
||||
# copy repo prestaging files to the local mount
|
||||
wlog "${KS} copy prestaging files"
|
||||
cp -a ${PRESTAGING_REPO_DIR}/${SW_VERSION} ${PRESTAGING_LOCAL_DIR}
|
||||
wlog "${KS} copy prestaging files: from '${PRESTAGING_REPO_DIR}/${SW_VERSION}' to '${PRESTAGING_LOCAL_DIR}'"
|
||||
cp -a "${PRESTAGING_REPO_DIR}/${SW_VERSION}" "${PRESTAGING_LOCAL_DIR}/"
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ] ; then
|
||||
msg="copy failed from '${PRESTAGING_REPO_DIR}/${SW_VERSION}' to '${PRESTAGING_LOCAL_DIR}/', rc=${rc}"
|
||||
wlog "${KS} Prestaging Failed: ${msg}"
|
||||
report_prestaging_failure_with_msg "${msg}"
|
||||
fi
|
||||
wlog "${KS} prestaging files copy done"
|
||||
|
||||
# loop over all the prestaged files
|
||||
|
|
|
@ -258,6 +258,7 @@ do
|
|||
# GPT partitions, they save partition info at the start and the end of the block.
|
||||
# Do this for each partition on the disk, as well.
|
||||
part_numbers=( $(parted -s $dev print | awk '$1 == "Number" {i=1; next}; i {print $1}') )
|
||||
wlog "WIPE_HDD: checking dev: $dev, part_numbers: $part_numbers, rootfs_device: $rootfs_device, boot_device: $boot_device"
|
||||
for part_number in "${part_numbers[@]}"; do
|
||||
part=$dev$part_number
|
||||
case $part in
|
||||
|
@ -267,13 +268,16 @@ do
|
|||
esac
|
||||
sgdisk_part_info=$(sgdisk -i $part_number $dev)
|
||||
part_type_guid=$(echo "$sgdisk_part_info" | grep "$part_type_guid_str" | awk '{print $4;}')
|
||||
if [ "$dev" == "$rootfs_device" ]; then
|
||||
if [ "$dev" = "$rootfs_device" ] || [ "$dev" = "$boot_device" ]; then
|
||||
wlog "Checking for backup partition: $part"
|
||||
part_fstype=$(exec_retry 5 0.5 "blkid -s TYPE -o value $part")
|
||||
if [ "$part_type_guid" == $BACKUP_PART_GUID -a "${part_fstype}" == "ext4" ]; then
|
||||
if [ "$part_type_guid" = "$BACKUP_PART_GUID" ] && [ "${part_fstype}" = "ext4" ]; then
|
||||
wlog "Skipping wipe backup partition $part"
|
||||
BACKUP_CREATED=1
|
||||
continue
|
||||
fi
|
||||
else
|
||||
wlog "Skipping part:$part_number $dev GUID: $part_type_guid"
|
||||
fi
|
||||
fi
|
||||
wlog "Wiping partition $part"
|
||||
if [[ $WIPE_CEPH_OSDS == "true" && ( "$part_type_guid" == $CEPH_REGULAR_JOURNAL_GUID || "$part_type_guid" == $CEPH_MPATH_JOURNAL_GUID ) ]]; then
|
||||
|
|
|
@ -82,17 +82,17 @@ fi
|
|||
# it tries to reconfigure the partition in a later step. We delete the partition now so that
|
||||
# parted succeeds in the later step.
|
||||
|
||||
partition_id=$(parted -s ${rootfs_device} print | awk '/Platform Backup/ { print $1; }')
|
||||
# The backup partition may be labeled 'Platform Backup' (centos) or 'platform_backup' (debian)
|
||||
partition_id=$(parted -s ${rootfs_device} print | awk '/(Platform Backup|platform_backup)/ { print $1; }')
|
||||
|
||||
# if the partition id is not empty or zero, then the partition actually exists.
|
||||
# If the partition id is not empty or zero, then the partition actually exists.
|
||||
# Delete the partition.
|
||||
if [[ "${partition_id}" -ne '' && "${partition_id}" -ne "0" ]]; then
|
||||
if [ -n "${partition_id}" ] && [ "${partition_id}" -ne 0 ]; then
|
||||
wlog "Deleting platform backup at partition ${partition_id} on ${rootfs_device}"
|
||||
|
||||
# Delete the platform backup partition
|
||||
parted -s ${rootfs_device} rm ${partition_id}
|
||||
rc=$?
|
||||
|
||||
if [ "${rc}" -ne "0" ]; then
|
||||
wlog "Unable to delete platform backup at partition ${partition_id} on ${rootfs_device}: [exit code ${rc}]"
|
||||
exit -1
|
||||
|
|
|
@ -14,6 +14,11 @@ override_dh_auto_configure:
|
|||
|
||||
override_dh_install:
|
||||
install -d -m 755 $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart
|
||||
install -d -m 755 $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart/centos
|
||||
install -p -D -m 700 kickstart.cfg $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart
|
||||
install -p -D -m 700 miniboot.cfg $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart
|
||||
install -p -D -m 700 centos/miniboot_controller_ks.cfg $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart/centos
|
||||
install -p -D -m 700 centos/miniboot_smallsystem_ks.cfg $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart/centos
|
||||
install -p -D -m 700 centos/miniboot_smallsystem_lowlatency_ks.cfg $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart/centos
|
||||
install -p -D -m 700 centos/prestaged_installer_ks.cfg $(ROOT)/var/www/pages/feed/rel-${platform_release}/kickstart/centos
|
||||
dh_install
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue