OMSA

From Glee
Jump to: navigation, search

Skeleton Usage for Firmware Tool

Here are instructions on how to update all firmwares in your Dell servers, using any GNU/Linux distribution.

Advantages :

  • For Red Hat Enterprise Linux (RHEL) or clones, you don't clutter your base OS with all of the Dell packages and services.
  • Works with non-RHEL distributions : Tested with SystemRescueCd and Gentoo, and should work with Debian, Ubuntu, Slackware, Arch Linux, etc.

Requirements :

  • Non-monolithic kernel, with the IPMI and Dell drivers compiled as modules.
  • About 500MB of disk space
  • Dell Server or Workstation supported by the official OMSA software repository.
  • EL6 Skeleton prepared for Firmware Tool. See below on how to create one, or download from http://dl.marmotte.net/dell/.

Quick commands :

SKEL=el6-x86_64-dell_ft
tar xzf ${SKEL}-*.tar.gz
sysctl -w kernel.panic=3

mount -t proc none ${SKEL}/proc
mount -t sysfs none ${SKEL}/sys
mount --bind /dev ${SKEL}/dev

modprobe ipmi_si
modprobe ipmi_devintf
modprobe ipmi_msghandler
modprobe dcdbas
modprobe dell_rbu
chroot ${SKEL} /bin/bash
yum install $(bootstrap_firmware)
inventory_firmware
update_firmware
update_firmware --yes
exit
umount ${SKEL}/proc
umount ${SKEL}/sys
umount ${SKEL}/dev

...reboot!

Skeleton Creation

  • Install a minimal RHEL6 or clone.
  • rsync the entire system tree to a directoy to chroot to
rsync -avHPSx / remote:/mnt/el6-x86_64-dell_ft
SKEL=el6-x86_64-dell_ft
sysctl -w kernel.panic=3

mount -t proc none ${SKEL}/proc
mount -t sysfs none ${SKEL}/sys
mount --bind /dev ${SKEL}/dev

modprobe ipmi_si
modprobe ipmi_devintf
modprobe ipmi_msghandler
modprobe dcdbas
modprobe dell_rbu
chroot ${SKEL} /bin/bash
  • Check what large-ish packages could be removed, then remove them and update the remaining packages :
rpm -qa --qf '%{size}\t%{name}\n' | sort -n
yum remove kernel kernel-firmware grub 'selinux-policy*' policycoreutils redhat-logos 'nfs*' 'iscsi*' 'system-config-*' xfsprogs rsyslog slang
yum remove util-linux-ng libcgroup '*firmware' yum-presto libsemanage rsync iptables checkpolicy rpcbind libuser shadow-utils
yum remove MAKEDEV libutempter device-mapper-multipath-libs procps ustr e2fsprogs findutils kbd-misc audit net-tools vim-minimal libnih upstart
yum remove logrotate plymouth-scripts grubby libuuid libblkid libaio mingetty libgssglue libtirpc libcap-ng libhbaapi libhbalinux libusb
yum remove file bridge-utils libselinux-utils keyutils libss efibootmgr libudev libpciaccess sysvinit-tools dash tcp_wrappers-libs attr
yum remove libconfig plymouth-core-libs libedit deltarpm acl dhcp-common ethtool psmisc libevent dbus-libs dbus-glib libnih e2fsprogs-libs
yum remove libnl m4 diffutils cpio
rpm -e --noscripts kernel
yum update
yum install wget perl
wget -q -O - http://linux.dell.com/repo/hardware/OMSA_7.1/bootstrap.cgi | bash
yum install dell_ft_install
  • Clean up and snapshot :
echo "nameserver 8.8.8.8" > ./${SKEL}/etc/resolv.conf
rpm --rebuilddb
yum clean all
exit

rm -rf ./${SKEL}/boot/grub
rm -rf ./${SKEL}/root/{.bash_history,.gnupg,.ssh}
rm -rf ./${SKEL}/tmp/{*,.ICE-unix}
rm -rf ./${SKEL}/var/log/[a-t]*
umount ${SKEL}/proc
umount ${SKEL}/sys
umount ${SKEL}/dev

tar czvf ${SKEL}-$(date +%Y%m%d).tar.gz ${SKEL}