Forge Home

timecapsule

Puppet module for an open time capsule / time machine backup server working with latest Mac OSX Yosemite client for EL7, Fedora 20.

10,286 downloads

9,366 latest version

3.1 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 1.0.2 (latest)
  • 1.0.1
  • 1.0.0
  • 0.1.0
released Feb 25th 2015
This version is compatible with:
  • Puppet Enterprise >= 3.3.0 < 4.0.0
  • Puppet >= 3.0.0 < 4.0.0
  • , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'swizzley88-timecapsule', '1.0.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add swizzley88-timecapsule
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install swizzley88-timecapsule --version 1.0.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

swizzley88/timecapsule — version 1.0.2 Feb 25th 2015

timecapsule

Table of Contents

  1. Overview
  2. Module Description
  3. Setup
  4. Usage
  5. Troubleshooting
  6. Requirements
  7. Compatibility
  8. Limitations
  9. Development

Overview

This is the timecapsule module. It provides an open-source "Time Capsule" to be used for OSX automated backups via the "Time Machine".

Module Description

The timecapsule module turns your Redhat based system into a Time Machine server. It depends on netatalk 2.2.3 rpm which is included by in the fedora repo but not in EPEL or BASE of RHEL/CentOS. Therefore an external mirror is used to download the package (netatalk-2.2.3-9.fc20) for CentOS/RHEL systems.

Setup

Presumptions

The timecapsule module requires layer 2 connectivity from your Mac to your time capsule server for announcements. Your timecapsule server will need to be able to access the web to download the required packages, and this module assumes you are not using a proxy, if you are, you will need to configure that manually.

Credentials

Even if you prefer to use another user/group than 'timecapsule', you still want to set the $password to something to use from you mac, or just use 'timecapsule'. In order to set your password hash to be managed, use the following command:

openssl passwd -crypt "secretPassword"

Usage

Server

include timecapsule
class timecapsule::params{
$user = 'timecapsule'
$password = '5XjeYxRW0bohs' #this equals "timecapsule" 
$group = 'timecapsule'
$mount = '/mnt/timecapsule'
}

Client

Open up Time Machine from Settings and flip it on, you will see the hostname of your timecapsule server appear and the disk icon, select it, and voila.

Considerations

If you use a spacewalk or satellite server for package management, or just plain don't want to enable the whole repo because you want to download and install the requirements manually for some reason, then just disable the $use_epel in params.

class timecapsule::params{
  $use_epel = true
}

Troubleshooting

selinux

selinux was completely ignored, so maybe start there... setenfoce 0

Mac

  1. Close "settings" on your Mac and re-open it for Time Machine to rescan/listen.
  2. Open finder and you should see your server, click it. If you're logged in as a different user than $user, or the password on your mac is different than $password, then you will need to type them in once manually.
  3. Open the mount in finder. You should see your $mount directory.

If you are connecting through finder, but Time Machine still doesn't find your server, then bounce the netatalk service a couple times on the server.

[root@timecapsule]# /usr/bin/systemctl stop netatalk.service
[root@timecapsule]# /usr/bin/systemctl start netatalk.service

Notes

Your mounts to the time capsule will drop if your Mac goes to sleep, which can cause backup failures. I reccomend a couple of things to combat this issue.

  1. By installing caffeine. Linked here: https://itunes.apple.com/us/app/caffeine/id411246225?mt=12#
  2. Ensure $mount is not a symlink, but an actual mount point with enough space to backup to, because puppet will ensure it is a directory.
  3. If you intend to use a remote mount point, I advise you add the mount parameters to init.pp first, and ensure => mounted

Requirements

puppetlabs/stdlib >= 4.2.0

puppetlabs/firewall >= 1.1.3

Compatibility

  • RHEL 7
  • CentOS 7
  • Fedora 20

Limitations

This module has been tested on:

Server:

  • Fedora 20
  • CentOS 7

Client:

  • OSX 10.10.2 (Yosemite)

This module should work on:

Server:

  • Fedora 21
  • CentOS 7.1
  • RHEL Server 7.x
  • RHEL Client 7.x
  • RHEL Workstation 7.x

Client:

  • OSX 10.10.x (Yosemite)
  • OSX 10.9.x (Maverics)
  • OSX 10.8.x (Mountain Lion)
  • OSX 10.7.x (Lion)
  • OSX 10.6.x (Snow Leopard)
  • OSX 10.5.x (Leopard)

Development

Any updates or contibutions are welcome.

Report any issues with current release, as any input will be considered valuable.

TODO

  • Add support for Debian operating system family
  • Add support for netatalk >= 3.0.0
  • Add selinux support
  • Add configurable options for additional apple shares
Contact

Email: morgan@aspendenver.org

WWW: www.aspendenver.org

Github: https://github.com/swizzley