--- - name: (redis-server.yml) Set var 'common_redis_conf' ansible.builtin.set_fact: common_redis_conf: >- {{ '/etc/redis.conf' if ansible_facts['distribution'] == 'CentOS' else '/etc/redis/redis.conf' }} - name: (redis-server.yml) update ansible.builtin.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) Configure any half-installed packages 'dpkg --configure -a' ansible.builtin.command: dpkg --configure -a register: common_dpkg_configure changed_when: (common_dpkg_configure.stdout | default('')) | length > 0 failed_when: common_dpkg_configure.rc != 0 when: - ansible_facts['distribution'] == "Debian" - apt_dpkg_configure|bool tags: - redis-server - name: (redis-server.yml) upgrade ansible.builtin.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) ansible.builtin.apt: name: redis-server state: present when: - ansible_facts['distribution'] == "Debian" tags: - redis-server - name: (redis-server.yml) Install redis packages (centos / fedora system) ansible.builtin.dnf: name: redis state: present update_cache: true when: - ansible_facts["os_family"] == "RedHat" - ansible_distribution == "CentOS" or ansible_distribution == "Fedora" tags: - redis-server - name: (redis-server.yml) Determine available users ansible.builtin.getent: database: passwd tags: - redis-server - name: (redis-server.yml) Determine available groups ansible.builtin.getent: database: group tags: - redis-server - name: (redis-server.yml) Add user 'www-data' to group 'redis' ansible.builtin.user: name: www-data groups: redis append: true when: - "'www-data' in my_users" - "'redis' in my_groups" vars: my_users: "{{ ansible_facts.getent_passwd.keys() | list }}" my_groups: "{{ ansible_facts.getent_group.keys() | list }}" tags: - redis-server - name: (redis-server.yml) Add user 'webadmin' to group 'redis' ansible.builtin.user: name: webadmin groups: redis append: true when: - "'webadmin' in my_users" - "'redis' in my_groups" vars: my_users: "{{ ansible_facts.getent_passwd.keys() | list }}" my_groups: "{{ ansible_facts.getent_group.keys() | list }}" tags: - redis-server - name: (redis-server.yml) Check if redis configuration file exists ansible.builtin.stat: path: "{{ common_redis_conf }}.ORIG" register: common_redis_conf_exists tags: - redis-server - name: (redis-server.yml) Backup existing redis configuration file. ansible.builtin.copy: src: "{{ common_redis_conf }}" dest: "{{ common_redis_conf }}.ORIG" remote_src: true mode: preserve when: - not common_redis_conf_exists.stat.exists tags: - redis-server - name: (redis-server.yml) adjust redis configuration ansible.builtin.lineinfile: dest: "{{ common_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