Home
Name Modified Size InfoDownloads / Week
distpull.tar.gz 2010-01-05 21.9 kB
README 2009-11-24 5.1 kB
INSTALL 2009-11-23 1.7 kB
Totals: 3 Items   28.7 kB 0
Specification and Goal

1.  To provide for software updates to a large number of local and remote systems in a safe manner.  
2.  To provide the ability to rollback a software distribution.
3.  To allow safe distributions and upgrade of remote systems, some/all of which may not be online at any specific time.
4.  To allow for the distribution of software at or after a specified time

Limitations

1.  When adding files to a distribution, only one server distribution and/or
    one client distribution can be worked on at the same time.
2.  The NFS exports need to be identical on all servers
    
Requirements

1.  Bash
2.  The system requires NFS access between the systems.  In the future the
    may be the ability to use ftp, sftp, or scp to transfer files.
3.  The "dialog" command for use by the installer.  This is available
    as part of any recent distribution.  If it is not installed, then it
    may be available as part of your distribution.  The following lines
    give the command needed to install the package for some popular 
    distributions:
    
        Fedora              yum install dialog
        CentOS              yum install dialog
        RedHat (untested)   yum install dialog
        Ubuntu              apt-get install dialog
        Debian (untested)   apt-get install dialog
        
    If it isn't available in this manner, you can get the source from:

        ftp://ftp.us.debian.org/debian/pool/main/d/dialog/dialog_1.1-20080819.orig.tar.gz


Commands

distadd     Add files and/or directories to a distribution.  Files are not
            distributed until committed
distcommit  Commit files to distribution
distclean   Erase added files from distribution.  Currently will only
            erase either all files for a server list or all files for
            a client list
distpulld   Daemon which runs on secondary servers and clients.  This
            daemon actually pulls files in from the distribution server
distls      Provides a tree view of all files/directories in current distribution
distrollback Rolls back the last distribution for the specified distribution
distupdate  Updates the distpull software on remote systems.
disttest.sh Set of tests to validate proper functioning of the system

While each command takes different sets of parameters, the parameters
themselves are identical between all the commands.

All commands will be described first, and then all the parameters will be
defined.

Parameters for each command are as follows:

The distadd command can be called two different ways;  either to install
files on clients, or to send files to secondary servers for installation
on clients of those servers.



For both distadd and distcommit, you can use either -i or -s.  The scripts will figure out whether it is a client
or a server distribution list based on the name of the list.

To install files on clients:

    distadd -i [client distribution list] -f [source file/directory] -p [full path to destination] [-y]

To install files on secondary servers:

    distadd -s [server distribution list] -f [source file/directory] -p [full path to destination] -r [remote distribution list] [-y]

To commit files for distribution to clients:

    distcommit -i [client distribution list] [-y]
    
To commit files for distribution to secondary servers:

    distcommit -s [server distribution list] [ -d [install date]] [-t [install time]]
    
To erase files added but not yet committed:

    distclean -i [client distribution list]
        or
    distclean -s [server distribution list]
    
In a crontab on each remote server/client:

    distpulld
    
To list all files currently waiting for commit:

    distls -i [client distribution list]
    distls -s [server distribution list]

To roll back the last distribution made:

    distrollback -i [client distribution list]
    distrollback -s [server distribution list]
    
To install an update to the distpull software

    distupdate   -i [client distribution list]
    distupdate   -s [server distribution list]

Parameter Definitions

client distribution list    A list of clients in the configuration file
server distribution list    A list of servers in the configuration file
remote distribution list    The name of a client distribution list on a secondary server
full path to destination    The final destination of the files
-y                          Don't prompt, just do it.

The following two parameters are used in the distcommit command only.  if
either one (or both) are not specified, then the current date/time is used.
If a future date is specified and no time is specified, then 00:01:00 is 
used for the time.

install date                Distribute files on or after this date
install time                Distribute files on or after this time





Problems and solutions

A secondary server is working, but it's clients aren't pulling the files
    Make sure the IGNORECASE option is identical on both systems.  Otherwise
    if a system name has a capitol letter the client won't see the directory
    properly
Source: README, updated 2009-11-24