home | help
slack(8)		     System Manager's Manual			slack(8)

NAME
     slack - Sysadmin's lazy autoconfiguration kit

SYNOPSIS
     slack [option ...] [role ...]

DESCRIPTION
     slack is a master command which coordinates the activities of its backends,
     which variously:

     *	    determine the list of roles to be installed on this server

     *	    create a local cached copy of the role files from the central repos-
	    itory

     *	    merge file trees from subroles into a single, unified tree

     *	    install files onto the local filesystem

     *	    run scripts before and after installation

     Options  you  give  to slack will be generally passed along to the backends
     where relevant.

OPTIONS
     -h, --help
	    Print a usage statement.

     --version
	    Print the version and exit.

     -v, --verbose
	    Increase verbosity.  Can be specified multiple times.

     --quiet
	    Don't be verbose (Overrides previous uses of --verbose).

     -C, --config FILE
	    Use the specfied FILE for  configuration  instead  of  the	default,
	    /etc/slack.conf.

     -s, --source DIR
	    Source directory for slack files

     -e, --rsh COMMAND
	    Remote shell for rsync

     -c, --cache DIR
	    Local cache directory for slack files

     -t, --stage DIR
	    Local staging directory for slack files

     -r, --root DIR
	    Root destination for slack files

     --no-sync
	    Skip  the  slack-sync  step (useful if you're pushing stuff into the
	    CACHE outside slack).

     --no-files
	    Don't install any files in ROOT, but tell rsync  to  print	what  it
	    would do.

     --no-scripts
	    Don't run scripts

     -n, --dry-run
	    Same  as  --no-files  --no-scripts	 (CACHE, STAGE will still be up-
	    dated)

     --role-list
	    Role list for slack-getroles(8).

     -b, --backup
	    Make backups of existing files in ROOT that are  overwritten.   This
	    option defaults to on if it is not set to 0 in a config file or dis-
	    abled with --nobackup on the command line.

     --backup-dir
	    Put backups from the --backup option into this directory.

     -H, --hostname HOST
	    Pretend to be running on HOST, instead of the name given by gethost-
	    name(2).

     --preview MODE
	    Do a diff of scripts and files before running them.  MODE can be one
	    of 'simple' or 'prompt' (See PREVIEW MODES, below).

     --diff PROG
	    Use this diff program for previews.

     --sleep TIME
	    Randomly  sleep  between  1  and TIME seconds before starting opera-
	    tions.  Useful in crontabs.

PREVIEW MODES
     Preview functionality is new in slack 0.14.0.  I haven't quite  worked  out
     how things will work, so this usage is somewhat subject to change in future
     versions.	I thought I would try it this way and see how people like it.

     In 'simple' mode, after syncing and staging the files directory, slack will
     present  a diff of the files and scripts.	In this mode, slack will not run
     the preinstall or fixfiles scripts, and because of  this,	it  may  provide
     some false output about permissions changes to files.

     In 'prompt' mode, after syncing and staging the files directory, slack will
     diff  the	script	directory.  If there are differences, slack will present
     them to you and ask you if you want to continue.  If you say  no,	it  will
     exit.   If you say yes, it will stage the scripts directory, run the prein-
     stall and fixfiles scripts, and then diff the files in the stage with those
     in the root.  If there are differences, slack will present them to you  and
     ask  you if you want to continue.	If you say no, it will exit.  If you say
     yes, it will install the files and run the postinstall script.

     So, the 'simple' mode is easy to use, and will be accurate if you don't use
     fixfiles.	The 'prompt' mode will be accurate if you use fixfiles, but  re-
     quires some interaction.

     Why  can't  we  just have one mode that works with fixfiles and requires no
     interaction?  Well, that would require slack to understand what your  free-
     form  fixfiles  executable was going to do, which would either require some
     kind of universe simulator or would require you to write your fixfiles in a
     less free-form way, which would make slack less like slack.

EXAMPLES
     To install all the roles configured in the role list for a server:
	    slack

     To install a specific role:
	    slack rolename

     To test a new role before checking in the changes:
	    slack --source user@workstation:/home/user/.../slack rolename

     To avoid killing your master server when calling from cron:
	    slack --sleep 3600

FILES
     /etc/slack.conf

SEE ALSO
     slack.conf(5), rsync(1)

Administrative commands 	   2004-10-22				slack(8)

home | help