Chad Perrin wrote:

If you have specific ideas about what parts of the updating process are
"safe", you might try writing a few shell or Perl scripts that automate
those steps -- then share them with the rest of the world.  You might
also, if writing such scripts is too far outside your expertise, simply
put together a carefully crafted list of steps you think should be taken
so you can pass it on to others like myself who might be more likely to
write the code (at which point I/he/she can give it back to you for your
own use).

This is possible - perhaps even trivial.  Of course, when something breaks,
you're off to get a console, whether it's the next office over or a thousand
miles away.

Attached is a modified version of what I use on some of our machines, for OS
only, if anyone wants a "starting point".  It's part of a "larger system" I'll
probably never finish.  It's pretty simple, amateurish even ... no tests, etc.
Since we know it works for us, didn't figure it was needed.

YMMV, BSD license, include #<disclaimer.h>, etc.

Kevin Kinsey
--
You can observe a lot just by watching.
                -- Yogi Berra
#! /bin/sh

#DEFINE THE FOLLOWING:
  #Csup program
    CSUP="/usr/local/bin/cvsup"
  #Kernel file
    $KERNFILE="$SRCTREE/sys/i386/conf/GENERIC"
  #Log Directory
    LOGDIR="~/buildlogs"
  #Admin's mail address
    MAIL2="[EMAIL PROTECTED]"
  #path to source tree
    SRCTREE="/usr/src"
  #source supfile
    SRC_SUPFILE="/stable-supfile"
  #temp dir
    TMPD="$TMPD"

# More defines
    HOST=`hostname`
    SCRIPT=`realpath $0`
    SCRIPTDIR=`realpath .`
    $MSG="updatemsg.txt"

    echo "$HOST successfully built
a GENERIC kernel plus Firewall,
Divert and Dummynet options. " > $SCRIPTDIR/updatemsg.txt

 # Get to proper wd and update the source tree
    cd $SRCTREE; $CSUP $SRC_SUPFILE > $LOGDIR/src.cvsup 2>&1
 #report and clean up
    echo "$HOST cvsup script reporting" > $TMPD/buildlogfoo
    echo "\n" >> $TMPD/buildlogfoo
    tail $LOGDIR/src.cvsup >> $TMPD/buildlogfoo
    cat $TMPD/buildlogfoo | mail -s "Server Report $HOST CVSup" $MAIL2
    rm $TMPD/buildlogfoo
 
 # Next step: build the world
    make buildworld > $LOGDIR/buildworld 2>&1
 
 # report and clean up
    echo "$HOST buildworld script reporting" > $TMPD/buildlogfoo
    echo "\n" >> $TMPD/buildlogfoo
    tail $LOGDIR/buildworld >> $TMPD/buildlogfoo
    cat $TMPD/buildlogfoo | mail -s "Server Report $HOST Buildworld" $MAIL2
    rm $TMPD/buildlogfoo
 
 # Set up kernel options for Firewall, Nat, Dummynet
    echo " " >> $KERNFILE
    echo "# added by $SCRIPT " >> $KERNFILE
    echo " " >> $KERNFILE
    echo "options   IPFIREWALL" >> $KERNFILE
    echo "options   IPFIREWALL_VERBOSE_LIMIT=10" >> $KERNFILE
    echo "options   IPDIVERT" >> $KERNFILE
    echo "options   DUMMYNET" >> $KERNFILE
    echo "options   HZ=1000" >> $KERNFILE
    echo " " >> $KERNFILE
  
 # Build the kernel
    make buildkernel > $LOGDIR/kernel 2>&1
    tail $LOGDIR/kernel > $TMPD/kernelfoobuild
    cat $SCRIPTDIR/$MSG $TMPD/kernelfoobuild | mail -s "$HOST Kernel  Build 
Report" $MAIL2
    rm $TMPD/kernelfoobuild
 
 # Install the new kernel
    make installkernel > $LOGDIR/kern.inst 2>&1
    echo "Report on kernel installation from $HOST" >>  $TMPD/kernelinstallfoo
    cat $TMPD/kernelinstallfoo $LOGDIR/kern.inst | mail -s "$HOST kernel  
install report" $MAIL2
    rm $TMPD/kernelinstallfoo 
 
 exit 0;
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to