This module manages the 2.x versions of the Riak distributed key-value store.
Riak is an open source, distributed database that focuses on high availability, horizontal scalability, and predictable latency.
This repository is community supported. We both appreciate and need your contribution to keep it stable. For more on how to contribute, take a look at the contribution process.
This module installs the apt or yum repository, installs riak, and starts the riak service. This is a very basic module, and does not manage clusters, help rotate logs, backups, etc. It only manages the riak.conf file, not advanced.config (yet).
Thank you for being part of the community! We love you for it.
This module requires Puppet 3.7 and future parser. See the limitations section for more details on supported platforms.
This module is not yet published on Puppet Forge, so you should install it from the git repository using r10k.
The most basic use case is to simply install riak with default settings:
include ::riak
A slightly more interesting configuration will look something like the following, which has some defaults included for the sake of documentation.
class { '::riak':
package_name => 'riak', # default
service_name => 'riak', # default
manage_package => true, # default
manage_repo => true, # default
version => 'latest', # default, use a package version if desired
# settings in the settings hash are written directly to settings.conf.
settings => {
'log.syslog' => 'on',
'erlang.schedulers.force_wakeup_interval' => '500',
'erlang.schedulers.compaction_of_load' => false,
'buckets.default.last_write_wins' => true,
},
}
A configuration with custom performance tuning.
Increase the per-user open files limit (ulimits):
class { '::riak':
ulimits_nofile_soft => 88536,
ulimits_nofile_hard => 98536,
}
The following parameters are available in the ::riak
class:
package_name
Name of the Riak package to install.
Default: riak
service_name
Name of the Riak service.
Default: riak
manage_package
Whether to install the Riak package.
Default: true
manage_repo
Whether to setup and enable the remote yum or apt package repos from which Riak will be installed. The repo is hosted at packagecloud.io. If you set this to false
the Riak packages will need to be present in your existing package repos.
Default: true
version
The version of Riak to manage. Set the package version if desired.
Default: present
(Setting to latest could result in unplanned upgrades.)
ulimits_nofile_soft
Set per-user open files soft limit in /etc/security/limits.conf
Default: 65536
ulimits_nofile_hard
Set per-user open files hard limit in /etc/security/limits.conf
Default: 65536
This module is only expected to work with:
Although some functionality may work without all of those, you shouldn't count on it to continue working.
This module has been tested with Puppet 3.7 on Debian Wheezy, Ubuntu 12.04, Ubuntu 14.04, CentOS 6, and CentOS 7 using Beaker integration tests. However, there is no ongoing Beaker CI coverage, so only tagged releases have been tested using Beaker.
A few caveats:
warning The Riak RPMs distributed by Basho are not GPG signed. To work around this, the module disabled GPG verification in that Yum repository. The apt packages are signed, so this only applies to EL platforms.
Basho Labs repos survive because of community contribution. This module has extensive test coverage in order to make contributing easier. Please read CONTRIBUTING.md for details.
You can read the full guidelines for bug reporting and code contributions on the Riak Docs. And thank you! Your contribution is incredible important to us.
Copyright (c) 2015 Basho Technologies, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.