Hopefully it will help someone out there (as lots of googling helps me)
:)
Alastair
On 2014-08-10 06:39, Jörgen Maas wrote:
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 [4]
I hope other users will be inspired to do the same :)
On Sat, Aug 9, 2014 at 9:39 PM, <alastair(a)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/ [1]. 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 [2] 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(a)lists.fedorahosted.org
>
https://lists.fedorahosted.org/mailman/listinfo/cobbler [3]
--
Grtz,
Jörgen Maas
Links:
------
[1]
http://libslack.org/daemon/
[2]
http://libslack.org/daemon
[3]
https://lists.fedorahosted.org/mailman/listinfo/cobbler
[4]
https://github.com/cobbler/cobbler/wiki
_______________________________________________
cobbler mailing list
cobbler(a)lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/cobbler