On Thu, Jan 29, 2009 at 1:12 PM, Michael DeHaan <[email protected]> wrote: > Jeff Schroeder wrote: >> >> On Thu, Jan 29, 2009 at 12:28 PM, Michael DeHaan <[email protected]> >> wrote: >> >>> >>> Jeff Schroeder wrote: >>> >>>> >>>> On Thu, Jan 29, 2009 at 11:44 AM, Michael DeHaan <[email protected]> >>>> wrote: >>>> ...snip... >>>> >>>> >>>>>> >>>>>> +# Loop until the ssh rpm is installed >>>>>> +if [ "$keys_found" = "yes" ]; then >>>>>> + while : ; do >>>>>> + sleep 10 >>>>>> + if [ -d /mnt/sysimage/etc/ssh ] ; then >>>>>> + cp -f /tmp/ssh/ssh_host* /mnt/sysimage/etc/ssh/ >>>>>> + logger "SSH-HOST-KEY copied to newly installed system" >>>>>> + break >>>>>> + fi >>>>>> + done & >>>>>> +fi >>>>>> +#end >>>>>> >>>>>> >>>>>> >>>>> >>>>> Could the looping be eliminated by doing the top part in %pre and the >>>>> later >>>>> in %post? >>>>> >>>>> ex: >>>>> >>>>> %pre >>>>> $SNIPPET('preserve_ssh_host_keys_pre') >>>>> >>>>> %post >>>>> SNIPPET('preserve_ssh_host_keys_post') >>>>> >>>>> >>>> >>>> Splitting this up requires "%post nochroot" because /mnt/sysimage >>>> isn't available until after %pre. I am of the opinion "%post nochroot" >>>> is more hacky than the alternative and chose not to do it this way on >>>> purpose. What do you think is better given the options? It also seems >>>> overly complicated to require %pre and %post sections when it can all >>>> be done in %pre. >>>> >>>> >>> >>> I think looping in Anaconda is kind of scary and wasn't really clear that >>> pre could loop infinitely. >>> >> >> I don't think this is a problem. If will only loop if it gets ssh keys >> off of the local box, and it is backgrounded. It would be killed after >> %post if it was looping forever. >> >> >>> >>> Also folks putting code below the loop might be suprised to see it delays >>> things. (In fact, I wasn't clear >>> %packages didn't wait for all pre sections to complete? Maybe I'm >>> skimming >>> this too fast). >>> >> >> You are most certainly skimming this too fast :-) >> The loop is backgrounded (done &) the installation continues. If the >> loop wasn't backgrounded the package install would never work. This is >> why an infinite loop won't matter. It will die when anaconda sends a >> reboot. >> > > Ah, yeah, just busy -- what you have is then probably completely ok.
Ok great! Is there anything else I can do to make this more to your liking or are you just going to put this in your patch queue? >>> Waiting until after the packages are installed (%post) seems quite sane, >>> and >>> Anaconda does >>> support multiple %post sections. We could call the snippet >>> preserve_ssh_host_keys_post_nochroot if needed :) >>> >>> >>>> >>>> On the other hand I'm all for splitting this up if it is the >>>> difference between being included in upstream cobbler or not. >>>> >>>> >>> >>> Yeah let's do this. >>> >> >> *sigh* ok so here is a question. Should the user of this snippet be >> required to put a "%post nochroot" line, or should that be included >> inside of the post snippet towards the top? >> > > Snippets should never include a section line like "%post" as it makes it > unclear when reading the kickstart. Have had some problems with user > confusion around that before > back when some snippets did that. Noted. -- Jeff Schroeder Don't drink and derive, alcohol and analysis don't mix. http://www.digitalprognosis.com _______________________________________________ cobbler mailing list [email protected] https://fedorahosted.org/mailman/listinfo/cobbler
