ansible快速准备redis集群环境
提示:本文旨在使用ansible快速搭建一下集群环境
文章目录
-
目录
文章目录
前言
✅ 为什么要使用 Redis 集群?
✅ Redis Cluster 主要优势
✅ 哪种场景必须使用 Redis 集群?
🚫 不要把 Redis 集群当数据库替代
一、准备集群主机列表和ansible.cfg文件
二、为了管理这些主机、还需要完成以下步骤
三、创建角色redis编写任务
准备静态文件
编写主tasks
准备配置文件的template
四、编写playbook调用角色
前言
这里是为redis集群搭建学习的一些环境准备,仅供参考
✅ 为什么要使用 Redis 集群?

✅ Redis Cluster 主要优势

✅ 哪种场景必须使用 Redis 集群?

🚫 不要把 Redis 集群当数据库替代
由于 Redis 内存昂贵、数据结构复杂、持久化成本高,它仍更适合作为:
-
缓存系统
-
会话管理
-
高频 KV 访问
-
排行榜、计数器、消息队列等结构化数据
存档数据仍应放 MySQL/Mongo/ES 等存储系统。
一、准备集群主机列表和ansible.cfg文件
[root@control ~]# cd ansible
[root@control ansible]# cat hosts
[redis]
192.168.4.51
192.168.4.52
192.168.4.53
192.168.4.54
192.168.4.55
192.168.4.56[redisnew]
192.168.4.57
192.168.4.58
[root@control ansible]# cat ansible.cfg
[defaults]
inventory = ~/ansible/hosts
roles_path = ~/ansible/role
remote_user = alice
host_key_checking = False[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
二、为了管理这些主机、还需要完成以下步骤
核心是:在远程主机以普通用户的方式、执行命令、普通用户保持和ansible.cfg文件一致
for i in 51 52 53 54 55 56; do ssh-copy-id root@192.168.4.$i; done for i in 51 52 53 54 55 56; do ssh 192.168.4.$i "useradd alice"; donefor i in 51 52 53 54 55 56; do ssh-copy-id alice@192.168.4.$i; donefor i in 51 52 53 54 55 56; do ssh 192.168.4.$i "echo a | passwd --stdin alice"; donefor i in 51 52 53 54 55 56; do ssh root@192.168.4.$i "sed -i '120a alice ALL=(ALL) NOPASSWD:ALL' /etc/sudoers";done
三、创建角色redis编写任务
过程略写
准备静态文件
[root@control ansible]# ls role/redis/files/
redis-4.0.8.tar.gz
编写主tasks
[root@control ansible]# cat role/redis/tasks/main.yml
---
# tasks file for redis
- name: yum -y install gccyum:name: gccstate: present
- name: tar -xf unarchive:src: redis-4.0.8.tar.gzdest: /root/
- name: make shell: make && make install && touch makecomplete.txtargs: chdir: /root/redis-4.0.8 creates: /root/redis-4.0.8/makecomplete.txt
- name: Install Redis non-interactively with defaultsshell: |REDIS_PORT=6379 \REDIS_CONFIG_FILE=/etc/redis/6379.conf \REDIS_LOG_FILE=/var/log/redis_6379.log \REDIS_DATA_DIR=/var/lib/redis/6379 \REDIS_EXECUTABLE=/usr/local/bin/redis-server \REDIS_CLI_EXECUTABLE=/usr/local/bin/redis-cli \./utils/install_server.sh <<EOFEOFargs:chdir: /root/redis-4.0.8creates: /etc/init.d/redis_6379
- name: template confitemplate:src: 6379.conf.j2dest: /etc/redis/6379.conf
准备配置文件的template
主要修改以下几行
70 bind {{ ansible_all_ipv4_addresses[0] }} #修改监控地址
815 cluster-enabled yes #取消注释,启用集群功能
823 cluster-config-file nodes-6379.conf #取消注释,存储集群信息相关文件
829 cluster-node-timeout 5000 #设置集群通信的超时时间(5000秒)
[root@control ansible]# ls role/redis/templates/6379.conf.j2
role/redis/templates/6379.conf.j2
四、编写playbook调用角色
[root@control ansible]# cat redis.yaml
---
#- hosts: 192.168.4.53
#- hosts: redis
- hosts: redisnewroles:- redis
