Add prep.sh to the repo and fix the stage3 name for the stage4 specs.
Signed-off-by: Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto@gentoo.org>
This commit is contained in:
parent
074fb3276a
commit
6e2cef0da1
5 changed files with 83 additions and 4 deletions
79
releases/weekly/scripts/prep.sh
Normal file
79
releases/weekly/scripts/prep.sh
Normal file
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Okay, so here's some real meat. We take a drive (as 02 said, I use a VM),
|
||||
# and we spray that stage4 all over it. Then we rub some grub (0.97) all over
|
||||
# it to make it feel better, and then we box it up and ship it out.
|
||||
|
||||
set -e -u -x -o pipefail
|
||||
|
||||
# Vars
|
||||
export TEMP_DIR=${TEMP_DIR:-'/root/tmp/catalyst/gentoo'}
|
||||
export MOUNT_DIR=${MOUNT_DIR:-'/mnt'}
|
||||
export DATE=${DATE:-"$(date +%Y%m%d)"}
|
||||
export PORTAGE_DIR=${PORTAGE_DIR:-"/var/tmp/catalyst/snapshots"}
|
||||
# profiles supported are as follows
|
||||
# default/linux/amd64/13.0
|
||||
# default/linux/amd64/13.0/no-multilib
|
||||
# hardened/linux/amd64
|
||||
# hardened/linux/amd64/no-multilib
|
||||
# hardened/linux/amd64/selinux (eventually)
|
||||
# hardened/linux/amd64/no-multilib/selinux (eventually)
|
||||
export PROFILE=${PROFILE:-"default/linux/amd64/13.0"}
|
||||
if [[ "${PROFILE}" == "default/linux/amd64/13.0" ]]; then
|
||||
PROFILE_SHORTNAME="amd64-default"
|
||||
elif [[ "${PROFILE}" == "default/linux/amd64/13.0/no-multilib" ]]; then
|
||||
PROFILE_SHORTNAME="amd64-default-nomultilib"
|
||||
elif [[ "${PROFILE}" == "hardened/linux/amd64" ]]; then
|
||||
PROFILE_SHORTNAME="amd64-hardened"
|
||||
elif [[ "${PROFILE}" == "hardened/linux/amd64/no-multilib" ]]; then
|
||||
PROFILE_SHORTNAME="amd64-hardened-nomultilib"
|
||||
else
|
||||
echo 'invalid profile, exiting'
|
||||
exit 1
|
||||
fi
|
||||
export TARBALL=${TARBALL:-"/root/tmp/catalyst/gentoo/stage4-${PROFILE_SHORTNAME}-${DATE}.tar.bz2"}
|
||||
export TEMP_IMAGE=${TEMP_IMAGE:-"gentoo-${PROFILE_SHORTNAME}.img"}
|
||||
export TARGET_IMAGE=${TARGET_IMAGE:-"/root/openstack-${PROFILE_SHORTNAME}-${DATE}.qcow2"}
|
||||
|
||||
# create a raw partition and do stuff with it
|
||||
fallocate -l 5G "${TEMP_DIR}/${TEMP_IMAGE}"
|
||||
BLOCK_DEV=$(losetup -f --show "${TEMP_DIR}/${TEMP_IMAGE}")
|
||||
|
||||
# Okay, we have the disk, let's prep it
|
||||
echo 'Building disk'
|
||||
parted -s "${BLOCK_DEV}" mklabel gpt
|
||||
parted -s --align=none "${BLOCK_DEV}" mkpart bios_boot 0 2M
|
||||
parted -s --align=none "${BLOCK_DEV}" mkpart primary 2M 100%
|
||||
parted -s "${BLOCK_DEV}" set 1 boot on
|
||||
parted -s "${BLOCK_DEV}" set 1 bios_grub on
|
||||
mkfs.ext4 -F "${BLOCK_DEV}p2"
|
||||
|
||||
# Mount it
|
||||
echo 'Mounting disk'
|
||||
mkdir -p "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
|
||||
mount "${BLOCK_DEV}p2" "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
|
||||
|
||||
# Expand the stage
|
||||
echo 'Expanding tarball'
|
||||
tar --xattrs -xjpf "${TARBALL}" -C "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
|
||||
|
||||
echo 'Adding in /usr/portage'
|
||||
tar --xattrs -xjpf "${PORTAGE_DIR}/portage-latest.tar.bz2" -C "${MOUNT_DIR}/${PROFILE_SHORTNAME}/usr"
|
||||
|
||||
# Install grub
|
||||
echo 'Installing grub'
|
||||
grub2-install "${BLOCK_DEV}" --boot-directory "${MOUNT_DIR}/${PROFILE_SHORTNAME}/boot"
|
||||
|
||||
# Clean up
|
||||
echo 'Syncing; unmounting'
|
||||
sync
|
||||
umount "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
|
||||
|
||||
# get rid of block mapping
|
||||
losetup -d "${BLOCK_DEV}"
|
||||
|
||||
echo 'Converting raw image to qcow2'
|
||||
qemu-img convert -c -f raw -O qcow2 "${TEMP_DIR}/${TEMP_IMAGE}" "${TARGET_IMAGE}"
|
||||
|
||||
echo 'Cleaning up'
|
||||
rm "${TEMP_DIR}/${TEMP_IMAGE}"
|
|
@ -4,7 +4,7 @@ version_stamp: hardened+cloud-nomultilib-2008.0
|
|||
rel_type: hardened
|
||||
profile: hardened/linux/amd64/no-multilib
|
||||
snapshot: 2008.0
|
||||
source_subpath: hardened/stage3-amd64-hardened+cloud-nomultilib-2008.0
|
||||
source_subpath: hardened/stage3-amd64-hardened+nomultilib-2008.0
|
||||
portage_confdir: /release/releng/releases/weekly/portage/stages
|
||||
|
||||
stage4/use:
|
||||
|
|
|
@ -4,7 +4,7 @@ version_stamp: hardened+cloud-2008.0
|
|||
rel_type: hardened
|
||||
profile: hardened/linux/amd64
|
||||
snapshot: 2008.0
|
||||
source_subpath: hardened/stage3-amd64-cloud-hardened-2008.0
|
||||
source_subpath: hardened/stage3-amd64-hardened-2008.0
|
||||
portage_confdir: /release/releng/releases/weekly/portage/stages
|
||||
|
||||
stage4/use:
|
||||
|
|
|
@ -4,7 +4,7 @@ version_stamp: cloud-nomultilib-2008.0
|
|||
rel_type: default
|
||||
profile: default/linux/amd64/13.0/no-multilib
|
||||
snapshot: 2008.0
|
||||
source_subpath: default/stage3-amd64-cloud-nomultilib-2008.0
|
||||
source_subpath: default/stage3-amd64-nomultilib-2008.0
|
||||
portage_confdir: /release/releng/releases/weekly/portage/stages
|
||||
|
||||
stage4/use:
|
||||
|
|
|
@ -4,7 +4,7 @@ version_stamp: cloud-2008.0
|
|||
rel_type: default
|
||||
profile: default/linux/amd64/13.0
|
||||
snapshot: 2008.0
|
||||
source_subpath: default/stage3-amd64-cloud-2008.0
|
||||
source_subpath: default/stage3-amd64-2008.0
|
||||
portage_confdir: /release/releng/releases/weekly/portage/stages
|
||||
|
||||
stage4/use:
|
||||
|
|
Loading…
Add table
Reference in a new issue