[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