forked from evolix/ansible-roles
redis: add support for multi instances
This commit is contained in:
parent
09e48516c6
commit
8546f0f34f
|
@ -17,6 +17,7 @@ The **patch** part changes incrementally at each release.
|
||||||
* mysql: add a variable to prevent mysql from restarting
|
* mysql: add a variable to prevent mysql from restarting
|
||||||
* networkd-to-ifconfig: add a role to switch from networkd to ifconfig
|
* networkd-to-ifconfig: add a role to switch from networkd to ifconfig
|
||||||
* webapps/evoadmin-web: add users to /etc/aliases
|
* webapps/evoadmin-web: add users to /etc/aliases
|
||||||
|
* redis: add support for multi instances
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* dovecot: stronger TLS configuration
|
* dovecot: stronger TLS configuration
|
||||||
|
|
|
@ -5,6 +5,7 @@ redis_conf_path: /etc/redis/redis.conf
|
||||||
redis_port: 6379
|
redis_port: 6379
|
||||||
redis_bind_interface: 127.0.0.1
|
redis_bind_interface: 127.0.0.1
|
||||||
redis_unixsocket: '/var/run/redis/redis.sock'
|
redis_unixsocket: '/var/run/redis/redis.sock'
|
||||||
|
redis_pidfile: "/var/run/redis/{{ redis_daemon }}.pid"
|
||||||
redis_timeout: 300
|
redis_timeout: 300
|
||||||
|
|
||||||
redis_password: NULL
|
redis_password: NULL
|
||||||
|
|
18
redis/files/redis-server@.service
Normal file
18
redis/files/redis-server@.service
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Advanced key-value store
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStartPre=/bin/mkdir -m 0755 -p /run/redis/%i
|
||||||
|
ExecStartPre=/bin/chown redis-%i: /run/redis/%i
|
||||||
|
PermissionsStartOnly=yes
|
||||||
|
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/bin/redis-server /etc/redis/redis-%i.conf --unixsocket /run/redis/%i/redis.sock --pidfile /run/redis/%i/redis-server.pid
|
||||||
|
ExecStop=/usr/bin/redis-cli -s /run/redis/%i/redis.sock shutdown
|
||||||
|
Restart=always
|
||||||
|
User=redis-%i
|
||||||
|
Group=redis-%i
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
- name: restart redis
|
- name: restart redis
|
||||||
service:
|
systemd:
|
||||||
name: "{{ redis_daemon }}"
|
name: "{{ redis_daemon }}"
|
||||||
state: restarted
|
state: restarted
|
||||||
|
|
||||||
|
|
74
redis/tasks/instances.yml
Normal file
74
redis/tasks/instances.yml
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
---
|
||||||
|
- name: Deploy systemd templates for redis instances
|
||||||
|
copy:
|
||||||
|
src: 'redis-server@.service'
|
||||||
|
dest: '/etc/systemd/system/'
|
||||||
|
mode: "0644"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Disable standard redis service
|
||||||
|
service:
|
||||||
|
name: "redis-server"
|
||||||
|
enabled: no
|
||||||
|
state: stopped
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
redis_daemon: "redis-server@{{ redis_instance_name }}"
|
||||||
|
redis_conf_path: "/etc/redis/redis-{{ redis_instance_name }}.conf"
|
||||||
|
redis_unixsocket: "/var/run/redis/{{ redis_instance_name }}/redis.sock"
|
||||||
|
redis_pidfile: "/var/run/redis/{{ redis_instance_name }}/{{ redis_daemon }}.pid"
|
||||||
|
redis_logfile: "/var/log/redis/{{ redis_instance_name }}/redis-server.log"
|
||||||
|
redis_dbdir: "/var/lib/redis/{{ redis_instance_name }}"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Configure redis instance.
|
||||||
|
template:
|
||||||
|
src: redis.conf.j2
|
||||||
|
dest: "{{ redis_conf_path }}"
|
||||||
|
mode: "0644"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Create redis instance group
|
||||||
|
group:
|
||||||
|
name: "redis-{{ redis_instance_name }}"
|
||||||
|
state: present
|
||||||
|
system: True
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Create redis instance user
|
||||||
|
user:
|
||||||
|
name: "redis-{{ redis_instance_name }}"
|
||||||
|
group: "redis-{{ redis_instance_name }}"
|
||||||
|
state: present
|
||||||
|
system: True
|
||||||
|
shell: '/bin/falase'
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Create needed dir
|
||||||
|
file:
|
||||||
|
dest: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
owner: "redis-{{ redis_instance_name }}"
|
||||||
|
group: "redis-{{ redis_instance_name }}"
|
||||||
|
with_items:
|
||||||
|
- "{{ redis_dbdir }}"
|
||||||
|
- "{{ redis_logfile | dirname }}"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Redis instance is running and enabled on boot.
|
||||||
|
systemd:
|
||||||
|
name: "{{ redis_daemon }}"
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
daemon_reload: yes
|
||||||
|
tags:
|
||||||
|
- redis
|
|
@ -24,20 +24,25 @@
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
|
- include: instances.yml
|
||||||
|
when: redis_instance_name is defined
|
||||||
|
|
||||||
- name: Redis is configured.
|
- name: Redis is configured.
|
||||||
template:
|
template:
|
||||||
src: redis.conf.j2
|
src: redis.conf.j2
|
||||||
dest: "{{ redis_conf_path }}"
|
dest: "{{ redis_conf_path }}"
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
notify: restart redis
|
notify: restart redis
|
||||||
|
when: redis_instance_name is not defined
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
- name: Redis is running and enabled on boot.
|
- name: Redis is running and enabled on boot.
|
||||||
service:
|
systemd:
|
||||||
name: "{{ redis_daemon }}"
|
name: "{{ redis_daemon }}"
|
||||||
enabled: yes
|
enabled: yes
|
||||||
state: started
|
state: started
|
||||||
|
when: redis_instance_name is not defined
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
daemonize yes
|
daemonize yes
|
||||||
pidfile /var/run/redis/{{ redis_daemon }}.pid
|
pidfile {{ redis_pidfile }}
|
||||||
port {{ redis_port }}
|
port {{ redis_port }}
|
||||||
bind {{ redis_bind_interface }}
|
bind {{ redis_bind_interface }}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue