diff --git a/elements/fedora/README.md b/elements/fedora/README.md index 63a9af72..c31621ff 100644 --- a/elements/fedora/README.md +++ b/elements/fedora/README.md @@ -1,13 +1,3 @@ Use Fedora cloud images as the baseline for built disk images. -Overrides: - - * To use a non-default URL for downloading base Fedora cloud images, - use the environment variable DIB\_CLOUD\_IMAGES - * To download a non-default release of Fedora cloud images, use the - environment variable DIB\_RELEASE - * Alternatively, set DIB\_LOCAL\_IMAGE to the local path of a qcow2 cloud - image. This is useful in that you can use a customized or previously built - cloud image from diskimage-builder as input. The cloud image does not have - to have been build by diskimage-builder. It should be a full disk image, - not just a filesystem image. +For further details see the redhat-common README. diff --git a/elements/fedora/element-deps b/elements/fedora/element-deps index 649b3ecf..3750f722 100644 --- a/elements/fedora/element-deps +++ b/elements/fedora/element-deps @@ -1,6 +1,7 @@ -dib-run-parts cache-url +dib-run-parts dkms -yum +redhat-common rpm-distro -source-repositories \ No newline at end of file +source-repositories +yum diff --git a/elements/fedora/finalise.d/01-clean-old-kernels.sh b/elements/fedora/finalise.d/01-clean-old-kernels.sh deleted file mode 100755 index 8c34e098..00000000 --- a/elements/fedora/finalise.d/01-clean-old-kernels.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -install-packages yum-utils - -package-cleanup --oldkernels -y --count=1 diff --git a/elements/fedora/finalise.d/99-cleanup-tmp-grub b/elements/fedora/finalise.d/99-cleanup-tmp-grub deleted file mode 100755 index a2065bf2..00000000 --- a/elements/fedora/finalise.d/99-cleanup-tmp-grub +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -eux - -rm -rf /tmp/grub diff --git a/elements/fedora/finalise.d/99-setup-first-boot b/elements/fedora/finalise.d/99-setup-first-boot deleted file mode 100755 index 7e787059..00000000 --- a/elements/fedora/finalise.d/99-setup-first-boot +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -set -e - -if [ -d /etc/first-boot.d ]; then - rc_local=/etc/rc.d/rc.local - - FILE_EXISTED= - if [ -f $rc_local ] - then - FILE_EXISTED=1 - mv $rc_local $rc_local.REAL - fi - - dd of=$rc_local <> $rc_local - else - echo "rm \$0" >> $rc_local - fi - - echo "exit 0" >> $rc_local - - chmod 755 $rc_local - - # Enable the service - systemctl enable rc-local.service -fi diff --git a/elements/fedora/install.d/01-install-deps b/elements/fedora/install.d/01-install-deps deleted file mode 100755 index 931d8be5..00000000 --- a/elements/fedora/install.d/01-install-deps +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -# Install any packages in this file that may not be in the fedora -# image but could reasonably be expected - -install-packages which tcpdump traceroute lsof diff --git a/elements/fedora/pre-install.d/00-usr-local-bin-secure-path b/elements/fedora/pre-install.d/00-usr-local-bin-secure-path deleted file mode 100755 index addfc0c0..00000000 --- a/elements/fedora/pre-install.d/00-usr-local-bin-secure-path +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -sed -i '/secure_path/ s/$/:\/usr\/local\/bin/' /etc/sudoers diff --git a/elements/fedora/pre-install.d/02-lsb b/elements/fedora/pre-install.d/02-lsb deleted file mode 100755 index d4fb1f3d..00000000 --- a/elements/fedora/pre-install.d/02-lsb +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -eu - -install -m 0755 -o root -g root /opt/stack/lsb-release/lsb_release /usr/local/bin \ No newline at end of file diff --git a/elements/fedora/pre-install.d/15-fedora-remove-grub b/elements/fedora/pre-install.d/15-fedora-remove-grub deleted file mode 100755 index dd3e9830..00000000 --- a/elements/fedora/pre-install.d/15-fedora-remove-grub +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -set -e - -yum remove -y grub2 -# Install grub2 dependencies to minimise packages installed during finalise. -install-packages grub2-tools gettext os-prober system-logos - -# Remove all old versions of grub2 from the yum cache and then ensure the -# latest version is in the cache. -basearch=$(cat /etc/yum/vars/basearch) -find /tmp/yum/$basearch -regex ".*/grub2-[0-9].*\.rpm" -exec rm -f {} \; -install-packages -d grub2 - -# Copy grub2 rpm out of mounted yum cache for install during finalise -mkdir -p /tmp/grub -cp $(find /tmp/yum/$basearch -regex ".*/grub2-[0-9].*\.rpm") /tmp/grub -echo "rpm -i /tmp/grub/*.rpm" > /tmp/grub/install - -#GRUB_CFG=/boot/grub2/grub.cfg - -#[ -f "$GRUB_CFG" ] - -# Update the config to have the search UUID of the image being built. -# When partition staging is moved to a separate stage, this will need to happen -# there. This generates a non-UUID config, which is irrelevant for booting with -# hypervisor kernel + ramdisk, and fixed up by 51-grub for vm images. -#GRUB_DISABLE_LINUX_UUID=true grub2-mkconfig -o $GRUB_CFG diff --git a/elements/fedora/root.d/10-fedora-cloud-image b/elements/fedora/root.d/10-fedora-cloud-image index 91a6e0ce..47abc17e 100755 --- a/elements/fedora/root.d/10-fedora-cloud-image +++ b/elements/fedora/root.d/10-fedora-cloud-image @@ -28,76 +28,4 @@ else fi -CACHED_TAR=$DIB_IMAGE_CACHE/$BASE_IMAGE_TAR - -if [ -n "$DIB_OFFLINE" -a -f "$CACHED_TAR" ] ; then - echo "Not checking freshness of cached $CACHED_TAR." -else - - if [ -z "$DIB_LOCAL_IMAGE" ]; then - echo "Fetching Base Image" - - # There seems to be some bad Fedora mirrors returning http 404's for the cloud image. - # If the image fails to download due to a 404 we retry once. - set +e - $TMP_HOOKS_PATH/bin/cache-url $IMAGE_LOCATION $CACHED_IMAGE - RV=$? - set -e - - if [ "$RV" == "44" ] ; then - $TMP_HOOKS_PATH/bin/cache-url $IMAGE_LOCATION $CACHED_IMAGE - elif [ "$RV" != "0" ] ; then - exit 1 - fi - fi - - if [ ! -f $CACHED_TAR -o \ - $CACHED_IMAGE -nt $CACHED_TAR ] ; then - echo "Repacking base image as tarball." - WORKING=$(mktemp -d) - EACTION="rm -r $WORKING" - trap "$EACTION" EXIT - echo "Working in $WORKING" - RAW_FILE=$(basename $BASE_IMAGE_FILE) - RAW_FILE=${RAW_FILE#.qcow2}.raw - qemu-img convert -f qcow2 -O raw $CACHED_IMAGE $WORKING/$RAW_FILE - # WARNING: The mattdm image has the root filesystem on the second - # partition (p2). If he changes the image the MAGIC_BIT - # might also need to change. - # UPDATE to above warning alluding to Fedora18: - # F19 images have the rootfs partition on p1 - MAGIC_BIT=p1 - # kpartx fails if no /dev/loop* exists, "losetup -f" prints first unused - # loop device and creates it if it doesn't exist - sudo losetup -f - # XXX: Parsing stdout is dangerous, would like a better way to discover - # the device used for the image. - # NOTE: On F17 (parted-3.0-10.fc17.x86_64), partprobe of - # /dev/loop0 does not create /dev/loop0p2, while kpartx at - # least creates /dev/mapper/loop0p2. - LOOPDEV=$(sudo kpartx -av $WORKING/$RAW_FILE | awk "/loop[0-9]+$MAGIC_BIT/ {print \$3}") - if ! timeout 5 sh -c "while ! [ -e /dev/mapper/$LOOPDEV ]; do sleep 1; done"; then - echo "Error: Could not find /dev/mapper/$LOOPDEV" - exit 1 - fi - EACTION="sudo kpartx -d $WORKING/$RAW_FILE;$EACTION" - trap "$EACTION" EXIT - mkdir $WORKING/mnt - sudo mount /dev/mapper/$LOOPDEV $WORKING/mnt - EACTION="sudo umount -f $WORKING/mnt;$EACTION" - trap "$EACTION" EXIT - # Chroot in so that we get the correct uid/gid - sudo chroot $WORKING/mnt bin/tar -cz . > $WORKING/tmp.tar - mv $WORKING/tmp.tar $CACHED_TAR - else - echo "Using cached tar from $CACHED_TAR" - fi - -fi -# Extract the base image (use --numeric-owner to avoid UID/GID mismatch between -# image tarball and host OS e.g. when building Fedora image on an openSUSE host) -echo "Extracting base root image from $CACHED_TAR" -sudo tar -C $TARGET_ROOT --numeric-owner -xzf $CACHED_TAR -if [ -e "$TARGET_ROOT/lost+found" ]; then - sudo rmdir $TARGET_ROOT/lost+found -fi +$TMP_HOOKS_PATH/bin/extract-image $BASE_IMAGE_FILE $BASE_IMAGE_TAR $IMAGE_LOCATION $CACHED_IMAGE diff --git a/elements/redhat-common/install.d/01-install-deps b/elements/redhat-common/install.d/01-install-deps index 2318aa6c..c7605538 100755 --- a/elements/redhat-common/install.d/01-install-deps +++ b/elements/redhat-common/install.d/01-install-deps @@ -3,4 +3,4 @@ # Install any packages in this file that may not be in the base cloud # image but could reasonably be expected -install-packages which tcpdump traceroute +install-packages which tcpdump traceroute lsof