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.


>   
>> 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.



_______________________________________________
cobbler mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/cobbler

Reply via email to