[Spacewalk-list] Re: VMware from spacewalk kickstart
Andy Speagle
andy.speagle at wichita.edu
Fri Dec 18 20:01:46 UTC 2009
On Fri, 2009-12-18 at 09:39 -0600, James Hogarth wrote:
> You're most welcome - I assumed I can't have been the only person to
> have gone through something similar... and anyone spacewalk
> kickstarting vmware guests and wanted to do this would hopefully
> search the list and see this post....
>
> 2009/12/18 Andy Speagle <andy.speagle at wichita.edu>
>
> On Fri, 2009-12-18 at 04:20 -0600, James Hogarth wrote:
> > For reference to the source material (and proper credit) I
> used these
> > as guides to getting this working:
> >
> >
> http://www.linuxdynasty.org/how-to-automate-the-install-of-vmware-tools-after-any-kernel-update.html
> >
> > http://drcs.ca/blog/?p=181
> >
> > 2009/12/18 James Hogarth <james.hogarth at gmail.com>
> > After a little head scratching and hiccups I managed
> to get my
> > vmware guests kickstarting and including the vmware
> tools
> > install and config as part of the kickstart
> process... using
> > the vmxnet driver.
> >
> > Testing in our environments has shown the vmxnet
> driver to be
> > superior and we wanted to use it on our guests but
> of course
> > since it isn't part of the kernel source the guests
> had to be
> > built with e1000 emulated NICs and then changed over
> > afterwards....
> >
> > Seeing that there are probably others in the same
> situation I
> > thought that popping the steps I took onto the
> mailing list
> > would be good for others - and when I have to do it
> in 6
> > months for Centos 5.5 again (or 6) I can search this
> list for
> > the instructions ;)
> >
> > This should work in any rpm based kickstartable
> distrobution
> > but was tested on Centos 5.4 x86_64.
> >
> > First you will need a reference system with
> VMwareTools
> > already installed onto in order to get the kernel
> module and
> > check the PCI IDs your modules are.
> >
> > From the PXE or kickstart ISO you are using unpack
> your initrd
> > to a work directory....
> >
> > mkdir /tmp/work
> > cd /tmp/work
> > cp /mnt/dvd/images/pxeboot/initrd.img .
> > mkdir initrd
> > cd initrd
> >
> >
> > zcat ../initrd.img | cpio -id
> >
> > On the reference PC check the PCI ID for your
> modules....
> >
> > lspci | grep -i -E 'vmware.*ethernet|
> ethernet.*vmware'
> >
> > It will look something like:
> >
> > 00:11.0 Ethernet controller: VMware VMXNET Ethernet
> Controller (rev 10)
> >
> > Next get the full vendor/product ID for the driver
> where the
> > PCI ID is 00:11.0 in the example above.
> >
> > lspci -n | grep -i '15ad'
> >
> > Look for the line matching the PCI ID found above
> and make a
> > note of the product ID...
> >
> > The example from my case is:
> >
> > lspci -n00:11.0 0200: 15ad:0720 (rev 10) | grep -i
> '15ad'
> >
> > Where the vendor ID can be seen as 15ad and the
> product ID to
> > make a note of is above is 0720
> >
> > Next we need to expand the modules cpio archive to
> add our
> > vmware module to it.
> >
> > mkdir /tmp/work/modules
> >
> >
> > cd /tmp/work/modules
> > zcat ../initrd/modules/modules.cgz | cpio -id
> > cd /tmp/work/modules/2.6.*/x86_64
> > cp /lib/modules/`uname -r`/misc/vmxnet*.ko .
> > chmod 744 vmxnet*
> >
> > Depending on the version of VMwareToosl you have you
> may have
> > separate vmxnet.o and vmxnet.ko modules
> in /lib/modules/`uname
> > -r`/misc - and you may also jave vmxnet and vmxnet3
> > modules.... For the 2.6 kernel you will need the
> vmxnet*.ko
> > modules. If your module is symlinked to the .o
> version (as in
> > my case) make sure you grab the actual file ;)
> >
> > Next pack back up the modules cpio archive....
> >
> > cd /tmp/work/modules
> > find . | cpio -o -H crc | gzip -9
> > /tmp/work/initrd/modules/modules.cgz
> >
> > Note that the type is crc here....
> >
> > Next we need to tell our kernel/initrd about our new
> > modules....
> >
> > cd /tmp/work/initrd/modules
> > vi pci.ids
> >
> > Look for the section with the vmware vendor ID of
> 15ad and add
> > your ethernet modules to this... for reference here
> is my part
> > of that file after the addition:
> >
> > 15ad VMware
> > 0405 SVGA II Adapter
> > 0710 SVGA Adapter
> > 0720 VMware VMXNET Ethernet Controller (rev
> 10)
> >
> > Note that you might need the vmxnet3 driver added
> too
> > depending on your version of VMwareTools....
> >
> > Next append to the initrd modules-info alias
> info....
> >
> > vmxnet
> > eth
> > "VMware VMXNET Ethernet Controller (rev 10)"
> >
> >
> >
> > Remember to add a vmxnet3 section if required... On
> the
> > reference system get the entries required for the
> > modules.alias file....
> >
> > grep
> vmxnet /lib/modules/2.6.18-164.6.1.el5/modules.alias
> > alias pci:v000015ADd00000720sv*sd*bc*sc*i* vmxnet
> >
> >
> > alias pci:v00001022d00002000sv*sd*bc*sc*i* vmxnet
> >
> > Append these to the modules.alias file
> > in /tmp/work/initrd/modules
> >
> > Next pack all this back up....
> >
> > cd /tmp/work/initrd
> > find . | cpio -o -H newc | gzip -9
> > /tmp/work/initrd.img.vmxnet
> >
> >
> >
> > Copy this initrd.img file to your PXE tree or ISO or
> however
> > you want to use this (renaming it if need be)...
> >
> > That's the hard work done and that will allow a
> kickstart of
> > the system using the vmxnet network driver instead
> of the
> > e1000 driver. But that is only good for the
> kickstart itself
> > this next final bit is to allow the system to still
> have a
> > network interface after the kickstart is over....
> >
> > On the spacewalk server create a post script for
> your
> > kickstart containing something like the following:
> >
> > /usr/bin/yum install -y --nogpgcheck VMwareTools
> > sed -i -e '/^\#.*$/d' -e '/^HWADDR=.*
> $/d' /etc/sysconfig/network-scripts/ifcfg-eth0
> >
> >
> > echo "rkernel=`uname -r`
> > if [ -e /etc/vmware-tools/not_configured ]; then
> > echo "vmware-tools not configured for running
> kernel $rkernel"
> > echo "running vmware-config-tools.pl"
> >
> >
> > /usr/bin/vmware-config-tools.pl -d
> > echo "vmware-tools now compiled for running
> kernel $rkernel"
> > echo "restarting system"
> >
> > reboot
> > fi" >> /etc/rc.local
> >
> > This assumes that the VMwareToosl rpm is somewhere
> in your
> > channels. It removes any comments from the
> ifcfg-eth0 file and
> > removes the HWADDR restriction so that the system
> doesn't
> > rename it to ifcfg-eth0.bak or somesuch on changes
> to network
> > interface - this was valid for Centos 5.4 YMMV....
> The
> > rc.local addition is important as
> vmware-tools-config.pl
> > detects module to install based on the running
> kernel - this
> > is of course different in the kickstart. This will
> also allow
> > a kernel upgrade and if need be the system will
> auto-configure
> > on next boot. The reboot is there to ensure that any
> network
> > services etc or any dependencies on network/vmware
> running
> > during start up are met.
> >
> > Hope this is helpful to someone apart from me next
> distro
> > update ;)
> >
> > James
> >
>
>
> Automating the install/update of vmware-tools after a kernel
> install
> sounds like something that's begging for a "trigger" RPM. I
> need to
> migrate my ESX VMs to use vmxnet, so I'll go through this
> process and
> post my results.
>
> Thanks for the info.
>
>
> --
> Andy Speagle
>
> "THE Student" - UCATS
> Wichita State University
>
> _______________________________________________
> Spacewalk-list mailing list
> Spacewalk-list at redhat.com
> https://www.redhat.com/mailman/listinfo/spacewalk-list
>
Well, since historically we've only used the e1000 driver for our VMs,
I've simply created a child-channel for the vmware-tools RPMs and
installed them during post-install like anything else. But,
reconfiguring to use the vmxnet driver will be more work.
I will build a trigger RPM that will automagically deal with setting up
the vmxnet driver (and cleaning it up) when a kernel is added (or
removed).
I can post the spec file once I have it perfected, if there's any
interest.
--
Andy Speagle
"THE Student" - UCATS
Wichita State University
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://listman.redhat.com/archives/spacewalk-list/attachments/20091218/c2b7f7d1/attachment.sig>
More information about the Spacewalk-list
mailing list