[cobbler] How to speed up triggers

Jörgen Maas jorgen.maas at gmail.com
Sun Aug 10 05:39:27 UTC 2014


Hi Alastair,

Great writeup. We do have a wiki where Cobbler users can share their
solutions/experiences
It would be great if you would be willing to put this information up there:
https://github.com/cobbler/cobbler/wiki

I hope other users will be inspired to do the same :)




On Sat, Aug 9, 2014 at 9:39 PM, <alastair at alastair-munro.com> wrote:

> Hi
>
> Just wanted to share something with the list. When creating triggers to
> say run a 'cobbler replicate' via ssh, etc, to remote cobbler servers, the
> web page waits for the ssh at the remote end to complete. This produced
> quite a delay if you are say updating a system and waiting for the webpage
> to refresh. The reason for this is it waits for the ssh to complete, even
> if you background it or nohup/at/etc it.
>
> I found a way to daemonize the remote command. Using daemon from here:
> http://libslack.org/daemon/. This daemonizes the ssh command, thus giving
> an instant response. On centos/rhel 6, just install the rpm.
>
> The other nice thing about daemon is the --name=something switch; daemon
> will only allow the command to run if there is not another daemon running
> with the same name. Thus you could put the same command in cron to run
> every so often on the slave, to ensure its kept up to date. This means the
> cron and trigger runs would never clash, or subsequent cron runs would not
> clash with an earlier run. For example if you add a new distro, the
> replicate command could take a while to run to rsync across the new distro
> and the next cron run may run into it.
>
> From our setup we have one master and three slaves. In effect one cobbler
> server per site/data center. This means no installs across wan links and
> our server builds are always setup with their yum repos in the local site.
> However we have simple admin; only one cobbler web and a standard config
> across all servers. Only have to remember to set the server override for
> systems for the local site cobbler server. We do a mix of pxe and
> generated.iso builds (both are quite easy)
>
> # mkdir /usr/local/cobbler
> # cd /var/lib/cobbler/triggers/add/system/post/
> # cat sync-slaves.sh
> #!/bin/bash
>
> # A Munro 6 Aug 2014: sync slaves
> # make sure you set up ssh keys for this...
>
> # space delimited list of slaves
> SLAVES="gb-wat-svv-0600 us-ham-svv-0600 us-lou-svv-0600"
> MASTER=cobbler
> SSH="ssh -oConnectTimeout=2 -oStrictHostKeyChecking=no
> -oUserKnownHostsFile=/dev/null -oBatchMode=yes -oLogLevel=quiet"
> LOG=/var/log/cobbler/triggers.log
>
> [ -f $LOG ] && rm -f $LOG
>
> for h in $SLAVES
> do
> #   slow way:background so they are done in parallel
> #   however ssh still waits for all the commands to complete
> #    $SSH $h "cobbler replicate --master=$MASTER --systems=* --profiles=*
> --prune" 2>&1 >> $LOG  &
> #   using daemon from http://libslack.org/daemon is fast and
> instantaneous. The run gets daemonized remotely and returns instantly
>     $SSH $h "daemon --name=cob /usr/local/cobbler/sync-master.sh" 2>&1 >>
> $LOG  &
> done
>
> # chmod u+x sync-slaves.sh
>
> On the slave:
>
> # cat /usr/local/cobbler/sync-master.sh
> cobbler replicate --master=cobbler --systems=* --profiles=* --prune
>
> # chmod u+x /usr/local/cobbler/sync-master.sh
>
> _______________________________________________
> cobbler mailing list
> cobbler at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>



-- 
Grtz,
Jörgen Maas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/cobbler/attachments/20140810/511a91fd/attachment.html>


More information about the cobbler mailing list