Puppet Redis

Build status

Build Status

Example usage

Standalone

class { 'redis':;
}

Master node

class { 'redis':
  bind        => '10.0.1.1';
  #masterauth  => 'secret';
}

Slave node

class { 'redis':
  bind        => '10.0.1.2',
  slaveof     => '10.0.1.1 6379';
  #masterauth  => 'secret';
}

Redis 3.0 Clustering

class { 'redis':
  bind                 => '10.0.1.2',
  appendonly           => true,
  cluster_enabled      => true,
  cluster_config_file  => 'nodes.conf',
  cluster_node_timeout => 5000,
}

Manage repositories

Disabled by default but if you really want the module to manage the required repositories you can use this snippet:

class { 'redis':
  manage_repo => true,
}

On Ubuntu, "chris-lea/redis-server" ppa repo will be added. You can change it by using ppa_repo parameter:

class { 'redis':
  manage_repo => true,
  ppa_repo    => 'ppa:rwky/redis',
}

Redis Sentinel

Optionally install and configuration a redis-sentinel server.

With default settings:

class { 'redis::sentinel':}

With adjustments:

class { 'redis::sentinel':
  master_name => 'cow',
  redis_host  => '192.168.1.5',
  failover_timeout => 30000,
}

Unit testing

Plain RSpec:

$ rake spec

Using bundle:

$ bundle exec rake spec

Test against a specific Puppet or Facter version:

$ PUPPET_VERSION=3.2.1  bundle update && bundle exec rake spec
$ PUPPET_VERSION=2.7.19 bundle update && bundle exec rake spec
$ FACTER_VERSION=1.6.8  bundle update && bundle exec rake spec

Contributing

  • Fork it
  • Create a feature branch (git checkout -b my-new-feature)
  • Run rspec tests (bundle exec rake spec)
  • Commit your changes (git commit -am 'Added some feature')
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request