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
3 changed files with 32 additions and 1 deletions
|
@ -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
|
||||
in order to support source based installation of ironic-python-agent and its
|
||||
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 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
|
||||
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 a new issue