puppet(单机模式)-基于模块方式实现redis主从

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

说明:puppet模块存放位置有固定要求,不过为了实验方便,先建一个临时目录来存放,当配置完成后移动到指定目录。

实现步骤:

1、实现如下目录结构

[root@manifests modules]# tree ~/modules

~/modules

└── redis

     ├── files

     │    └── redis-master.conf

     ├── lib

     ├── manifests

     │    ├── init.pp

     │    ├── master.pp

     │    └── slave.pp

     ├── spec

     ├── templates

     │    └── redis-slave.conf.erb

     └── tests

mkdir -pv modules/redis/{manifests,files,templates,tests,lib,spec}

files以及templates文件夹下的文件内容大致同默认的配置文件,只是修改模板文件的slaveof指向master主机


2、编辑所需的清单文件

vim manifests/init.pp

   class redis {

        package {'redis':

                ensure => installed,

        }

        service {'redis':

                ensure => running,

                enable => true,

                hasrestart => true,

                hasstatus => true,

        }

}

 

vim manifests/master.pp

    class redis::master inherits redis {

        file{'/etc/redis.conf':

                ensure => file,

                source => 'puppet:///modules/redis/redis-master.conf',

                owner => 'redis',

                group => 'root',

                mode => 0640,

        }

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

}

 

vim manifests/slave.pp

    class redis::slave($master_ip,$master_port='6379') inherits redis {

        file{'/etc/redis.conf':

                ensure => file,

                content => template('redis/redis-slave.conf.erb'),

                owner => 'redis',

                group => 'root',

                mode => 0640,

        }

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

}

 

3、将模块移动到指定的位置

cp -r redis/ /etc/puppet/module/

查看模块有哪些

puppet module list

blob.png 

测试查看:-e指明调用的代码

puppet apply -v --noop -e "include redis"

puppet apply -v --noop -e "include redis::master"

puppet apply -v --noop -e "include redis::slave"  由于slave中使用了参数,所以include调用会报错,应该使用下面的命令

puppet apply -v --noop -e "class{'redis::slave': master_ip => '172.16.13.134'}"

如果多个参数,那么逗号隔开即可。也可以编辑一个.pp文件来调用redis::slave类而不使用命令行测试

vim ~/manifests/redis3.pp

   class{'redis::slave':

        master_ip => '172.16.13.134',

   }

执行:puppet apply -v redis3.pp















本文转自lc0108131451CTO博客,原文链接:http://blog.51cto.com/13150617/2053837 ,如需转载请自行联系原作者


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
Kubernetes NoSQL Redis
k8s快速部署Redis单机
k8s快速部署Redis单机
|
5月前
|
NoSQL Java Redis
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
100 0
|
1月前
|
消息中间件 NoSQL Redis
【赵渝强老师】Redis消息的生产者消费者模式
消息队列在Redis中可通过List数据结构实现,支持发布者订阅者和生产者消费者两种模式。生产者通过`lpush`向List添加消息,消费者通过`rpop`或`brpop`消费消息,后者支持阻塞等待。示例代码展示了如何使用Redis的生产者消费者模式。
|
1月前
|
NoSQL Java Redis
springCloud中将redis共用到common模块
通过将Redis配置和操作服务提取到Common模块,可以在Spring Cloud微服务架构中实现高效的代码复用和统一管理。这种设计不仅简化了各个服务的配置和依赖管理,还提高了代码的可维护性和可读性。希望本文对你在Spring Cloud项目中集成和使用Redis有所帮助。
57 0
|
2月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
73 4
|
2月前
|
SQL 分布式计算 NoSQL
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
26 2
|
2月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
70 1
|
2月前
|
NoSQL API Redis
如何使用 C++ 开发 Redis 模块
如何使用 C++ 开发 Redis 模块
|
3月前
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
87 2
|
2月前
|
缓存 NoSQL 关系型数据库
单机版Redis
【10月更文挑战第3天】
41 0

推荐镜像

更多