ansible--一键部署redis5.0.5集群及全套脚本

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: ansible--一键部署redis5.0.5集群及全套脚本

640.gif


前两天带着大家写了两个脚本,难度是递增的,可以到公众号脚本命令板块的an脚本中找到相关例子。其中有些配置是都是我们实际生产生活能用到的。今天我们把难度再上一些!源码安装redis5.0.5最新版集群


声明:因为脚本需要反复测试,prot这个变量名写错了到后来才发现,但是全局调用的最多的就还是它。所以不改了。就这样吧


脚本功能:

利用ansible构建三台物理机组成的redis集群,每台物理机上面都有一主一备两个实例,故障自动切换并保证redis相关实例开机自启动。


先说怎么用:


vim /etc/ansible/hosts


波哥配置的是这样:

640.png


咱们项目就是订好了这个端口号,不要变了。因为有个地方我把端口号写死了。

再配置:


vim work_yml/redis.yml

640.jpg


这里面按我的例子写就行了。然后执行


ansible-playbook redis.yml

集群会自动开机启动


手动关机机命令:


ansible redis -m shell -a "sh /opt/redis/redis_cluster/script/shutdown.sh"


手动开机命令:


ansible redis -m shell -a "sh /opt/redis/redis_cluster/script/start.sh"


登录集群

redis-cli -h 192.168.1.117 -p 7000
192.168.1.117:7000> cluster nodes

波哥不容易!江湖规矩:人不走空,点赞或者转发奥!

OK伸手党可以撤离战场!!!

################################################

剩下的继续!上脚本架构图:

640.jpg

系列文章我们就接着之前的篇幅说,有些步骤我直接不讲了。大家可以看到这次波哥创建了很多templates,是的,因为源码安装比较复杂,还有很多脚本都在里面配置。但是看字面的意思大家应该能理解个差不多,这些东西都是干嘛的。

走!跟波哥看看我们的入口文件:

640.jpg


之前我们入口文件内容都比较多,但是这次不一样了,因为我们要做的不是一步就能完成的事,那么我们的入口文件就不做逻辑处理使用,他有两个作用:


第一:启动文件使用。就好比我们要玩游戏,那么桌面上就会给你们创建一个快捷方式。OK,就这个文件就是快捷方式的作用。


第二:全局的参数配置。


上面的参数大家能看懂,不多说了!

入口文件过!


接下来我们去看roles目录的tasks:

上面的目录架构我们看到tasks下面有三个文件,当我们ansible执行playbook的时候,动作就会到tasks目录下面去找,他默认会第一个找main.yml

我们再看看这main.yml是如何写的?

640.png

就这两句,这里就说明task的任务顺序和指定任务文件名奥!

include就是干这个用的。这个就是jinjia2语句,都得记住!

咱们再去看init_env.yml

640.png


内容比较多,这里不多介绍,就是初始化作用的,创建目录,配置模板,分发脚本什么的杂活。没什么值得特别介绍的。

咱们再看install_redis文件:

640.png


这里面有点东西全网都没人提这个事。

变量的运算:这里面有些内容是需要变量运算的,因为我们的端口是有规律的增长7000到7005,我看有不少人干脆写出来,确实可以写但是麻烦。要是100个呢?对吧,所以这里需要多口数进行加法运算。


- set_fact: prot={{prot|int+1}}


大家看这句话,就是端口数+1,变成了7001了。这个int就是强调运算完之后prot这个变量还是数字类型,如果不强调添加,那么就会变成字符串,下一个节点就没办法对其进行运算了。这个是个大坑奥!

- name: make redis
shell: /bin/bash {{baseDir}}/redis_cluster/script/installRedis.sh
async: 300
poll: 5
tags: ['make redis']

照比之前的普通脚本,咱们这里咱们用到了playbook的异步,当然playbook默认异步是同时触发5个任务(这个知识点记住,面试的时候有可能会考)。


async:参数值代表了这个任务执行时间的上限值。即任务执行所用时间如果超出这个时间,则认为任务失败。此参数若未设置,则为同步执行。poll:参数值代表了任务异步执行时轮询的时间间隔。templates有点多:波哥写个时候还挺费劲的。就不讲了,应该能看懂就是shell脚本。


640.png

咱们最后总结一下咱们这个项目的ansible-playbook的写法和特点。


1、入口文件:全局变量配置。2、tasks文件拆分:将一个大的目的拆分成几个大步骤,然后用main文件导入细分的二级任务文件并且控制其执行顺序。3、变量类型声明和运算。4、模板配置及ansible+shell脚本调用。

波哥不容易!江湖规矩,人不走空,如果对你有用的情况下或者你觉得还行,点赞、转发分享选一样奥!

相关文章
|
3月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
316 2
kde
|
1月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
614 7
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
325 6
|
2月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
7月前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
275 5
|
4月前
|
负载均衡 NoSQL Redis
【赵渝强老师】Redis的主从复制集群
Redis主从复制是指将一台Redis服务器的数据复制到其他Redis服务器,实现数据热备份、故障恢复、负载均衡及高可用架构的基础。主节点负责写操作,从节点同步数据并可提供读服务,提升并发处理能力。
145 5
|
3月前
|
存储 NoSQL 算法
Redis的集群架构与使用经验
本文介绍了Redis的集群架构与使用经验,包括主从复制、哨兵集群及Cluster分片集群的应用场景与实现原理。内容涵盖Redis主从同步机制、数据分片存储方式、事务支持及与Memcached的区别,并讨论了Redis内存用尽时的处理策略。适用于了解Redis高可用与性能优化方案。
|
7月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
8月前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用的算法是哈希槽分区算法。Redis集群中有16384个哈希槽(槽的范围是 0 -16383,哈希槽),将不同的哈希槽分布在不同的Redis节点上面进行管理,也就是说每个Redis节点只负责一部分的哈希槽。在对数据进行操作的时候,集群会对使用CRC16算法对key进行计算并对16384取模(slot = CRC16(key)%16383),得到的结果就是 Key-Value 所放入的槽,通过这个值,去找到对应的槽所对应的Redis节点,然后直接到这个对应的节点上进行存取操作
|
8月前
|
缓存 NoSQL 测试技术
Redis压测脚本及持久化机制
Redis压测脚本及持久化机制简介: Redis性能压测通过`redis-benchmark`工具进行,可评估读写性能。持久化机制包括无持久化、RDB(定期快照)和AOF(操作日志),以及两者的结合。RDB适合快速备份与恢复,但可能丢失数据;AOF更安全,记录每次写操作,适合高数据安全性需求。两者结合能兼顾性能与安全性,建议同时开启并定期备份RDB文件以确保数据安全。
181 9
下一篇
oss云网关配置