diff --git a/redis/defaults/main.yml b/redis/defaults/main.yml index b67a6568..46aaf555 100644 --- a/redis/defaults/main.yml +++ b/redis/defaults/main.yml @@ -31,6 +31,7 @@ redis_maxmemory_samples: 5 redis_appendonly: "no" redis_appendfsync: "everysec" +# Supported only in Redis 3.2+ redis_protected_mode: "yes" # Add extra include files for local configuration/overrides. diff --git a/redis/tasks/main.yml b/redis/tasks/main.yml index edcb5764..ab07e399 100644 --- a/redis/tasks/main.yml +++ b/redis/tasks/main.yml @@ -10,6 +10,16 @@ - redis - packages +- 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 + +- set_fact: + redis_installed_version: "{{ _redis_installed_version.stdout }}" + check_mode: no + - name: Redis is configured. template: src: redis.conf.j2 diff --git a/redis/templates/redis.conf.j2 b/redis/templates/redis.conf.j2 index 22b9a78e..fc529903 100644 --- a/redis/templates/redis.conf.j2 +++ b/redis/templates/redis.conf.j2 @@ -32,7 +32,9 @@ rdbcompression {{ redis_rdbcompression }} dbfilename {{ redis_dbfilename }} dir {{ redis_dbdir }} +{% if redis_installed_version | version_compare('3.2', '>=') %} protected-mode {{ redis_protected_mode }} +{% endif %} # maxclients 128