Dell’s OMSA (Open Manage Server Administrator) tools are quite nice, but the 6.5.x (and prior) version’s installation process did not lend itself to being automated and managed by Puppet. Now, with OMSA 7.0, things have changed, and mostly for the better. Especially for simplifying things from the puppet management side, and there is even a possibility that the new system will work well in our netboot environment. The older-style repository mirror would give us a heady mix a-la:
/repos/pub/mirrors/linux.dell.com/OMSA_6.5.3 $ ls bootstrap.cgi per415 system.ven_0x1028.dev_0x01e7 dx6000 per510 system.ven_0x1028.dev_0x01ea dx6000g per515 system.ven_0x1028.dev_0x01eb dx6012s per610 system.ven_0x1028.dev_0x01f0 HEADER.shtml per710 system.ven_0x1028.dev_0x0205 mirrors.cgi per715 system.ven_0x1028.dev_0x0208 pe0420 per805 system.ven_0x1028.dev_0x020b pe0430 per810 system.ven_0x1028.dev_0x020c pe0440 per815 system.ven_0x1028.dev_0x020f pe0800 per900 system.ven_0x1028.dev_0x0210 pe0830 per905 system.ven_0x1028.dev_0x0221 pe0840 per910 system.ven_0x1028.dev_0x0223 pe0850 pet100 system.ven_0x1028.dev_0x0225 pe0860 pet105 system.ven_0x1028.dev_0x0235 pe1430 pet110 system.ven_0x1028.dev_0x0236 pe1435 pet110ii system.ven_0x1028.dev_0x0237 pe1800 pet300 system.ven_0x1028.dev_0x023c pe1850 pet310 system.ven_0x1028.dev_0x025c pe1855 pet410 system.ven_0x1028.dev_0x027b pe1900 pet605 system.ven_0x1028.dev_0x0287 pe1950 pet610 system.ven_0x1028.dev_0x028b pe1955 pet710 system.ven_0x1028.dev_0x028c pe2800 platform_independent system.ven_0x1028.dev_0x028d pe2850 repoview.html system.ven_0x1028.dev_0x029b pe2900 RPM-GPG-KEY-dell system.ven_0x1028.dev_0x029c pe2950 RPM-GPG-KEY-libsmbios system.ven_0x1028.dev_0x02a3 pe2970 system.ven_0x1028.dev_0x016c system.ven_0x1028.dev_0x02a4 pe6800 system.ven_0x1028.dev_0x016d system.ven_0x1028.dev_0x02a5 pe6850 system.ven_0x1028.dev_0x016e system.ven_0x1028.dev_0x02a6 pe6950 system.ven_0x1028.dev_0x016f system.ven_0x1028.dev_0x02d3 pem600 system.ven_0x1028.dev_0x0170 system.ven_0x1028.dev_0x02d4 pem605 system.ven_0x1028.dev_0x0180 system.ven_0x1028.dev_0x02dc pem610 system.ven_0x1028.dev_0x0183 system.ven_0x1028.dev_0x02f1 pem610x system.ven_0x1028.dev_0x0185 system.ven_0x1028.dev_0x0430 pem710 system.ven_0x1028.dev_0x018a system.ven_0x1028.dev_0x043c pem710hd system.ven_0x1028.dev_0x01ae system.ven_0x1028.dev_0x0444 pem805 system.ven_0x1028.dev_0x01b1 system.ven_0x1028.dev_0x0445 pem905 system.ven_0x1028.dev_0x01b2 system.ven_0x1028.dev_0x045d pem910 system.ven_0x1028.dev_0x01b3 system.ven_0x1028.dev_0x045f pem915 system.ven_0x1028.dev_0x01b6 system.ven_0x1028.dev_0x0488 per200 system.ven_0x1028.dev_0x01b7 system.ven_0x1028.dev_0x0489 per210 system.ven_0x1028.dev_0x01b8 system.ven_0x1028.dev_0x04d6 per210ii system.ven_0x1028.dev_0x01b9 system.ven_0x1028.dev_0x04dd per300 system.ven_0x1028.dev_0x01bb system.ven_0x1028.dev_0x04de per310 system.ven_0x1028.dev_0x01df system.ven_0x1028.dev_0x04fb per410 system.ven_0x1028.dev_0x01e6 _tools
The setup wasn’t without its flaws – for one thing, one could not simply point Yum at this lot. Instead, the boostrap.cgi script was run (by way of wget -o piped to bash – what could wrong go with that?), which generated a repo definition file in /etc/yum.repos.d/ based on the system platform on which the boostrap was run, from which Yum could now install srvadmin, et cetera. Dell’s take on the матрешка installation method?
Technically, the initial steps are: 1) wget -q -O – http://repo-server/OMSA/hardware/latest/boostrap.cgi | bash 2) yum clean all 3) yum install srvadmin-all 4) /sbin/service dataeng start
In and of itself, this setup isn’t all that terrible. When it has to be automated with Puppet (our system configuration management system), however, shenanigans ensue.
Said shenanigans multiply at a rate that’d make a flat cat turn rainbow with envy when we try to manage rack-mounted netbooted Dell PowerEdge servers – the customized installation coded to a different hardware chassis means either separate netboots for each hardware class (and then, separate from that, netboot environment for the desktop-class machines which aren’t supported by OMSA), or trickery at boot-time. We chose later, but lack of happiness by all involved was noticeable.
Enter OMSA 7.0.The linux.dell.com site does not appear to have the new software. Instead, one gets a large tarball within which there lives a different set of files:
/repos/pub/mirrors/linux.dell.com/OMSA_7.0$ ls -alF total 538 drwxr-xr-x 6 root root 197 Jun 20 14:48 ./ drwxr-xr-x 8 root root 334 Jun 20 11:35 ../ -r-xr-xr-x 1 root root 899 Feb 15 08:39 COPYRIGHT.txt* drwxrwxr-x 9 root root 144 Feb 15 08:39 docs/ -r-xr-xr-x 1 root root 9975 Feb 15 08:39 license.txt* drwxr-xr-x 5 root root 107 Feb 15 02:38 linux/ -rwxrwxr-x 2 root root 111347 Feb 15 08:36 setup.sh*
Having to run setup.sh is not all that much convenient than the previous setup. There is, however, one VERY large difference – there is now a common set of RPMs (split by OS) rather than by hardware, which allowed use to simply make a repo out of them.
Ingredients: OMSA 7.0 (One tarball) createrepo (one RPM, installed)
Steps: 1) Untar the OMSA 2) Create/switch to the OMSA 7.0 repo root directory Then, an incantation:
mkdir -p 5/x86_64/RPMS cp linux/RPMS/supportRPMS/<em>/RHEL5/x86_64/</em> 5/x86_64/RPMS mkdir -p 6/x86_64/RPMS cp linux/RPMS/supportRPMS/<em>/RHEL6/x86_64/</em> 6/x86_64/RPMS for rel in 5 6 do cd $rel/x86_64 createrepo . cd .. done
Craft yourself a yum repo file not unlike what’s listed below:
[dell-omsa] name=Dell OMSA repository - 7.0 type=rpm-md baseurl=http://repo-server/OMSA_7.0/$releasever/$basearch gpgcheck=0 enabled=1
When in doubt, yum clean all after any change to the /etc/yum.repos.d/ files.
Now, ‘yum install srvadmin-all’ works. The advantage is that we can have the repo definition put into place rather simply, and not worry about running scripts and various other things surrounding this.
The one thing the old method gave us was the ability to gather firmware versions of different components, as well as apply firmware updates. The New and Improved Way ™ doesn’t seem to provide this functionality, though it may be just a matter of figuring out the new thing.