[et-mgmt-tools] Idea for Cobbler pxe rescue mode?
Michael DeHaan
mdehaan at redhat.com
Tue Apr 8 21:21:33 UTC 2008
Michael DeHaan wrote:
> Jennifer Cranfill wrote:
>> Last night I had to do the following procedure with Cobbler to boot a
>> remote server into rescue mode. I'm wondering if any one else thinks
>> it would be worthwhile to incorporate a rescue mode feature into
>> Cobbler's handling of pxe files? Or is there already one that I don't
>> know about?
>
> Could we create "rescue" profiles automatically when we do imports?
> It would just be a different profile ending in "-rescue" that would
> just have "--kopts=rescue" added. Example "DistroName-i386-rescue".
> The other thing we /might/ want to do is set up a kickstart template
> for that profile (and assign it) that can be used to feed the rescue
> image the media information, so you don't have to enter that in
> manually.
> Presumably that could all be done with modifications to action_import.py
>
>>
>> We maintain a number of remote critical servers, and I think it would
>> be useful, especially as in the procedure below I had to be careful
>> that no one else rebooted the server or ran "cobbler sync" while I
>> was updating the pxe file. Also, it might be possible to automate
>> more of the rescue boot.
>>
>> 1) cobbler system edit --name=<sysname> --netboot-enabled=y; cobbler
>> sync
>> 2) cd /tftpboot/pxelinux.cfg
>> 3) Edit the file corresponding to the MAC of <sysname>. Take
>> everything out of the append line except the initrd and add "rescue",
>> like so:
>> append rescue initrd=/images/51x64/initrd.img
>> 4) Reboot <sysname>
>> 5) When the system boots, it will ask you for language and keyboard
>> and then it will ask you for the location of the *rescue* media. Just
>> give it the http to the normal install files for the distro matching
>> the initrd.
>> 6) cobbler system edit --name=<sysname> --netboot-enabled=n; cobbler
>> sync
>>
>> I took the idea from this Red Hat page:
>> http://www.redhatmagazine.com/2007/07/05/solutions-from-the-road-red-hat-enterprise-linux-rescue-mode-over-pxe-part-i/
>>
>>
>
> If we do something like having a rescue profile, it's just:
>
> cobbler system edit --name=server1 --profile=F-9-i386-rescue
> --netboot-enabled=1
> # fix system
> cobbler system edit --name=server1 --profile=originalname
> --netboot-enabled=0
>
> The one thing that requires is knowing the proper rescue profile for
> server1, so it's possible we could add a --rescueprofile= to the
> system and also have a --rescuemode=1/0 like --netboot-enabled if you
> think that's useful. That could be interesting.
>
> That workflow might be like:
>
> cobbler system edit --name=server1 --rescuemode (rescuemode could
> actually set netboot-enabled to 1 for simplicity)
> cobbler system edit --name =server1 --workingmode (this could set
> netboot enabled back)
>> I'd be happy to help with the code, but not sure the right way to
>> architect it, perhaps some variant of netboot-enabled?
>
> Sounds great!
>
> Yeah I think the first step is making the rescue profiles when imports
> are done, the second stage is probably something like
> netboot-enabled (as above) if you like the workflow? Is that close?
>
> I think I'd start taking a look at import for starters -- and if
> that's not all that's needed we can work it from there.
> Cool idea!
>
>
>
>>
>> Thanks for your consideration!
>>
>> --
>> Jennifer Cranfill
>> Systems Engineer
>> Sony Pictures Imageworks
>> cranfill at imageworks.com
>>
>> _______________________________________________
>> et-mgmt-tools mailing list
>> et-mgmt-tools at redhat.com
>> https://www.redhat.com/mailman/listinfo/et-mgmt-tools
>
>
To clarify syntax a bit more and see if we're on the same page, how
about the following?
cobbler import --name=F9A --mirror=path
# automatically creates F9A-i386, F9A-i386-xen, F9A-i386-rescue as both
distros and profiles (action_import.py)
# automatically does the equivalent of "cobbler profile edit
--name=F9A-i386 --rescueprofile=F9A-i386-rescue"
Basically the above would allow any given profile to store the name of
/another/ profile that is used for rescue mode.
You may ask "why isn't rescue mode part of the distro", and the answer
here is that if it's a profile we can take advantage
of it also showing up in PXE menus automatically.
System syntax could also look like this:
cobbler system edit --name=F9A --rescuemode [implies --netboot-enabled=1]
cobbler system edit --name=F9A --workingmode [--netboot-enabled=1/0]
The commands --rescuemode would toggle netboot-enabled and temporarily
set up PXE to point to the rescue profile.
The command --workingmode would set it back, but at no time do you have
to remember what the proper rescue distro
is for a given system -- because it asks the profile for that info.
This would be something that would be really easy to incorporate into
the web interface as well -- as it would just be a couple of checkboxes.
That eventually involves also modifying files like action_sync.py and
modules/cli_system.py and item_system.py/item_profile.py -- though
nothing too invasive. (And I can help on this...)
--Michael
More information about the et-mgmt-tools
mailing list