- Overview
- Setup - The basics of getting started with s3ql
- 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
This is a puppet module to manage s3ql installation, authentication configuration and mounts.
- This module will install 2.x version of s3ql from upstream repositories if you so chose
- It will run a python daemon as the owning user per filesystem mount
- That daemon will connect to the cloud
puppet-s3ql cannot help you setup an S3 or Google Storage account, or take the prerequisite steps to be able to use them as backends.
This first iteration will not support an initial formatting so you'll have to do that, too. It does support creating authinfo files though.
First, let's install it:
# only on Ubuntu:
# apt::ppa { 'ppa:nikratio/s3ql': }
# everywhere:
include s3ql
Next, we can setup our authentication:
s3ql::authinfo { 'gs backend for www-data fluffy bucket':
backend => 'gs',
storage_url => 'gs://fluffy/example',
backend_login => 'oauth2',
backend_password => 'actually a very long and secure oauth token',
fs_passphrase => 'also a very long and very secure passphrase for encrypting this filesystem',
}
And finally, we can mount it:
s3ql_mount { '/srv/web/example/htdocs/uploads':
ensure => 'present',
owner => 'www-data',
group => 'www-data',
storage_url => 'gs://fluffy/example',
}
This class is only responsible for installing the s3ql package
Name of the s3ql package. Default: s3ql
Whether to install or remove, or keep the s3ql package in specific version. Default: present
Maybe some day s3ql will be easily installable via pip
then you can override this parameter. Default: undef
This defined type creates ~/.s3ql/authinfo2
files, storing credentials to the
various backends. It's basically just a very thin wrapper around
ini_setting :)
Whether to add or remove this entry. Default: present
Owner, group and HOME have to be set. HOME should point to the fully-qualified path of ~/.s3ql.
Default: 0
, and /root/.s3ql
Whether to create the user's .s3ql home directory. Default: false
Which backend to configure. Can be gs
, s3
, etc...
The storage-url for which these credentials are valid.
The login and password. For gs
there's a special backend-login
oauth2
which activates OAuth authentication.
The passphrase with which this filesystem is encrypted.
s3ql_mount
creates mount.s3ql mounts. It can be used with puppet resource
.
The path to the mountpoint. Default: name
The storage-url to mount
The backend-login for the specified storage-url. If ommited, it will be read from authfile.
The backend-login for the specified storage-url. If ommited, it will be read from authfile.
The fs-passphrase for the specified storage-url. If ommited, it will be read from authfile.
Additional options passed to mount.s3ql when mounting this filesystem.
The owner this filesytem will belong to. (normalized to uid). Default: 0
The group this filesytem will belong to. (normalized to gid). Default: 0
The fully-qualified path to the ~/.s3ql home dir
This directory will be used cache directory, and as base for the authinfo2 searchpath.
This parameter is not entirely discoverable. It will default to $HOME/.s3ql
,
but this might be wrong for users who have no $HOME
, for instance.
If a mount.s3ql
fails, we'll try to rescue by running fsck.s3ql
. This
flag determines whether to run fsck.s3ql
with --force
. Default: false
Interval in seconds between complete metadata uploads. Set to 0 to disable. Default: 24h. (86400s)
The backend used. This property is read-only.
Given the rather clumsy installation on RHEL (or rather: the lack of package repositories), this module will currently only work properly on:
- Archlinux
- Debian
- FreeBSD
- Gentoo
- OS X
- Ubuntu
If you find a way to install this module painfree under RHEL, I would very happily accept your patch! Please follow our guidlines in CONTRIBUTING.md.