Skip to content
This repository has been archived by the owner on Sep 20, 2018. It is now read-only.

+ Adding Debian 6 and 7. #5

Merged
merged 3 commits into from
Jan 7, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ A puppet module for managing one or more memcached instances on Ubuntu and CentO

## Description
This module installs and manages one or more memcached instances through defined types.
It has been tested under Ubuntu 12.04 and CentOS 6.4 .
It has been tested under Debian 6 and 7, Ubuntu 12.04 and CentOS 6.4.
For other Operating Systems, the defined type [memcached::instance](#memcachedinstance) may not work.
This module also manages the port permissions for memcached in SElinux.

Expand Down
47 changes: 24 additions & 23 deletions manifests/init.pp
Original file line number Diff line number Diff line change
@@ -1,73 +1,74 @@
class memcached (
$enabled = true,
$port = 11211,
$listen = "127.0.0.1",
$size = "64",
$listen = '127.0.0.1',
$size = '64',
$conn = 1024,
$user = $::operatingsystem ? {
centos => "memcached",
ubuntu => "memcache",
'centos' => 'memcached',
'ubuntu' => 'memcache',
'debian' => 'nobody',
},

) {

validate_bool($enabled)

case $::operatingsystem {
centos: {
file { "/etc/sysconfig/memcached":
'centos': {
file { '/etc/sysconfig/memcached':
ensure => file,
owner => 'root',
group => 'root',
mode => 0644,
content => template("memcached/sysconfig_memcached.erb"),
mode => '0644',
content => template('memcached/sysconfig_memcached.erb'),
notify => Service['memcached'],
}
package { "policycoreutils-python":
package { 'policycoreutils-python':
ensure => installed,
}
}

ubuntu: {
file { "/etc/memcached.conf":
'debian', 'ubuntu': {
file { '/etc/memcached.conf':
ensure => file,
owner => 'root',
group => 'root',
mode => 0644,
content => template("memcached/memcached.conf.erb"),
mode => '0644',
content => template('memcached/memcached.conf.erb'),
notify => Service['memcached'],
}
file { "/etc/default/memcached":
file { '/etc/default/memcached':
ensure => file,
owner => 'root',
group => 'root',
mode => 0644,
content => template("memcached/default_memcached.erb"),
mode => '0644',
content => template('memcached/default_memcached.erb'),
notify => Service['memcached'],
}
}
}

file { "/etc/init.d/memcached":
file { '/etc/init.d/memcached':
ensure => file,
owner => 'root',
group => 'root',
mode => 755,
mode => '0755',
source => "puppet:///modules/memcached/init_memcached_${osfamily}",
}

$ensure = $enabled ? {
true => "running",
false => "stopped",
true => 'running',
false => 'stopped',
}

package { "memcached":
package { 'memcached':
ensure => installed,
}

service { "memcached":
service { 'memcached':
ensure => $ensure,
enable => $enabled,
require => File["/etc/init.d/memcached"],
require => File['/etc/init.d/memcached'],
}
}
39 changes: 26 additions & 13 deletions manifests/instance.pp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
define memcached::instance (
$port = undef,
$ensure = 'file',
$user = $memcached::user,
$listen = $memcached::listen,
$size = $memcached::size,
Expand All @@ -9,10 +10,11 @@
include memcached

if $port == undef {
fail("You must at least enter a port number")
fail('You must at least enter a port number')
}

validate_re($port,'^112[0-9]{2}$')
validate_re($ensure,'^present|file|absent$')

# Newer versions of puppet use newer facts; use what we have
if $::lsbmajdistrelease {
Expand All @@ -23,32 +25,43 @@
}

case $::operatingsystem {
centos: {
if $major_release < 6 { fail("CentOS version 5 or lower not supported by this type.")}
'centos': {
if $major_release < 6 { fail('CentOS version 5 or lower not supported by this type.')}
file { "/etc/sysconfig/memcached_${name}":
ensure => file,
ensure => $ensure,
owner => 'root',
group => 'root',
mode => 0644,
content => template("memcached/sysconfig_memcached.erb"),
mode => '0644',
content => template('memcached/sysconfig_memcached.erb'),
notify => Service['memcached'],
}
if $selinux_enforced {
if $selinux_enforced and $ensure != 'absent' {
exec { "enable_selinux_port_${port}":
command => "/bin/echo -e \"port -a -t memcache_port_t -p tcp ${port}\nport -a -t memcache_port_t -p udp ${port}\" | semanage -i -",
unless => "/usr/sbin/semanage port -l | grep memcache_port_t | grep -cw ${port} | grep -q 2",
require => Package["policycoreutils-python"],
require => Package['policycoreutils-python'],
}
}
}
ubuntu: {
if $major_release !~ /^1[234]/ { fail("Ubuntu version 11.10 or lower not supported by this type.")}
'ubuntu': {
if $major_release !~ /^1[234]/ { fail('Ubuntu version 11.10 or lower not supported by this type.')}
file { "/etc/memcached_${name}.conf":
ensure => file,
ensure => $ensure,
owner => 'root',
group => 'root',
mode => 0644,
content => template("memcached/memcached.conf.erb"),
mode => '0644',
content => template('memcached/memcached.conf.erb'),
notify => Service['memcached'],
}
}
'debian': {
if $major_release !~ /^[67]$/ { fail('We do not support this Debian version.')}
file { "/etc/memcached_${name}.conf":
ensure => $ensure,
owner => 'root',
group => 'root',
mode => '0644',
content => template('memcached/memcached.conf.erb'),
notify => Service['memcached'],
}
}
Expand Down