Added roles for redis (application, instance)
parent
b5ca1ce80f
commit
f3d7f2f8a2
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
allow_duplicates: no
|
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Install required packages
|
||||||
|
apt:
|
||||||
|
state: present
|
||||||
|
name:
|
||||||
|
- redis-server
|
||||||
|
|
||||||
|
- name: Disable default instance
|
||||||
|
systemd:
|
||||||
|
name: "{{ global_redis_service_name }}"
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
masked: yes
|
||||||
|
|
||||||
|
- name: Remove configuration for default instance
|
||||||
|
file:
|
||||||
|
state: absent
|
||||||
|
path: "{{ global_redis_configuration_directory }}/redis.conf"
|
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# domain # To derive service_name and service_description
|
||||||
|
|
||||||
|
service_name: "redis_{{ domain }}.service"
|
||||||
|
service_file: "{{ global_systemd_configuration_directory }}/{{ service_name }}"
|
||||||
|
service_description: "Redis advanced key-value store for {{ domain }}"
|
||||||
|
|
||||||
|
# system_user # User for redis execution
|
||||||
|
# user_directory # To derive redis_directory
|
||||||
|
redis_directory: "{{ user_directory }}/redis" # Directory for all redis data
|
||||||
|
|
||||||
|
configuration_file: "{{ redis_directory }}/conf"
|
||||||
|
|
||||||
|
data_directory: "{{ redis_directory }}/data"
|
||||||
|
run_directory: "{{ redis_directory }}/run"
|
||||||
|
|
||||||
|
redis_socket_path: "{{ run_directory }}/socket"
|
||||||
|
#pid_file: "{{ run_directory }}/pid"
|
||||||
|
|
||||||
|
redis_max_memory: "128mb"
|
||||||
|
redis_max_memory_policy: "noeviction"
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
allow_duplicates: yes
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- role: misc/handlers
|
||||||
|
- role: redis/application
|
@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Create required directories
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
path: "{{ item }}"
|
||||||
|
owner: "{{ system_user }}"
|
||||||
|
group: "{{ system_user }}"
|
||||||
|
mode: u=rwx,g=rx,o=
|
||||||
|
loop:
|
||||||
|
- "{{ redis_directory }}"
|
||||||
|
- "{{ data_directory }}"
|
||||||
|
- "{{ run_directory }}"
|
||||||
|
|
||||||
|
- name: Configure instance
|
||||||
|
template:
|
||||||
|
src: redis.conf
|
||||||
|
dest: "{{ configuration_file }}"
|
||||||
|
owner: root
|
||||||
|
group: "{{ system_user }}"
|
||||||
|
mode: u=rw,g=r,o=
|
||||||
|
register: configuration_file_task
|
||||||
|
|
||||||
|
- name: Configure service for instance
|
||||||
|
template:
|
||||||
|
src: redis.service
|
||||||
|
dest: "{{ service_file }}"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: u=rw,g=r,o=
|
||||||
|
notify:
|
||||||
|
- reload systemd
|
||||||
|
register: service_file_task
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
||||||
|
|
||||||
|
# TODO transfer to handler when handler reloading is possible
|
||||||
|
- name: Restart service if changes were applied
|
||||||
|
systemd:
|
||||||
|
name: "{{ service_name }}"
|
||||||
|
state: restarted
|
||||||
|
when: configuration_file_task.changed or service_file_task.changed
|
||||||
|
|
||||||
|
- name: Enable and start instance service
|
||||||
|
systemd:
|
||||||
|
name: "{{ service_name }}"
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,41 @@
|
|||||||
|
[Unit]
|
||||||
|
Description={{ service_description }}
|
||||||
|
After=network.target
|
||||||
|
Documentation=http://redis.io/documentation, man:redis-server(1)
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
#Type=forking
|
||||||
|
Type=notify
|
||||||
|
ExecStart=/usr/bin/redis-server {{ configuration_file | quote }}
|
||||||
|
ExecStop=/bin/kill -s TERM $MAINPID
|
||||||
|
#PIDFile=/run/redis/redis-server.pid
|
||||||
|
TimeoutStopSec=0
|
||||||
|
Restart=always
|
||||||
|
User={{ system_user }}
|
||||||
|
Group={{ system_user }}
|
||||||
|
#RuntimeDirectory=redis
|
||||||
|
#RuntimeDirectoryMode=2755
|
||||||
|
|
||||||
|
UMask=007
|
||||||
|
PrivateTmp=yes
|
||||||
|
LimitNOFILE=65535
|
||||||
|
PrivateDevices=yes
|
||||||
|
ProtectHome=yes
|
||||||
|
ReadOnlyDirectories=/
|
||||||
|
ReadWriteDirectories=-{{ data_directory }}
|
||||||
|
ReadWriteDirectories=-{{ run_directory }}
|
||||||
|
|
||||||
|
NoNewPrivileges=true
|
||||||
|
CapabilityBoundingSet=CAP_SETGID CAP_SETUID CAP_SYS_RESOURCE
|
||||||
|
MemoryDenyWriteExecute=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
RestrictRealtime=true
|
||||||
|
RestrictNamespaces=true
|
||||||
|
RestrictAddressFamilies=AF_UNIX
|
||||||
|
|
||||||
|
ProtectSystem=full
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue