puppet-yas3fs
Table of Contents
- Overview
- Module Description
- Setup - The basics of getting started with yas3fs
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
Overview
The yas3fs module installs yas3fs, and provides a way to manage S3 mounts.
Module Description
yas3fs is a python tool used to mount S3 buckets using fuse. yas3fs provides caching, as well as a mechanism for invalidating caches on other nodes using SQS and SNS.
Setup
What yas3fs affects
- fuse package and configuration
- init jobs (sysvinit, upstart or systemd) that are used to manage yas3fs mounts
- python-pip package (optional)
Beginning with yas3fs
To install fuse, python-pip, and yas3fs
class { 'yas3fs': }
If you'd rather provide pip though some other means, set
install_pip_package
to false
:
class { 'yas3fs':
install_pip_package => false,
}
Usage
Classes and Defined Types
yas3fs
Class: The primary module. By default, fuse, python-pip, and yas3fs are installed and configured.
Parameters within yas3fs
install_pip_package
When set to true, the python-pip package is installed. If the parameter is false then the pip command should be provided by some other means or yas3fs will not be installed.
init_system
Defines the type of init script/configuration to install out of upstart
,
systemd
or sysvinit
. If the parameter is unset, autodiscovery takes place.
mounts
A hash of mounts can be passed (possibly from hiera) as part of the class declaration.
class { 'yas3fs':
mounts => {
'example-mount' => {
's3_url' => 's3://example-bucket/',
'local_path' => '/media/s3',
}
}
}
yas3fs::mount
Defined Type: Mounts a bucket/path using fuse by creating an init job.
yas3fs::mount { 'example-mount':
s3_url => 's3://example-bucket/',
local_path => '/media/s3',
options => [
'recheck-s3',
'uid 1000',
'gid 1000',
]
}
Parameters within yas3fs::mount
ensure
Control what to do with this mount. Valid values are mounted
(default), unmounted
, absent
,
and present
.
WARNING: setting ensure to absent
removes the service configuration, but cannot
verify that the service is stopped.
s3_url
The S3 URL that should be mounted (e.g. s3://my-bucket/my-path)
local_path
The location where the S3 bucket should be mounted.
aws_access_key_id
and aws_secret_access_key
The credentials to use when connecting to AWS. Credentials can be omitted on EC2 instances with appropriate IAM roles assigned.
options
An array of command line arguments that should be passed to yas3fs. The leading dashes can be omitted. A full list of options is in the yas3fs documentation.
Reference
Classes
Public Classes
-
yas3fs
: Guides the install of yas3fs
Private Classes
-
yas3fs::config
: Manages the fuse configuration -
yas3fs::package
: Installs pip, fuse, and yas3fs -
yas3fs::params
: Manages base parameters
Defined Types
Public Defined Types
-
yas3fs::mount
: Manages a single yas3fs mount
Limitations
yas3fs is written for python 2.6, though there has been a lot of success running it on 2.7.