module Blue::Redis

Constants

VERSION

Public Class Methods

included(klass) click to toggle source
# File lib/blue/redis.rb, line 90
def self.included(klass)
  klass.add_role(:redis)
  klass.class_eval do
    recipe :redis
    recipe :redis_monitoring
  end
end

Public Instance Methods

redis(options={}) click to toggle source
# File lib/blue/redis.rb, line 7
def redis(options={})

  version = Blue.config.redis.version rescue '2.6.13'

  package 'wget', :ensure => :installed
  exec 'download redis',
    :command => "wget http://redis.googlecode.com/files/redis-#{version}.tar.gz",
    :require => package('wget'),
    :cwd     => '/usr/local/src',
    :creates => "/usr/local/src/redis-#{version}.tar.gz"
  exec 'untar redis',
    :command => "tar xzvf redis-#{version}.tar.gz",
    :require => exec('download redis'),
    :cwd     => '/usr/local/src',
    :creates => "/usr/local/src/redis-#{version}"
  exec 'compile redis',
    :command => 'make',
    :require => exec('untar redis'),
    :cwd     => "/usr/local/src/redis-#{version}",
    :creates => "/usr/local/src/redis-#{version}/src/redis-server"
  package 'redis-server',
    :ensure   => :absent,
    :provider => :dpkg,
    :require   => exec('compile redis')
  exec 'install redis',
    :command => "sudo make install",
    :timeout => 0,
    :require => package('redis-server'),
    :cwd     => "/usr/local/src/redis-#{version}",
    :unless => "test -f /usr/local/bin/redis-server && /usr/local/bin/redis-server --version | grep 'Redis.*#{version}'"

  group 'redis', :ensure =>:present
  user 'redis',
    :gid => 'redis',
    :comment => 'redis server',
    :home => '/var/lib/redis',
    :shell => '/bin/false',
    :require => group('redis')

  file '/var/lib/redis',
    :ensure => :directory,
    :owner  => 'redis',
    :group  => 'redis',
    :mode   => '755'

  file '/var/log/redis',
    :ensure => :directory,
    :owner  => 'redis',
    :group  => 'redis',
    :mode   => '755'

  file '/var/log/redis/redis-server.log',
    :ensure => :present,
    :owner  => 'redis',
    :group  => 'redis',
    :mode   => '660'

  file '/etc/init.d/redis-server',
    :ensure  => :present,
    :mode    => '755',
    :content => template(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'init.d'), binding)

  file '/etc/redis', :ensure => :directory
  file '/etc/redis/redis.conf',
    :ensure  => :present,
    :mode    => '644',
    :content => template(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'redis.conf.erb'), binding)
end
redis_monitoring() click to toggle source
# File lib/blue/redis.rb, line 76
def redis_monitoring
  if Blue.const_defined?(:Monit)
    file "/etc/monit/conf.d/redis.conf",
      :ensure  => :present,
      :mode    => '700',
      :backup  => false,
      :content => template(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'monit.conf.erb'), binding),
      :notify  => service('monit')

  elsif Blue.const_defined?(:God)
    # Define this yo'self homie.
  end
end