[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