主机规划: mainfests:172.16.13.133 

      master:172.16.13.134 

      slave:172.16.13.135

实现过程:

1、所有主机安装puppet:yum install puppet

2、准备redis主从相关的配置文件:

  为了方便,先在本机安装redis,利用现有的配置文件来生成主从的配置文件

cp /etc/redis.conf /root/manifests/redis/files/redis-master.conf 

cp /etc/redis.conf /root/manifests/redis/files/redis-slave.conf


vim redis-master.conf  修改如下行

  bind 0.0.0.0      #这里为了方便使用配置为0.0.0.0,一般设置为127.0.0.1

  requirepass 123456  #开启密码认证

 

vim redis-slave.conf

  bind 0.0.0.0

  requirepass 123456

  slaveof 172.16.13.134 6379  #指明主服务器的ip及监听端口

  masterauth 123456        #密码


3、编辑清单文件  

vim /root/manifests/redis/redis.pp  #路径可自己控制

class redis {

        package {'redis':           #安装redis

                ensure => installed,

        }

        service {'redis':           #启动redis服务

                ensure => running,

                enable => true,

                hasrestart => true,

                hasstatus => true,

        }

}

class redis::master inherits redis {      #redis-master使用如下source指定的配置文件,redis::master表示继承redis类

        file{'/etc/redis.conf':

                ensure => file,

                source => '/root/redis/files/redis-master.conf',

                owner => 'redis',

                group => 'root',

                mode => 0640,

        }

        Package['redis'] -> File['/etc/redis.conf'] ~>Service['redis']  #定义依赖关系

}

class redis::slave inherits redis {      #redis-slave使用如下source指定的配置文件

        file{'/etc/redis.conf':

                ensure => file,

                source => '/root/redis/files/redis-slave.conf',

                owner => 'redis',

                group => 'root',

                mode => 0640,

        }

        Package['redis'] -> File['/etc/redis.conf'] ~>Service['redis']

}


4、将对应的清单文件以及所需配置文件放到对应主机:

scp -r /root/manifests/redis/ 172.16.13.134:/root/

scp -r /root/manifests/redis/ 172.16.13.135:/root/

 

5、调用与自己角色相关的类:

  在master主机操作:vim /root/redis/redis.pp

  末尾加入如下一行:include redis::master


  

  在slave主机操作:vim /root/redis/redis.pp

  末尾加入如下一行:include redis::slave


6、执行(可以在执行前测试一下:puppet apply -v --noop redis.pp)

 puppet(单机模式)-实现redis主从_第1张图片

 puppet(单机模式)-实现redis主从_第2张图片

 

 在主从上都看一下数据是否同步:

 blob.png 

 blob.png