Jeff Schroeder wrote:
On Thu, Jan 29, 2009 at 1:12 PM, Michael DeHaan mdehaan@redhat.com wrote:
Jeff Schroeder wrote:
On Thu, Jan 29, 2009 at 12:28 PM, Michael DeHaan mdehaan@redhat.com wrote:
Jeff Schroeder wrote:
On Thu, Jan 29, 2009 at 11:44 AM, Michael DeHaan mdehaan@redhat.com 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?
It's in the queue. Based on other things going on and wanting to get 1.4.2 tested and released, I'll probably make a pass through and merge things in to devel Tue/Wed of next week.
--Michael
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.