WIP: separate Redis instances from default server
This commit is contained in:
parent
415aedb78a
commit
d0111f9a4f
|
@ -13,12 +13,12 @@ Everything is in the `tasks/main.yml` file.
|
||||||
Main variables are :
|
Main variables are :
|
||||||
|
|
||||||
* `redis_daemon`: name of the process ;
|
* `redis_daemon`: name of the process ;
|
||||||
* `redis_conf_path`: config file location ;
|
* `redis_conf_dir`: config directory ;
|
||||||
* `redis_port`: listening TCP port ;
|
* `redis_port`: listening TCP port ;
|
||||||
* `redis_bind_interface`: listening IP address ;
|
* `redis_bind_interface`: listening IP address ;
|
||||||
* `redis_password`: password for redis. Empty means no password ;
|
* `redis_password`: password for redis. Empty means no password ;
|
||||||
* `redis_unixsocket`: Unix socket ;
|
* `redis_socket_dir`: Unix socket directory ;
|
||||||
* `redis_loglevel`: log verbosity ;
|
* `redis_loglevel`: log verbosity ;
|
||||||
* `redis_logfile`: log file location.
|
* `redis_log_dir`: log file directory.
|
||||||
|
|
||||||
The full list of variables (with default values) can be found in `defaults/main.yml`.
|
The full list of variables (with default values) can be found in `defaults/main.yml`.
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
---
|
---
|
||||||
redis_daemon: redis-server
|
redis_systemd_name: redis-server
|
||||||
redis_conf_path: /etc/redis/redis.conf
|
|
||||||
|
redis_conf_dir: /etc/redis
|
||||||
|
|
||||||
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_socket_dir: '/var/run/redis'
|
||||||
redis_unixsocketperm: 770
|
redis_socket_perms: 770
|
||||||
redis_pidfile: "/var/run/redis/{{ redis_daemon }}.pid"
|
redis_pid_dir: "/var/run/redis"
|
||||||
redis_timeout: 300
|
redis_timeout: 300
|
||||||
|
|
||||||
# for client authorization
|
# for client authorization
|
||||||
|
@ -15,7 +16,7 @@ redis_password: NULL
|
||||||
redis_password_master: "{{ redis_password }}"
|
redis_password_master: "{{ redis_password }}"
|
||||||
|
|
||||||
redis_loglevel: "notice"
|
redis_loglevel: "notice"
|
||||||
redis_logfile: /var/log/redis/redis-server.log
|
redis_log_dir: /var/log/redis
|
||||||
|
|
||||||
redis_databases: 16
|
redis_databases: 16
|
||||||
|
|
||||||
|
@ -26,8 +27,8 @@ redis_save:
|
||||||
- 60 10000
|
- 60 10000
|
||||||
|
|
||||||
redis_rdbcompression: "yes"
|
redis_rdbcompression: "yes"
|
||||||
redis_dbfilename: dump.rdb
|
redis_data_dir: /var/lib/redis
|
||||||
redis_dbdir: /var/lib/redis
|
redis_data_file: dump.rdb
|
||||||
|
|
||||||
redis_maxclients: 128
|
redis_maxclients: 128
|
||||||
|
|
||||||
|
@ -50,3 +51,5 @@ redis_restart_force: False
|
||||||
redis_disabled_commands: []
|
redis_disabled_commands: []
|
||||||
|
|
||||||
redis_sentinel_install: False
|
redis_sentinel_install: False
|
||||||
|
|
||||||
|
redis_default_server_disabled: True
|
||||||
|
|
|
@ -3,13 +3,13 @@ Description=Advanced key-value store
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStartPre=/bin/mkdir -m 0755 -p /run/redis/%i
|
ExecStartPre=/bin/mkdir -m 0755 -p /var/run/redis-%i
|
||||||
ExecStartPre=/bin/chown redis-%i: /run/redis/%i
|
ExecStartPre=/bin/chown redis-%i: /var/run/redis-%i
|
||||||
PermissionsStartOnly=yes
|
PermissionsStartOnly=yes
|
||||||
|
|
||||||
Type=forking
|
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
|
ExecStart=/usr/bin/redis-server /etc/redis-%i/redis.conf --unixsocket /var/run/redis-%i/redis.sock --pidfile /var/run/redis-%i/redis-server.pid
|
||||||
ExecStop=/usr/bin/redis-cli -s /run/redis/%i/redis.sock shutdown
|
ExecStop=/usr/bin/redis-cli -s /var/run/redis-%i/redis.sock shutdown
|
||||||
Restart=always
|
Restart=always
|
||||||
User=redis-%i
|
User=redis-%i
|
||||||
Group=redis-%i
|
Group=redis-%i
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
- name: restart redis
|
- name: restart redis
|
||||||
systemd:
|
systemd:
|
||||||
name: "{{ redis_daemon }}"
|
name: "{{ redis_systemd_name }}"
|
||||||
state: restarted
|
state: restarted
|
||||||
|
|
||||||
- name: restart redis (noop)
|
- name: restart redis (noop)
|
||||||
|
|
18
redis/tasks/default-server.yml
Normal file
18
redis/tasks/default-server.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Redis is configured.
|
||||||
|
template:
|
||||||
|
src: redis.conf.j2
|
||||||
|
dest: "{{ redis_conf_dir }}"
|
||||||
|
mode: "0644"
|
||||||
|
notify: "{{ redis_restart_handler_name }}"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Redis is running and enabled on boot.
|
||||||
|
systemd:
|
||||||
|
name: "{{ redis_systemd_name }}"
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
tags:
|
||||||
|
- redis
|
|
@ -1,40 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
# - name: "Set variables for the instance '{{ redis_instance_name }}'"
|
|
||||||
# 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: Systemd template for redis instances is installed
|
|
||||||
copy:
|
|
||||||
src: 'redis-server@.service'
|
|
||||||
dest: '/etc/systemd/system/'
|
|
||||||
mode: "0644"
|
|
||||||
tags:
|
|
||||||
- redis
|
|
||||||
|
|
||||||
- name: Redis SysVinit script is stopped and disabled
|
|
||||||
service:
|
|
||||||
name: "redis-server"
|
|
||||||
enabled: no
|
|
||||||
state: stopped
|
|
||||||
tags:
|
|
||||||
- redis
|
|
||||||
|
|
||||||
- name: "Redis instance '{{ redis_instance_name }}' configuration file is present"
|
|
||||||
template:
|
|
||||||
src: redis.conf.j2
|
|
||||||
dest: "{{ redis_conf_path }}"
|
|
||||||
mode: "0644"
|
|
||||||
tags:
|
|
||||||
- redis
|
|
||||||
|
|
||||||
- name: "Redis instance '{{ redis_instance_name }}' group is present"
|
- name: "Redis instance '{{ redis_instance_name }}' group is present"
|
||||||
group:
|
group:
|
||||||
name: "redis-{{ redis_instance_name }}"
|
name: "redis-{{ redis_instance_name }}"
|
||||||
|
@ -53,35 +18,53 @@
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
- name: "Ensure redis base folders will be accessible for all instances"
|
|
||||||
file:
|
|
||||||
dest: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
mode: "0755"
|
|
||||||
owner: "redis"
|
|
||||||
group: "redis"
|
|
||||||
with_items:
|
|
||||||
- "/var/lib/redis"
|
|
||||||
- "/var/log/redis"
|
|
||||||
|
|
||||||
- name: "Instances '{{ redis_instance_name }}' directories are present"
|
- name: "Instances '{{ redis_instance_name }}' directories are present"
|
||||||
file:
|
file:
|
||||||
dest: "{{ item }}"
|
dest: "{{ item }}"
|
||||||
state: directory
|
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
owner: "redis-{{ redis_instance_name }}"
|
owner: "redis-{{ redis_instance_name }}"
|
||||||
group: "redis-{{ redis_instance_name }}"
|
group: "redis-{{ redis_instance_name }}"
|
||||||
|
follow: yes
|
||||||
|
state: directory
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ redis_dbdir }}"
|
- "{{ redis_conf_dir }}"
|
||||||
- "{{ redis_logfile | dirname }}"
|
- "{{ redis_pid_dir }}"
|
||||||
|
- "{{ redis_socket_dir }}"
|
||||||
|
- "{{ redis_data_dir }}"
|
||||||
|
- "{{ redis_log_dir }}"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: "Redis instance '{{ redis_instance_name }}' configuration file is present"
|
||||||
|
template:
|
||||||
|
src: redis.conf.j2
|
||||||
|
dest: "{{ redis_conf_dir }}/redis.conf"
|
||||||
|
mode: "0644"
|
||||||
|
tags:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
- name: Systemd template for redis instances is installed
|
||||||
|
copy:
|
||||||
|
src: 'redis-server@.service'
|
||||||
|
dest: '/etc/systemd/system/'
|
||||||
|
mode: "0644"
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
- name: "Redis '{{ redis_instance_name }}' systemd unit is enabled and started"
|
- name: "Redis '{{ redis_instance_name }}' systemd unit is enabled and started"
|
||||||
systemd:
|
systemd:
|
||||||
name: "{{ redis_daemon }}"
|
name: "{{ redis_systemd_name }}"
|
||||||
enabled: yes
|
enabled: yes
|
||||||
state: started
|
state: started
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
|
- name: Redis SysVinit script is stopped and disabled
|
||||||
|
service:
|
||||||
|
name: "redis-server"
|
||||||
|
enabled: no
|
||||||
|
state: stopped
|
||||||
|
when: redis_default_server_disabled
|
||||||
|
tags:
|
||||||
|
- redis
|
|
@ -37,34 +37,18 @@
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
- include: instances.yml
|
- include: instance-server.yml
|
||||||
vars:
|
vars:
|
||||||
redis_daemon: "redis-server@{{ redis_instance_name }}"
|
redis_systemd_name: "redis-server@{{ redis_instance_name }}"
|
||||||
redis_conf_path: "/etc/redis/redis-{{ redis_instance_name }}.conf"
|
redis_conf_dir: "/etc/redis-{{ redis_instance_name }}"
|
||||||
redis_unixsocket: "/var/run/redis/{{ redis_instance_name }}/redis.sock"
|
redis_socket_dir: "/var/run/redis-{{ redis_instance_name }}"
|
||||||
redis_pidfile: "/var/run/redis/{{ redis_instance_name }}/{{ redis_daemon }}.pid"
|
redis_pid_dir: "/var/run/redis-{{ redis_instance_name }}"
|
||||||
redis_logfile: "/var/log/redis/{{ redis_instance_name }}/redis-server.log"
|
redis_log_dir: "/var/log/redis-{{ redis_instance_name }}"
|
||||||
redis_dbdir: "/var/lib/redis/{{ redis_instance_name }}"
|
redis_data_dir: "/var/lib/redis-{{ redis_instance_name }}"
|
||||||
when: redis_instance_name is defined
|
when: redis_instance_name is defined
|
||||||
|
|
||||||
- name: Redis is configured.
|
- include: default-server.yml
|
||||||
template:
|
|
||||||
src: redis.conf.j2
|
|
||||||
dest: "{{ redis_conf_path }}"
|
|
||||||
mode: "0644"
|
|
||||||
notify: "{{ redis_restart_handler_name }}"
|
|
||||||
when: redis_instance_name is not defined
|
when: redis_instance_name is not defined
|
||||||
tags:
|
|
||||||
- redis
|
|
||||||
|
|
||||||
- name: Redis is running and enabled on boot.
|
|
||||||
systemd:
|
|
||||||
name: "{{ redis_daemon }}"
|
|
||||||
enabled: yes
|
|
||||||
state: started
|
|
||||||
when: redis_instance_name is not defined
|
|
||||||
tags:
|
|
||||||
- redis
|
|
||||||
|
|
||||||
- name: Is Munin installed
|
- name: Is Munin installed
|
||||||
stat:
|
stat:
|
||||||
|
@ -74,7 +58,7 @@
|
||||||
- redis
|
- redis
|
||||||
- munin
|
- munin
|
||||||
|
|
||||||
- include: munin.yml
|
- include: default-munin.yml
|
||||||
when:
|
when:
|
||||||
- _munin_installed.stat.exists
|
- _munin_installed.stat.exists
|
||||||
- _munin_installed.stat.isdir
|
- _munin_installed.stat.isdir
|
||||||
|
@ -83,7 +67,7 @@
|
||||||
- redis
|
- redis
|
||||||
- munin
|
- munin
|
||||||
|
|
||||||
- include: munin-instances.yml
|
- include: instance-munin.yml
|
||||||
when:
|
when:
|
||||||
- _munin_installed.stat.exists
|
- _munin_installed.stat.exists
|
||||||
- _munin_installed.stat.isdir
|
- _munin_installed.stat.isdir
|
||||||
|
@ -102,7 +86,9 @@
|
||||||
- nrpe
|
- nrpe
|
||||||
|
|
||||||
- include: nrpe_stretch.yml
|
- include: nrpe_stretch.yml
|
||||||
when: ansible_distribution_release == "stretch" and nrpe_evolix_config.stat.exists == true
|
when:
|
||||||
|
- ansible_distribution_release == "stretch"
|
||||||
|
- nrpe_evolix_config.stat.exists == true
|
||||||
tags:
|
tags:
|
||||||
- redis
|
- redis
|
||||||
- nrpe
|
- nrpe
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
daemonize yes
|
daemonize yes
|
||||||
pidfile {{ redis_pidfile }}
|
pidfile {{ redis_pid_dir }}/redis-server.pid
|
||||||
port {{ redis_port }}
|
port {{ redis_port }}
|
||||||
bind {{ redis_bind_interface }}
|
bind {{ redis_bind_interface }}
|
||||||
|
|
||||||
{% if redis_unixsocket %}
|
{% if redis_unixsocket %}
|
||||||
unixsocket {{ redis_unixsocket }}
|
unixsocket {{ redis_socket_dir }}/redis.sock
|
||||||
unixsocketperm {{ redis_unixsocketperm }}
|
unixsocketperm {{ redis_socket_perms }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if redis_password %}
|
{% if redis_password %}
|
||||||
|
@ -18,7 +18,7 @@ masterauth {{ redis_password_master }}
|
||||||
timeout {{ redis_timeout }}
|
timeout {{ redis_timeout }}
|
||||||
|
|
||||||
loglevel {{ redis_loglevel }}
|
loglevel {{ redis_loglevel }}
|
||||||
logfile {{ redis_logfile }}
|
logfile {{ redis_log_dir }}/redis-server.pid
|
||||||
|
|
||||||
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
|
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
|
||||||
# and optionally update the other syslog parameters to suit your needs.
|
# and optionally update the other syslog parameters to suit your needs.
|
||||||
|
@ -33,8 +33,8 @@ save {{ save }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
rdbcompression {{ redis_rdbcompression }}
|
rdbcompression {{ redis_rdbcompression }}
|
||||||
dbfilename {{ redis_dbfilename }}
|
dbfilename {{ redis_data_file }}
|
||||||
dir {{ redis_dbdir }}
|
dir {{ redis_data_dir }}
|
||||||
|
|
||||||
{% if redis_installed_version | version_compare('3.2', '>=') %}
|
{% if redis_installed_version | version_compare('3.2', '>=') %}
|
||||||
protected-mode {{ redis_protected_mode }}
|
protected-mode {{ redis_protected_mode }}
|
||||||
|
|
Loading…
Reference in a new issue