- 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 OS X Software Update Server.
This module sets up syncing of OS X updates through reposado, and, optionally, an Apache Vhost to allow for replication of those updates.
- Make sure
base_diris large enough to be able to hold all updates (my server is currently holding 232 Gb worth of updates). reposado::apache_vhostincludespuppetlabs/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::git_ensure: 'latest'
reposado::apple_catalogs:
- '10.10'
- '10.11'
reposado::apache_vhost::document_root: "%{hiera('reposado::base_dir')}/html"
reposado::apache_vhost::apple_catalogs:
- '10.10'
- '10.11'
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. The git repository is cloned into 'base_dir/reposado', Reposado's metadata is in 'base_dir/metadata', and its document root is 'base_dir/html'. Default: '/srv/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]'. Default: '[0, 30]'.
The cron job command to run. Default: '/srv/reposado/reposado/code/repo_sync'. If you would like to remove deprecated updates by default, set this to 'base_dir/reposado/code/repo_sync && base_dir/reposado/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 'git' package. Default: false.
Whether puppet should manage the sync cron job. Default: true.
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 replicate all available updates. The operaying system names can be either the OS X 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.
The user that owns the document root. Default: 'reposado'.
All files in the document root belong to this group. Default: 'reposado'.
Path to the document root. Default: '/src/reposado/html'.
Name of the server. Default: 'hostname.domain'.
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 replicate all available updates. The operaying system names can be either the OS X 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 only.
First release, no fancy options yet.