cookbook 'redis-multi', '= 1.0.0'
redis-multi (2) Versions 1.0.0 Follow1
Redis replication wrapper cookbook
cookbook 'redis-multi', '= 1.0.0', :supermarket
knife supermarket install redis-multi
knife supermarket download redis-multi
redis-multi
Chef wrapper cookbook to create master, slaves, and sentinel redis server
setups. This wrapper should work on all Debian and RHEL platform family OS's.
Utilization
Cookbook works as a wrapper around the community redisio cookbook to allow for
the creation of master/slave and sentinel systems.
The cookbook utilizes three recipes depending on the server's role.
default.rb
: calls upstream rediosio::default
enable.rb
: calls upstream redisio::enable
master.rb
: sets up a redis server and init script with master in name
slave.rb
: sets up a slave redis server pointing to the master node
definded within attributes.
Search will look for the node in the same environment with the tag
redis_master
and set slaveof replication to that node. If you do not want to
use search, create the master node first before bootstrapping, and set the
attribute ['redis-multi']['master']
with the correct IP.
slave.rb
: sets up a slave redis server pointing to the master node
definded within attributes.
Search will be used in the same fashion as the redis_slave.rb
recipe above (
they share the _find_master.rb
functionality.)
Note that find_all.rb
is included here as a recipe. This is done in case a
wrapper cookbook wants to find all redis nodes for iptables or some other
purpose.
Attributes
default['redis-multi']['master'] = nil
Used to identify a master IP address.
This value will be populated after first run using search and a redis_master
tag.
default['redis-multi']['slaves'] = %w()
Used to hold a list of slave IP
addresses that is populated through search and a redis_slave
tag.
** Note that the two settings below only apply if you don't define your own
node[redisio]
instances of redis (if you call the recipe without doing that,
these ports will be used as the defaults for new instances)
default['redis-multi']['bind_port'] = 6379
Used for the port for masters,
slaves, and sentinels. Right now, this must be the same everywhere. To override
ports, and make them different on different nodes, you will have to use upstream
directly.
default['redis-multi']['sentinel_port'] = 46379
Used to specify an alternate
default port for sentinel instances.
License & Authors
- Author:: Martin Smith (martin.smith@rackspace.com)
This cookbook was structured and heavily borrowed inspiration from mysql-multi.
Copyright:: 2014 Rackspace US, 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.
redis-multi Cookbook CHANGELOG
This file is used to list changes made in each version of the redis-multi
cookbook.
v1.0.0 (2014-07-30)
- Breaking change: this cookbook no longer calls the redisio::enable or
redisio::default recipes directly, but provides wrappers like
redis-multi::enable and redis-multi::default instead. You must now call them
separately. This allows downstream users to set
node['redisio']
directly after taking advantage of redis-multi.`
v0.1.0 (2014-07-29)
- Remove redis_ from recipe names (cleaner to see, e.g. redis-multi::foo)
- Fix some rubocop and foodcritic complaints
- _find_all.rb becomes public, renamed to find_all.rb
- Added default attribute for sentinel port number
- Ensure chef-solo usage doesn't fatal out
v0.0.1 (2014-07-28)
- Initial import.