Skip to content
Joseph Chilcote edited this page Mar 19, 2016 · 15 revisions

##Introduction to Outset

Outset is a script which automatically processes packages, profiles, and scripts during the boot sequence, user logins, or on demand.

###Requirements

  • python 2.7+
  • It's only been tested on 10.9.x and above

###Usage

Outset is meant to be triggered by launchd so there is no interactive mode as such. The --boot mode is triggered by a LaunchDaemon and therefore will be run as root. The --login mode is triggered by a LaunchAgent, so it is running in the context of the user logging in.

For testing purposes, one could manually invoke the command:

sudo /usr/local/bin/outset/outset --boot
/usr/local/bin/outset/outset --login

Outset is controlled by four launchd plists:

/Library/LaunchDaemons/com.github.outset.boot.plist
/Library/LaunchDaemons/com.github.outset.cleanup.plist
/Library/LaunchAgents/com.github.outset.login.plist
/Library/LaunchAgents/com.github.outset.on-demand.plist

The boot LaunchDaemon runs packages, profiles, and scripts during the boot sequence, and will either run once, or at every subsequent boot, depending on the directory in which the files are placed:

/usr/local/outset/boot-once/
/usr/local/outset/boot-every/

The login LaunchAgent runs any scripts or profiles during user login, and will run either once, or at every subsequent login, depending on the directory in which the files are placed:

/usr/local/outset/login-once/
/usr/local/outset/login-every/

The on-demand LaunchAgent runs scripts or profiles from the following directory immediately, in the user context, for any currently logged in user (for those using Fast User Switching, it will only run in the current GUI session, and will not run in any background sessions):

/usr/local/outset/on-demand/

(Note: on-demand scripts will be immediately removed and thus will not run during subsequent logins)

####Logging Outset logs to standard out and to two different log files, depending on the context in which the script is being run (root or user):

/var/log/outset.log
~/Library/Logs/outset.log

###Deploy Download the latest release or alternatively use the included Makefile to create a package with make pkg. You can use the provided installer package in your AutoDMG workflow, or it can be deployed by a management suite such as Munki or Casper.

The launchd items are automatically invoked, so be aware that any existing scripts in the working directories will be run in their expected context. Be sure to test if you are deploying Outset to live systems.

###Customize Use the included custom-outset directories to package up your custom packages, profiles, and scripts to be run by Outset. Replace or remove the example scripts in the corresponding directories with your packages, profiles, or scripts, then change directories to custom-outset and use the included Makefile to package up your files:

cd ./custom-outset
make pkg