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 :
|
||||
|
||||
* `redis_daemon`: name of the process ;
|
||||
* `redis_conf_path`: config file location ;
|
||||
* `redis_conf_dir`: config directory ;
|
||||
* `redis_port`: listening TCP port ;
|
||||
* `redis_bind_interface`: listening IP address ;
|
||||
* `redis_password`: password for redis. Empty means no password ;
|
||||
* `redis_unixsocket`: Unix socket ;
|
||||
* `redis_socket_dir`: Unix socket directory ;
|
||||
* `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`.
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
---
|
||||
redis_daemon: redis-server
|
||||
redis_conf_path: /etc/redis/redis.conf
|
||||
redis_systemd_name: redis-server
|
||||
|
||||
redis_conf_dir: /etc/redis
|
||||
|
||||
redis_port: 6379
|
||||
redis_bind_interface: 127.0.0.1
|
||||
redis_unixsocket: '/var/run/redis/redis.sock'
|
||||
redis_unixsocketperm: 770
|
||||
redis_pidfile: "/var/run/redis/{{ redis_daemon }}.pid"
|
||||
redis_socket_dir: '/var/run/redis'
|
||||
redis_socket_perms: 770
|
||||
redis_pid_dir: "/var/run/redis"
|
||||
redis_timeout: 300
|
||||
|
||||
# for client authorization
|
||||
|
@ -15,7 +16,7 @@ redis_password: NULL
|
|||
redis_password_master: "{{ redis_password }}"
|
||||
|
||||
redis_loglevel: "notice"
|
||||
redis_logfile: /var/log/redis/redis-server.log
|
||||
redis_log_dir: /var/log/redis
|
||||
|
||||
redis_databases: 16
|
||||
|
||||
|
@ -26,8 +27,8 @@ redis_save:
|
|||
- 60 10000
|
||||
|
||||
redis_rdbcompression: "yes"
|
||||
redis_dbfilename: dump.rdb
|
||||
redis_dbdir: /var/lib/redis
|
||||
redis_data_dir: /var/lib/redis
|
||||
redis_data_file: dump.rdb
|
||||
|
||||
redis_maxclients: 128
|
||||
|
||||
|
@ -50,3 +51,5 @@ redis_restart_force: False
|
|||
redis_disabled_commands: []
|
||||
|
||||
redis_sentinel_install: False
|
||||
|
||||
redis_default_server_disabled: True
|
||||
|
|
|
@ -3,13 +3,13 @@ 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
|
||||
ExecStartPre=/bin/mkdir -m 0755 -p /var/run/redis-%i
|
||||
ExecStartPre=/bin/chown redis-%i: /var/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
|
||||
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 /var/run/redis-%i/redis.sock shutdown
|
||||
Restart=always
|
||||
User=redis-%i
|
||||
Group=redis-%i
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
- name: restart redis
|
||||
systemd:
|
||||
name: "{{ redis_daemon }}"
|
||||
name: "{{ redis_systemd_name }}"
|
||||
state: restarted
|
||||
|
||||
- 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"
|
||||
group:
|
||||
name: "redis-{{ redis_instance_name }}"
|
||||
|
@ -53,35 +18,53 @@
|
|||
tags:
|
||||
- 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"
|
||||
file:
|
||||
dest: "{{ item }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
owner: "redis-{{ redis_instance_name }}"
|
||||
group: "redis-{{ redis_instance_name }}"
|
||||
follow: yes
|
||||
state: directory
|
||||
with_items:
|
||||
- "{{ redis_dbdir }}"
|
||||
- "{{ redis_logfile | dirname }}"
|
||||
- "{{ redis_conf_dir }}"
|
||||
- "{{ 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:
|
||||
- redis
|
||||
|
||||
- name: "Redis '{{ redis_instance_name }}' systemd unit is enabled and started"
|
||||
systemd:
|
||||
name: "{{ redis_daemon }}"
|
||||
name: "{{ redis_systemd_name }}"
|
||||
enabled: yes
|
||||
state: started
|
||||
daemon_reload: yes
|
||||
tags:
|
||||
- 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:
|
||||
- redis
|
||||
|
||||
- include: instances.yml
|
||||
- include: instance-server.yml
|
||||
vars:
|
||||
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 }}"
|
||||
redis_systemd_name: "redis-server@{{ redis_instance_name }}"
|
||||
redis_conf_dir: "/etc/redis-{{ redis_instance_name }}"
|
||||
redis_socket_dir: "/var/run/redis-{{ redis_instance_name }}"
|
||||
redis_pid_dir: "/var/run/redis-{{ redis_instance_name }}"
|
||||
redis_log_dir: "/var/log/redis-{{ redis_instance_name }}"
|
||||
redis_data_dir: "/var/lib/redis-{{ redis_instance_name }}"
|
||||
when: redis_instance_name is defined
|
||||
|
||||
- name: Redis is configured.
|
||||
template:
|
||||
src: redis.conf.j2
|
||||
dest: "{{ redis_conf_path }}"
|
||||
mode: "0644"
|
||||
notify: "{{ redis_restart_handler_name }}"
|
||||
- include: default-server.yml
|
||||
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
|
||||
stat:
|
||||
|
@ -74,7 +58,7 @@
|
|||
- redis
|
||||
- munin
|
||||
|
||||
- include: munin.yml
|
||||
- include: default-munin.yml
|
||||
when:
|
||||
- _munin_installed.stat.exists
|
||||
- _munin_installed.stat.isdir
|
||||
|
@ -83,7 +67,7 @@
|
|||
- redis
|
||||
- munin
|
||||
|
||||
- include: munin-instances.yml
|
||||
- include: instance-munin.yml
|
||||
when:
|
||||
- _munin_installed.stat.exists
|
||||
- _munin_installed.stat.isdir
|
||||
|
@ -102,7 +86,9 @@
|
|||
- nrpe
|
||||
|
||||
- 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:
|
||||
- redis
|
||||
- nrpe
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
daemonize yes
|
||||
pidfile {{ redis_pidfile }}
|
||||
pidfile {{ redis_pid_dir }}/redis-server.pid
|
||||
port {{ redis_port }}
|
||||
bind {{ redis_bind_interface }}
|
||||
|
||||
{% if redis_unixsocket %}
|
||||
unixsocket {{ redis_unixsocket }}
|
||||
unixsocketperm {{ redis_unixsocketperm }}
|
||||
unixsocket {{ redis_socket_dir }}/redis.sock
|
||||
unixsocketperm {{ redis_socket_perms }}
|
||||
{% endif %}
|
||||
|
||||
{% if redis_password %}
|
||||
|
@ -18,7 +18,7 @@ masterauth {{ redis_password_master }}
|
|||
timeout {{ redis_timeout }}
|
||||
|
||||
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,
|
||||
# and optionally update the other syslog parameters to suit your needs.
|
||||
|
@ -33,8 +33,8 @@ save {{ save }}
|
|||
{% endfor %}
|
||||
|
||||
rdbcompression {{ redis_rdbcompression }}
|
||||
dbfilename {{ redis_dbfilename }}
|
||||
dir {{ redis_dbdir }}
|
||||
dbfilename {{ redis_data_file }}
|
||||
dir {{ redis_data_dir }}
|
||||
|
||||
{% if redis_installed_version | version_compare('3.2', '>=') %}
|
||||
protected-mode {{ redis_protected_mode }}
|
||||
|
|
Loading…
Reference in a new issue