- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with reposado
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Installs Greg Neagle's Reposado (https://github.com/wdas/reposado) on an Ubuntu server. Reposado is an open-source macOS Software Update Server.
This module sets up syncing of macOS updates through Reposado, and, optionally, an Apache vhost to allow for replication of those updates.
- Make sure
base_dir
is large enough to be able to hold all updates (my server is currently holding 232 Gb worth of updates). reposado::apache_vhost
includespuppetlabs/apache
.
Minimal usage:
class { 'reposado': }
If you wish to enable the Apache vhost, you need to include the reposado::apache_vhost
class:
class { 'reposado::apache_vhost': }
Example configuration through hiera:
reposado::base_dir: '/var/www/reposado'
reposado::document_root: "%{hiera('reposado::base_dir')}/html"
reposado::git_ensure: 'latest'
reposado::apple_catalogs:
- '10.10'
- '10.11'
reposado::apache_vhost::document_root: "%{alias('reposado::document_root')}"
reposado::apache_vhost::apple_catalogs: "%{alias('reposado::apple_catalogs')}"
The module uses puppetlabs/vcsrepo
to clone https://github.com/wdas/reposado.
The reposado
class takes the following:
The user that owns the Reposado files, both installed and downloaded, and runs the cron job. Default: 'reposado'.
All reposado files belong to this group. Default: 'reposado'.
The directory that holds all Reposado related files and directories. Default: '/srv/reposado'.
The directory where all the downloads are cached, and that serves as document root for the webserver. Default 'base_dir
/html'
The directory wherre reposado stores its metadata. Default 'base_dir
/metadata'
The directory the reposado git repository is cloned to. Default 'base_dir
/reposado'
The git repository to clone Reposado from. Default: 'https://github.com/wdas/reposado'
How to clone the git repository. 'latest' keeps up with the latest revision, 'present' clones the repository, but does not keep up with the latest revision. Default: 'present'.
Which revision to clone from the git repository. Default: undef (i.e. the HEAD revision).
The time to run the sync cron job. Format: 'HH:MM', you can omit a leading '0' in 'HH'. Default: '0:30'.
The cron job command to run. Default: 'reposado_root
/code/repo_sync'. If you would like to remove deprecated updates by default, set this to 'reposado_root
/code/repo_sync && reposado_root
/code/repoutil --purge-product all-deprecated', for example.
Name of the server. Default: 'hostname
.domain
'.
Whether puppet should manage user
. Default: true.
Whether puppet should manage group
. Default: true.
Whether puppet should manage the sync cron job. Default: true.
Packages that need to be installed by this module. Default: '['git', 'curl', 'python']'.
An array of operating system names, that specifies the Apple SUS catalog URLs to replicate. If left empty, this module follows the Reposado default, and replicates all available updates. The operating system names can be either the macOS version (e.g. '10.8', '10.10'), or its name (e.g. 'mountainlion', 'yosemite'). Names are lowercase, and without separating blanks, if more than one word. Default: '[]'.
Value of the 'AdditionalCurlOptions' key in Reposado's Preferences.plist configuration file. Default: '[]'.
Value of the 'PreferredLocalizations' key in Reposado's Preferences.plist configuration file. Default: '[]'.
Value of the 'CurlPath' key in Reposado's Preferences.plist configuration file. Default: undef.
Value of the 'RepoSyncLogFile' key in Reposado's Preferences.plist configuration file. Default: undef.
Value of the 'HumanReadableSizes' key in Reposado's Preferences.plist configuration file. Boolean, defaults to false.
The user that owns the document root. Default: 'reposado'.
All files in the document root belong to this group. Default: 'reposado'.
The directory that holds all Reposado related files and directories. Default: '/srv/reposado'.
Path to the document root. Default: 'base_dir
/html'.
Name of the server. Default: 'hostname
.domain
'.
Apache port for this vhost.
An array of operating system names, that specifies the Apple SUS catalog URLs to replicate. If left empty, this module follows the Reposado default, and replicates all available updates. The operating system names can be either the macOS version (e.g. '10.8', '10.10'), or its name (e.g. 'mountainlion', 'yosemite'). Names are lowercase, and without separating blanks, if more than one word. Default: '[]'.
Currently tested on Ubuntu 14.04 and 16.04 only.
Run rake spec
to run all tests.