Clean up and add error handling
This commit is contained in:
parent
2aa85ecf62
commit
5cc781a6bc
37
buildiso.sh
37
buildiso.sh
|
@ -7,6 +7,7 @@
|
||||||
# using a standard Debian intaller ISO. The end system is suitable
|
# using a standard Debian intaller ISO. The end system is suitable
|
||||||
# for immediate bootstrapping with the PVC Ansible roles.
|
# for immediate bootstrapping with the PVC Ansible roles.
|
||||||
|
|
||||||
|
liveisofile="$( pwd )/debian-live-buster-DI-rc1-amd64-standard.iso"
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
echo $@
|
echo $@
|
||||||
|
@ -17,7 +18,6 @@ which debootstrap &>/dev/null || fail "This script requires debootstrap."
|
||||||
which mksquashfs &>/dev/null || fail "This script requires squashfs."
|
which mksquashfs &>/dev/null || fail "This script requires squashfs."
|
||||||
which xorriso &>/dev/null || fail "This script requires xorriso."
|
which xorriso &>/dev/null || fail "This script requires xorriso."
|
||||||
|
|
||||||
liveisofile="$( pwd )/debian-live-buster-DI-rc1-amd64-standard.iso"
|
|
||||||
tempdir=$( mktemp -d )
|
tempdir=$( mktemp -d )
|
||||||
|
|
||||||
prepare_iso() {
|
prepare_iso() {
|
||||||
|
@ -28,11 +28,11 @@ prepare_iso() {
|
||||||
echo -n "Extracting Debian LiveISO files... "
|
echo -n "Extracting Debian LiveISO files... "
|
||||||
iso_tempdir=$( mktemp -d )
|
iso_tempdir=$( mktemp -d )
|
||||||
sudo mount ${liveisofile} ${iso_tempdir} &>/dev/null || fail "Error mounting LiveISO file."
|
sudo mount ${liveisofile} ${iso_tempdir} &>/dev/null || fail "Error mounting LiveISO file."
|
||||||
sudo rsync -au --exclude live/filesystem.squashfs ${iso_tempdir}/ ${tempdir}/installer/ || fail "Error extracting LiveISO files."
|
sudo rsync -au --exclude live/filesystem.squashfs ${iso_tempdir}/ ${tempdir}/installer/ &>/dev/null || fail "Error extracting LiveISO files."
|
||||||
sudo umount ${iso_tempdir} &>/dev/null || fail "Error unmounting LiveISO file."
|
sudo umount ${iso_tempdir} &>/dev/null || fail "Error unmounting LiveISO file."
|
||||||
rmdir ${iso_tempdir} &>/dev/null
|
rmdir ${iso_tempdir} &>/dev/null
|
||||||
sudo cp -a grub.cfg ${tempdir}/installer/boot/grub/grub.cfg &>/dev/null
|
sudo cp -a grub.cfg ${tempdir}/installer/boot/grub/grub.cfg &>/dev/null || fail "Error copying grub.cfg file."
|
||||||
sudo cp -a menu.cfg ${tempdir}/installer/isolinux/menu.cfg &>/dev/null
|
sudo cp -a menu.cfg ${tempdir}/installer/isolinux/menu.cfg &>/dev/null || fail "Error copying menu.cfg file."
|
||||||
echo "done."
|
echo "done."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,31 +44,30 @@ prepare_rootfs() {
|
||||||
--include=${SQUASHFS_PKGLIST} \
|
--include=${SQUASHFS_PKGLIST} \
|
||||||
buster \
|
buster \
|
||||||
debootstrap/ \
|
debootstrap/ \
|
||||||
http://localhost:3142/ftp.ca.debian.org/debian &>/dev/null
|
http://localhost:3142/ftp.ca.debian.org/debian &>/dev/null || fail "Error performing debootstrap."
|
||||||
sudo chroot debootstrap/ apt clean
|
sudo chroot debootstrap/ apt clean &>/dev/null || fail "Error cleaning apt cache in debootstrap."
|
||||||
sudo rsync -au debootstrap/ ${tempdir}/rootfs/
|
sudo rsync -au debootstrap/ ${tempdir}/rootfs/ &>/dev/null || fail "Error copying debootstrap to tempdir."
|
||||||
echo "done."
|
echo "done."
|
||||||
|
|
||||||
echo -n "Configuring Debian live installation... "
|
echo -n "Configuring Debian live installation... "
|
||||||
sudo cp install.sh ${tempdir}/rootfs/
|
sudo cp ${tempdir}/rootfs/lib/systemd/system/getty\@.service ${tempdir}/rootfs/etc/systemd/system/getty@tty1.service &>/dev/null || fail "Error copying getty override to tempdir."
|
||||||
sudo cp ${tempdir}/rootfs/lib/systemd/system/getty\@.service ${tempdir}/rootfs/etc/systemd/system/getty@tty1.service
|
|
||||||
sudo sed -i \
|
sudo sed -i \
|
||||||
's|/sbin/agetty|/sbin/agetty --autologin root|g' \
|
's|/sbin/agetty|/sbin/agetty --autologin root|g' \
|
||||||
${tempdir}/rootfs/etc/systemd/system/getty@tty1.service
|
${tempdir}/rootfs/etc/systemd/system/getty@tty1.service &>/dev/null || fail "Error setting autologin in getty override."
|
||||||
|
sudo tee ${tempdir}/rootfs/etc/hostname <<<"pvc-node-installer" &>/dev/null || fail "Error setting hostname."
|
||||||
sudo tee ${tempdir}/rootfs/etc/hostname <<<"pvc-node-installer" &>/dev/null
|
sudo tee -a ${tempdir}/rootfs/root/.bashrc <<<"/install.sh" &>/dev/null || fail "Error setting bashrc."
|
||||||
sudo tee -a ${tempdir}/rootfs/root/.bashrc <<<"/install.sh" &>/dev/null
|
sudo chroot ${tempdir}/rootfs/ /usr/bin/passwd -d root &>/dev/null || fail "Error disabling root password."
|
||||||
sudo chroot ${tempdir}/rootfs/ /usr/bin/passwd -d root &>/dev/null
|
sudo cp install.sh ${tempdir}/rootfs/ &>/dev/null || fail "Error copying install.sh to tempdir."
|
||||||
echo "done."
|
echo "done."
|
||||||
|
|
||||||
echo -n "Generating squashfs image of live installation... "
|
echo -n "Generating squashfs image of live installation... "
|
||||||
sudo nice mksquashfs ${tempdir}/rootfs/ ${tempdir}/installer/live/install.squashfs -e boot &>/dev/null
|
sudo nice mksquashfs ${tempdir}/rootfs/ ${tempdir}/installer/live/install.squashfs -e boot &>/dev/null || fail "Error generating squashfs."
|
||||||
echo "done."
|
echo "done."
|
||||||
}
|
}
|
||||||
|
|
||||||
build_iso() {
|
build_iso() {
|
||||||
pushd ${tempdir}/installer &>/dev/null
|
|
||||||
echo -n "Creating LiveCD ISO... "
|
echo -n "Creating LiveCD ISO... "
|
||||||
|
pushd ${tempdir}/installer &>/dev/null
|
||||||
xorriso -as mkisofs \
|
xorriso -as mkisofs \
|
||||||
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
|
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
|
||||||
-c isolinux/boot.cat \
|
-c isolinux/boot.cat \
|
||||||
|
@ -81,17 +80,19 @@ build_iso() {
|
||||||
-no-emul-boot \
|
-no-emul-boot \
|
||||||
-isohybrid-gpt-basdat \
|
-isohybrid-gpt-basdat \
|
||||||
-o ../pvc-installer.iso \
|
-o ../pvc-installer.iso \
|
||||||
. &>/dev/null
|
. &>/dev/null || fail "Error creating ISO file."
|
||||||
popd &>/dev/null
|
popd &>/dev/null
|
||||||
echo "done."
|
echo "done."
|
||||||
|
|
||||||
echo -n "Moving generated ISO to '$(pwd)/pvc-installer.iso'... "
|
echo -n "Moving generated ISO to '$(pwd)/pvc-installer.iso'... "
|
||||||
mv ${tempdir}/pvc-installer.iso . &>/dev/null
|
mv ${tempdir}/pvc-installer.iso . &>/dev/null || fail "Error moving ISO file."
|
||||||
echo "done."
|
echo "done."
|
||||||
}
|
}
|
||||||
|
|
||||||
prepare_iso
|
prepare_iso
|
||||||
prepare_rootfs
|
prepare_rootfs
|
||||||
build_iso
|
build_iso
|
||||||
|
|
||||||
echo -n "Cleaning up... "
|
echo -n "Cleaning up... "
|
||||||
sudo rm -rf ${tempdir} &>/dev/null
|
sudo rm -rf ${tempdir} &>/dev/null
|
||||||
echo "done."
|
echo "done."
|
||||||
|
|
Loading…
Reference in New Issue