forked from evolix/ansible-roles
Jérémy Lecour
51280c586a
This allows to have a coherent block managed by Ansible and extra lines that won't be overwritten. Eg. : automatically added lines for replication, sentinel groups…
208 lines
5.6 KiB
YAML
208 lines
5.6 KiB
YAML
---
|
|
|
|
- name: Verify Redis port
|
|
ansible.builtin.assert:
|
|
that:
|
|
- redis_port | int != 6379
|
|
msg: "If you want to use port 6379, use the default instance, not a named instance."
|
|
when: not (redis_force_instance_port | bool)
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' group is present"
|
|
|
|
ansible.builtin.group:
|
|
name: "redis-{{ redis_instance_name }}"
|
|
state: present
|
|
system: True
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' user is present"
|
|
ansible.builtin.user:
|
|
name: "redis-{{ redis_instance_name }}"
|
|
group: "redis-{{ redis_instance_name }}"
|
|
state: present
|
|
system: True
|
|
shell: '/bin/false'
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' config directory is present"
|
|
ansible.builtin.file:
|
|
dest: "{{ redis_conf_dir }}"
|
|
mode: "0750"
|
|
owner: "redis-{{ redis_instance_name }}"
|
|
group: "redis-{{ redis_instance_name }}"
|
|
follow: yes
|
|
state: directory
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' config hooks directories are present"
|
|
ansible.builtin.file:
|
|
dest: "{{ _dir }}"
|
|
mode: "0750"
|
|
owner: "redis-{{ redis_instance_name }}"
|
|
group: "redis-{{ redis_instance_name }}"
|
|
follow: yes
|
|
state: directory
|
|
loop:
|
|
- "{{ redis_conf_dir }}/redis-server.pre-up.d"
|
|
- "{{ redis_conf_dir }}/redis-server.post-up.d"
|
|
- "{{ redis_conf_dir }}/redis-server.pre-down.d"
|
|
- "{{ redis_conf_dir }}/redis-server.post-down.d"
|
|
loop_control:
|
|
loop_var: _dir
|
|
when:
|
|
- ansible_distribution == "Debian"
|
|
- ansible_distribution_major_version is version('9', '=')
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' hooks examples are present"
|
|
ansible.builtin.command:
|
|
cmd: "cp -a /etc/redis/{{ _dir }}/00_example {{ redis_conf_dir }}/{{ _dir }}"
|
|
args:
|
|
creates: "{{ redis_conf_dir }}/{{ _dir }}/00_example"
|
|
loop:
|
|
- "redis-server.pre-up.d"
|
|
- "redis-server.post-up.d"
|
|
- "redis-server.pre-down.d"
|
|
- "redis-server.post-down.d"
|
|
loop_control:
|
|
loop_var: _dir
|
|
when:
|
|
- ansible_distribution == "Debian"
|
|
- ansible_distribution_major_version is version('9', '=')
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' socket/pid directories are present"
|
|
ansible.builtin.file:
|
|
dest: "{{ _dir }}"
|
|
mode: "0755"
|
|
owner: "redis-{{ redis_instance_name }}"
|
|
group: "redis-{{ redis_instance_name }}"
|
|
follow: yes
|
|
state: directory
|
|
loop:
|
|
- "{{ redis_pid_dir }}"
|
|
- "{{ redis_socket_dir }}"
|
|
loop_control:
|
|
loop_var: _dir
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' data/log directories are present"
|
|
ansible.builtin.file:
|
|
dest: "{{ _dir }}"
|
|
mode: "0751"
|
|
owner: "redis-{{ redis_instance_name }}"
|
|
group: "redis-{{ redis_instance_name }}"
|
|
follow: yes
|
|
state: directory
|
|
loop:
|
|
- "{{ redis_data_dir }}"
|
|
- "{{ redis_log_dir }}"
|
|
loop_control:
|
|
loop_var: _dir
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' log file are present"
|
|
ansible.builtin.file:
|
|
path: "{{ redis_log_dir }}/redis-server.log"
|
|
mode: "660"
|
|
owner: "redis-{{ redis_instance_name }}"
|
|
group: "adm"
|
|
state: touch
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Add begin marker if missing"
|
|
ansible.builtin.lineinfile:
|
|
path: "{{ redis_conf_dir }}/redis.conf"
|
|
line: "# BEGIN {{ redis_conf_marker_label }}"
|
|
insertbefore: BOF
|
|
create: yes
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Add end marker if missing"
|
|
ansible.builtin.lineinfile:
|
|
path: "{{ redis_conf_dir }}/redis.conf"
|
|
line: "# END {{ redis_conf_marker_label }}"
|
|
insertbefore: "# Generated by CONFIG REWRITE"
|
|
create: yes
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Create config if missing"
|
|
ansible.builtin.blockinfile:
|
|
path: "{{ redis_conf_dir }}/redis.conf"
|
|
marker: "# {mark} {{ redis_conf_marker_label }}"
|
|
block: "{{ lookup('ansible.builtin.template', '../templates/redis.conf.j2') }}"
|
|
mode: "0640"
|
|
owner: redis-{{ redis_instance_name }}
|
|
group: redis-{{ redis_instance_name }}
|
|
create: yes
|
|
notify: "{{ redis_restart_handler_name }}"
|
|
tags:
|
|
- redis
|
|
|
|
- name: Systemd template for redis instances is installed (Debian 8)
|
|
ansible.builtin.template:
|
|
src: 'redis-server@jessie.service.j2'
|
|
dest: '/etc/systemd/system/redis-server@.service'
|
|
mode: "0644"
|
|
owner: "root"
|
|
group: "root"
|
|
when:
|
|
- ansible_distribution == "Debian"
|
|
- ansible_distribution_major_version is version('9', '<')
|
|
tags:
|
|
- redis
|
|
|
|
- name: Systemd template for redis instances is installed (Debian 9)
|
|
ansible.builtin.template:
|
|
src: 'redis-server@stretch.service.j2'
|
|
dest: '/etc/systemd/system/redis-server@.service'
|
|
mode: "0644"
|
|
owner: "root"
|
|
group: "root"
|
|
when:
|
|
- ansible_distribution == "Debian"
|
|
- ansible_distribution_major_version is version('9', '=')
|
|
tags:
|
|
- redis
|
|
|
|
- name: Systemd template for redis instances is installed (Debian 10 or later)
|
|
ansible.builtin.template:
|
|
src: 'redis-server@buster.service.j2'
|
|
dest: '/etc/systemd/system/redis-server@.service'
|
|
mode: "0644"
|
|
owner: "root"
|
|
group: "root"
|
|
when:
|
|
- ansible_distribution == "Debian"
|
|
- ansible_distribution_major_version is version('10', '>=')
|
|
tags:
|
|
- redis
|
|
|
|
- name: "Instance '{{ redis_instance_name }}' systemd unit is enabled and started"
|
|
ansible.builtin.systemd:
|
|
name: "{{ redis_systemd_name }}"
|
|
enabled: yes
|
|
state: started
|
|
daemon_reload: yes
|
|
tags:
|
|
- redis
|
|
|
|
- name: Redis SysVinit script is stopped and disabled
|
|
ansible.builtin.service:
|
|
name: "redis-server"
|
|
enabled: no
|
|
state: stopped
|
|
when: redis_default_server_disabled | bool
|
|
tags:
|
|
- redis
|