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
|
||||
* networkd-to-ifconfig: add a role to switch from networkd to ifconfig
|
||||
* webapps/evoadmin-web: add users to /etc/aliases
|
||||
* redis: add support for multi instances
|
||||
|
||||
### Changed
|
||||
* dovecot: stronger TLS configuration
|
||||
|
|
|
@ -5,6 +5,7 @@ redis_conf_path: /etc/redis/redis.conf
|
|||
redis_port: 6379
|
||||
redis_bind_interface: 127.0.0.1
|
||||
redis_unixsocket: '/var/run/redis/redis.sock'
|
||||
redis_pidfile: "/var/run/redis/{{ redis_daemon }}.pid"
|
||||
redis_timeout: 300
|
||||
|
||||
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
|
||||
service:
|
||||
systemd:
|
||||
name: "{{ redis_daemon }}"
|
||||
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:
|
||||
- redis
|
||||
|
||||
- include: instances.yml
|
||||
when: redis_instance_name is defined
|
||||
|
||||
- name: Redis is configured.
|
||||
template:
|
||||
src: redis.conf.j2
|
||||
dest: "{{ redis_conf_path }}"
|
||||
mode: "0644"
|
||||
notify: restart redis
|
||||
when: redis_instance_name is not defined
|
||||
tags:
|
||||
- redis
|
||||
|
||||
- name: Redis is running and enabled on boot.
|
||||
service:
|
||||
systemd:
|
||||
name: "{{ redis_daemon }}"
|
||||
enabled: yes
|
||||
state: started
|
||||
when: redis_instance_name is not defined
|
||||
tags:
|
||||
- redis
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
daemonize yes
|
||||
pidfile /var/run/redis/{{ redis_daemon }}.pid
|
||||
pidfile {{ redis_pidfile }}
|
||||
port {{ redis_port }}
|
||||
bind {{ redis_bind_interface }}
|
||||
|
||||
|
|
Loading…
Reference in a new issue