Reduce the size of the ironic-agent ramdisk
This patch is reducing the size of the ramdisk image generated by the ironic-agent element. It does remove extra packages (graphical stuff, dev stuff, miscs, docs, etc...) and purges directories that are not needed for a ramdisk (like /boot since it boots using an external kernel) Currently it was tested generating a Fedora 22 image and reduced the size of the final image from 464 MB to 211MB compacted (54% decrease). I was able to boot a VM with 1.3 GiB of ram instead of the previous 3 GiB needed. Change-Id: Id6333ca5d99716ccad75ea1964896acf371fa72a
This commit is contained in:
parent
c2b96259a4
commit
1181fb8543
@ -15,3 +15,6 @@ Beyond installing the ironic-python-agent, this element does the following:
|
|||||||
* When installing from source, ``python-dev`` and ``gcc`` are also installed
|
* When installing from source, ``python-dev`` and ``gcc`` are also installed
|
||||||
in order to support source based installation of ironic-python-agent and its
|
in order to support source based installation of ironic-python-agent and its
|
||||||
dependencies.
|
dependencies.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Using the ramdisk will require at least 1.5GB of ram
|
||||||
|
@ -18,7 +18,7 @@ echo "#disabled" > ./tmp/fstab.new
|
|||||||
sudo mv ./tmp/fstab.new ./etc/fstab
|
sudo mv ./tmp/fstab.new ./etc/fstab
|
||||||
sudo ln -s ./sbin/init ./
|
sudo ln -s ./sbin/init ./
|
||||||
|
|
||||||
sudo find . -path ./sys -prune -o -path ./proc -prune -o -path './tmp/*' -prune -o -print | sudo cpio -o -H newc | gzip > ${IMAGE_PATH}.initramfs
|
sudo find . -path ./sys -prune -o -path ./proc -prune -o -path './tmp/*' -prune -o -path './boot/*' -prune -o -path './root/*' -prune -o -path './usr/lib/locale/*' -prune -o -path './usr/share/doc/*' -prune -o -path './usr/share/man/*' -prune -o -path './usr/share/info/*' -prune -o -path './usr/share/licenses/*' -prune -o -path './usr/share/misc/*' -prune -o -print | sudo cpio -o -H newc | gzip > ${IMAGE_PATH}.initramfs
|
||||||
|
|
||||||
select_boot_kernel_initrd $TARGET_ROOT
|
select_boot_kernel_initrd $TARGET_ROOT
|
||||||
sudo cp $BOOTDIR/$KERNEL ${IMAGE_PATH}.vmlinuz
|
sudo cp $BOOTDIR/$KERNEL ${IMAGE_PATH}.vmlinuz
|
||||||
|
28
elements/ironic-agent/finalise.d/99-remove-extra-packages
Executable file
28
elements/ironic-agent/finalise.d/99-remove-extra-packages
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# TODO(lucasagomes): optimize the ramdisk for other OSs
|
||||||
|
if [ $DISTRO_NAME = 'fedora' ] ; then
|
||||||
|
|
||||||
|
install-packages -e kernel-debug-devel gcc fedora-logos python3 rsync sudo pykickstart grubby make genisoimage tcpdump man-db policycoreutils kbd-misc plymouth cronie
|
||||||
|
|
||||||
|
if [ $DIB_RELEASE -ge 22 ]; then
|
||||||
|
# Remove yum, >= F22 defaults to dnf
|
||||||
|
dnf remove yum -y
|
||||||
|
# Remove package manager cache
|
||||||
|
dnf clean all
|
||||||
|
else
|
||||||
|
# Remove package manager cache
|
||||||
|
yum clean all
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rebuilding the rpm database after removing packages will reduce
|
||||||
|
# its size
|
||||||
|
rpm --rebuilddb
|
||||||
|
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user