• 生活的道路一旦选定,就要勇敢地走到底,决不回头。——左拉
  • 坚强的信心,能使平凡的人做出惊人的事业。——马尔顿
  • 人不可有傲气,但不可无傲骨。 --徐悲鸿
  • 古之立大志者,不惟有超世之才,亦必有坚韧不拔之志。 --苏轼
  • 时间像海绵里的水,只要你愿意挤,总还是有的。 --鲁迅

ansible 实现安装redis和主从

Redis zkinogg 1年前 (2020-08-05) 176次浏览 0个评论

一.环境准备

主机名 内网ip 外网ip 作用
m01 172.16.1.61 10.0.0.61 ansible服务端
db01 172.16.1.51 10.0.0.51 redis主库ansible客户端
db02 172.16.1.52 10.0.0.52 redis从库ansible客户端
db03 172.16.1.53 10.0.0.53 redis从库ansible客户端

二.ansible步骤

# 1.创建文件夹
[root@m01 ~]# mkdir ansible_redis

# 2.生成roles目录
[root@m01 ansible_redis]# ansible-galaxy init redis

# 3.准备hosts文件
[root@m01 ansible_redis]# cat hosts 
[db_group]
db01 ansible_ssh_host=172.16.1.51
db02 ansible_ssh_host=172.16.1.52 
db03 ansible_ssh_host=172.16.1.53 

# 4.准备site.yml文件
[root@m01 ansible_redis]# cat site.yml 
- hosts: all
  roles:
    - { role: redis , when: ansible_fqdn is match 'db*'}

# 5.准备redis配置文件使用jinjia模板
[root@m01 redis]# cat templates/redis.conf.j2 
{% if ansible_fqdn == 'db01' %}
bind 172.16.1.51 127.0.0.1
{% elif ansible_fqdn == 'db02' %}
bind 172.16.1.52 127.0.0.1
{% else %}
bind 172.16.1.53 127.0.0.1
{% endif %}
port 6379
daemonize yes
pidfile /service/redis/6379/redis_6379.pid
loglevel notice
logfile /service/redis/6379/redis_6379.log
dir /service/redis/6379
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000

# 6.准备redis的tar包和环境变量文件
[root@m01 redis]# ll files/
total 1520
-rw-r--r-- 1 root root 1551468 Aug  3 09:58 redis-3.2.12.tar.gz
-rw-r--r-- 1 root root      39 Aug  5 23:08 redis.sh

[root@m01 redis]# cat files/redis.sh 
export PATH=/usr/local/redis/src:$PATH


# 7.编写redis任务文件
[root@m01 redis]# cat tasks/Yum_redis.yml 
- name: Unarchive redis tgz                      #解压redis的安装包
  unarchive:
    src: redis-3.2.12.tar.gz
    dest: /usr/local/
  when: ansible_fqdn is match 'db*'

- name: link redis                               #创建软链接
  file:
    src: /usr/local/redis-3.2.12
    dest: /usr/local/redis
    state: link
  when: ansible_fqdn is match 'db*'

- name: Make redis                                #安装redis
  shell: 'cd /usr/local/redis && make'

- name: Push redis sh                             #推redis环境变量文件
  copy:
    src: redis.sh
    dest: /etc/profile.d/redis.sh
    mode: 0755
  when: ansible_fqdn is match 'db*'

- name: Source profile                            #刷新环境变量
  shell: 'source /etc/profile'
  when: ansible_fqdn is match 'db*'

- name: Mkdir redis service                       #创建redis目录
  file:
    path: /service/redis/6379
    state: directory
  when: ansible_fqdn is match 'db*'

- name: redis config overwrite                     #推redis主配置文件
  template:
    src: redis.conf.j2
    dest: /service/redis/6379/redis.conf
  when: ansible_fqdn is match 'db*'

- name: Start redis                                #指定配置文件启动redis
  shell: 'redis-server /service/redis/6379/redis.conf'
  when: ansible_fqdn is match 'db*'

- name: Start replication                           #开启主从
  shell: 'redis-cli slaveof 172.16.1.51 6379'
  when: (ansible_fqdn == 'db02') or (ansible_fqdn == 'db03')

三.执行ansible

[root@m01 ansible_redis]# ansible-playbook site.yml -i hosts 


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ansible 实现安装redis和主从
喜欢 (0)
[17551054905]
分享 (0)

您必须 登录 才能发表评论!