[CUWiN-Dev] batch upgrades
Bill Comisky
bcomisky at pobox.com
Wed Mar 23 15:26:14 CST 2005
I saw that these scripts got added to the repository, cool. The
cuw_rebootnodes script won't work as is though, with:
ssh -n root@$1 "(sleep $REBOOTSECS; /sbin/reboot) &"
I tried something like that originally, but the ssh session stays open for
REBOOTSECS instead of returning immediately. I tried a few variations,
trying to redirect STDIN and STDOUT to /dev/null without success. Using
the client side "rebootin" script was my inelegant fix. Maybe someone
else knows how to fix it?
bill
On Tue, 15 Mar 2005, Bill Comisky wrote:
> I've been using a few scripts to do batch upgrades of the testbed nodes in
> the lab at CNT, and thought I'd share them with the list. I actually just
> found localsrc/node-updater/*, but don't follow how it's meant to be used. If
> there's a better way than how I'm doing it, let me know.
>
> The method I use requires that root be able to ssh in to the node. I'm using
> an authorized key file called 'root' in the AUTHORIZED_KEY directory to set
> this up password-less. Buyer beware if you have security concerns. I made a
> slight change to /sbin/upgrade so that it reads the .tar.gz upgrade from
> STDIN if '-' is used as the upgrade file. So then I can "push" an upgrade
> by:
>
> cat upgrade.tar.gz | ssh root at nodeIP 'export PATH="/sbin:/usr/sbin:$PATH";
> upgrade -'
>
> We've been using svk to mirror the CUWiN svn repository and version our local
> changes. The attached patch I generated using 'svk diff' from the
> src/boot-image/ subdirectory. The patch is against svn rev2884; the version
> numbers in the patch comments are our svk repository numbers.
>
> The patch includes changes to:
>
> etc-patches/patch-sshd_config
> extras/extraslog
> extras/sbin/upgrade
>
> and these new files:
>
> extras/sbin/getversions
> extras/sbin/rebootin
>
> Of course you have to setup your own ssh keys. The last two files are helper
> scripts:
>
> getversions:
> Returns the current and next-boot CUWiN release version and device.
>
> rebootin:
> reboots the node after a given number of seconds.
>
> Also attached are the 3 server side wrappers scripts to cycle through node
> IPs and run these commands. For example, on the machine hosting the upgrade
> tarball, the full cycle might look like:
>
> export NODES="10.0.146.86 10.0.244.159 10.0.244.144"
>
> # check current and next-boot CUWiN versions
> cuw_getversions $NODES
>
> # push upgrade
> cuw_pushupgrade upgrade.tar.gz $NODES
>
> # check again, should show upgrade on 2nd partition
> cuw_getversions $NODES
>
> # reboot the nodes 60 seconds, this is just a serial loop
> # so leave enough time for the script to ssh in to all the nodes
> # on the command line
> cuw_rebootnodes 60 $NODES
>
> bill
>
> --
> Bill Comisky
> bcomisky at pobox.com
>
--
Bill Comisky
bcomisky at pobox.com
More information about the CU-Wireless-Dev
mailing list