cd /puppet/soft
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
mkdir -p /etc/puppet/modules/linuxredis/{manifests,files,templates}
vi /etc/puppet/modules/linuxredis/templates/redis-3.2.11.conf.erb
bind 0.0.0.0
protected-mode yes
port <%= real_redis_port %>
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_<%= real_redis_port %>.pid
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
写启动脚本
vim /puppet/soft/redis-3.2.11.sh
!/bin/bash
chkconfig:2345 93 63
description:redis star stop
. /etc/rc.d/init.d/functions
servicename=/data/redis-3.2.11/src/redis-server
serviceconfig=/data/redis-3.2.11/redis.conf
if [ ! -f $servicename ];then
exit 6;
fi
if [ ! -f $serviceconfig ];then
exit 7;
fi
case servicename servicename servicename"|grep -Ev "grep|color"|wc -l`
if [ 0 {start|stop|restart|status}"
exit 2
esac
exit $?
vi /etc/puppet/modules/linuxredis/manifests/init.pp
class linuxredis::redis3211 {
redis_port ? {'' => '6379',default => $redis_port }
exec {"/data":
command => "mkdir /data",
creates => "/data",
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
}
file {"/data/redis-3.2.11.tar.gz":
source => "puppet:///soft/redis-3.2.11.tar.gz",
ensure => file,
mode => 755,owner => root,group => root,
require => [Exec["/data"],File["/etc/init.d/redis-server"]],
notify => Exec["tar redis-3.2.11.tar.gz"],
}
file {"/etc/init.d/redis-server":
source => "puppet:///soft/redis-3.2.11.sh",
ensure => file,
mode => 755,owner => root,group => root,
}
exec {"tar redis-3.2.11.tar.gz":
command => "tar zxvf redis-3.2.11.tar.gz && cd redis-3.2.11 && make && cd src && make install",
cwd => "/data",
refreshonly => true,
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
notify => Exec["firewallredisport"],
}
exec {"firewallredisport":
command => "firewall-cmd --add-port=$real_redis_port/tcp --permanent && firewall-cmd --reload",
path => ["/usr/sbin","/usr/bin","/bin","/sbin"],
refreshonly => true,
}
file {'/data/redis-3.2.11/redis.conf':
ensure => file,
mode => 755,owner => root,group => root,
content => template("/etc/puppet/modules/linuxredis/templates/redis-3.2.11.conf.erb"),
backup => '.bak',
notify => [Service["redis-server"],Exec["firewallredisport"]],
require => Exec["tar redis-3.2.11.tar.gz"],
}
service {"redis-server":
ensure => running,
hasrestart => true,
provider => init,
start => "/etc/init.d/redis-server start",
stop => "/etc/init.d/redis-server stop",
restart => "/etc/init.d/redis-server restart",
status => "/etc/init.d/redis-server status",
}
}
调用
node 'huangat-test' {
$real_redis_port =
include linuxredis::redis3211
}