--- - name: (redis-server.yml) Set var '_redis_conf' set_fact: _redis_conf: "{{ '/etc/redis.conf' if ansible_distribution == 'CentOS' else '/etc/redis/redis.conf' }}" - name: (redis-server.yml) update apt: update_cache: true cache_valid_time: "{{ 0 if apt_config_updated is defined and apt_config_updated.changed else apt_update_cache_valid_time }}" when: - ansible_facts['distribution'] == "Debian" - apt_update|bool tags: - redis-server - name: (redis-server.yml) dpkg --configure command: > dpkg --configure -a args: warn: false changed_when: _dpkg_configure.stdout_lines | length register: _dpkg_configure when: - ansible_facts['distribution'] == "Debian" - apt_update|bool tags: - redis-server - name: (redis-server.yml) upgrade apt: upgrade: "{{ apt_upgrade_type }}" update_cache: true dpkg_options: "{{ apt_upgrade_dpkg_options | join(',') }}" when: - ansible_facts['distribution'] == "Debian" - apt_upgrade|bool tags: - redis-server - name: (redis-server.yml) Install redis-server packages (debian system) apt: name: redis-server state: present when: - ansible_facts['distribution'] == "Debian" tags: - redis-server - name: (redis-server.yml) Install redis packages (centos / fedora system) yum: name: redis state: latest update_cache: yes when: - ansible_os_family == "RedHat" - ansible_distribution == "CentOS" or ansible_distribution == "Fedora" tags: - redis-server - name: (redis-server.yml) Determine available users getent: database: passwd tags: - redis-server - name: (redis-server.yml) Determine available groups getent: database: group tags: - redis-server - name: (redis-server.yml) Add user 'www-data' to group 'redis' user: name: www-data groups: redis append: yes when: - "'www-data' in my_users" - "'redis' in my_groups" vars: my_users: "{{ getent_passwd.keys()|list }}" my_groups: "{{ getent_group.keys()|list }}" tags: - redis-server - name: (redis-server.yml) Add user 'webadmin' to group 'redis' user: name: webadmin groups: redis append: yes when: - "'webadmin' in my_users" - "'redis' in my_groups" vars: my_users: "{{ getent_passwd.keys()|list }}" my_groups: "{{ getent_group.keys()|list }}" tags: - redis-server - name: (redis-server.yml) Check if redis configuration file exists stat: path: "{{ _redis_conf }}.ORIG" register: redis_conf_exists tags: - redis-server - name: (redis-server.yml) Backup existing redis configuration file. command: cp -a "{{ _redis_conf }}" "{{ _redis_conf }}".ORIG when: - redis_conf_exists.stat.exists == False tags: - redis-server - name: (redis-server.yml) adjust redis configuration lineinfile: dest: "{{ _redis_conf }}" regexp: "{{ item.regexp }}" insertafter: "{{ item.insertafter }}" line: "{{ item.key }} {{ item.val }}" state: present loop: - { regexp: '^bind\s+', key: 'bind', val: '127.0.0.1 ::1', insertafter: '^#\s*bind\s+' } - { regexp: '^port\s+', key: 'port', val: '6379', insertafter: '^#\s*port\s+' } - { regexp: '^unixsocket\s+', key: 'unixsocket', val: '/run/redis/redis-server.sock', insertafter: '^#\s*unixsocketperm' } - { regexp: '^unixsocketperm', key: 'unixsocketperm', val: '770', insertafter: '^unixsocket\s+' } - { regexp: '^logfile', key: 'logfile', val: '/var/log/redis/redis-server.log', insertafter: '^#\s+logfile\s+' } notify: "Restart redis-server" tags: - redis-server