7c632352a0
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).
161 lines
4 KiB
YAML
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
|