ansible-roles/redis/tasks/main.yml
Mathieu Trossevin 7c632352a0
Replace the include module with include_tasks or import_tasks
The behaviour of the `include` module is badly defined (it try to choose
between statically importing the tasks and dynamically including them)
and can cause problems depending on any number of constraints (mostly if
it choose the wrong behaviour).

Replace it with the `import_tasks` (always statically import tasks) unless
the `include` is in a loop in which case we replace it with
`include_tasks` (always dynamically include tasks).
2023-01-03 14:43:42 +01:00

161 lines
4 KiB
YAML

---
- set_fact:
redis_restart_handler_name: "{{ redis_restart_if_needed | bool | ternary('restart redis', 'restart redis (noop)') }}"
- name: Linux kernel overcommit memory setting is enabled
sysctl:
name: "vm.overcommit_memory"
value: "1"
sysctl_file: "/etc/sysctl.d/evolinux-redis.conf"
state: present
reload: yes
- name: Customize Kernel Transparent Huge Page
import_tasks: thp.yml
when: redis_sysctl_transparent_hugepage_enabled is not none
- name: Redis is installed
apt:
name:
- redis-server
- redis-tools
state: present
tags:
- redis
- packages
- name: Redis Sentinel is installed
apt:
name: "redis-sentinel"
state: present
tags:
- redis
- packages
when: redis_sentinel_install | bool
- name: Get Redis version
shell: "redis-server -v | grep -Eo '(v=\\S+)' | cut -d'=' -f 2 | grep -E '^([0-9]|\\.)+$'"
changed_when: false
check_mode: no
register: _redis_installed_version
tags:
- redis
- set_fact:
redis_installed_version: "{{ _redis_installed_version.stdout }}"
check_mode: no
tags:
- redis
- name: set variables for default mode
set_fact:
redis_conf_dir: "{{ redis_conf_dir_prefix }}"
redis_socket_dir: "{{ redis_socket_dir_prefix }}"
redis_pid_dir: "{{ redis_pid_dir_prefix }}"
redis_log_dir: "{{ redis_log_dir_prefix }}"
redis_data_dir: "{{ redis_data_dir_prefix }}"
when: redis_instance_name is not defined
- name: set variables for instance mode
set_fact:
redis_systemd_name: "redis-server@{{ redis_instance_name }}"
redis_conf_dir: "{{ redis_conf_dir_prefix }}-{{ redis_instance_name }}"
redis_socket_dir: "{{ redis_socket_dir_prefix }}-{{ redis_instance_name }}"
redis_pid_dir: "{{ redis_pid_dir_prefix }}-{{ redis_instance_name }}"
redis_log_dir: "{{ redis_log_dir_prefix }}-{{ redis_instance_name }}"
redis_data_dir: "{{ redis_data_dir_prefix }}-{{ redis_instance_name }}"
when: redis_instance_name is defined
- name: Fail if redis_bind_interface is set
fail:
msg: "Please change 'redis_bind_interface' (String) to 'redis_bind_interfaces' (List)"
when:
- redis_bind_interface is defined
- redis_bind_interface is not none
- redis_bind_interface | length > 0
- name: configure Redis for default mode
import_tasks: default-server.yml
when: redis_instance_name is not defined
- name: configure Redis for instance mode
import_tasks: instance-server.yml
when: redis_instance_name is defined
- name: Is Munin installed
stat:
path: /etc/munin/plugins
register: _munin_installed
tags:
- redis
- munin
- name: configure Munin for default mode
import_tasks: default-munin.yml
when:
- _munin_installed.stat.exists
- _munin_installed.stat.isdir
- redis_instance_name is undefined
tags:
- redis
- munin
- name: configure Munin for instance mode
import_tasks: instance-munin.yml
when:
- _munin_installed.stat.exists
- _munin_installed.stat.isdir
- redis_instance_name is defined
tags:
- redis
- munin
- name: Is log2mail installed
stat:
path: /etc/log2mail/config
register: _log2mail_installed
tags:
- redis
- log2mail
- name: configure log2mail for default mode
import_tasks: default-log2mail.yml
when:
- _log2mail_installed.stat.exists
- _log2mail_installed.stat.isdir
- redis_instance_name is undefined
tags:
- redis
- log2mail
- name: configure log2mail for instance mode
import_tasks: instance-log2mail.yml
when:
- _log2mail_installed.stat.exists
- _log2mail_installed.stat.isdir
- redis_instance_name is defined
tags:
- redis
- log2mail
- name: is NRPE present ?
stat:
path: /etc/nagios/nrpe.d/evolix.cfg
check_mode: no
register: nrpe_evolix_config
tags:
- redis
- nrpe
- import_tasks: nrpe.yml
when: nrpe_evolix_config.stat.exists
tags:
- redis
- nrpe
- name: Force restart redis
command: /bin/true
notify: restart redis
when: redis_restart_force | bool