--- - hosts: alpha become: yes vars_files: - '{{ inventory_dir }}/dep_versions.yml' tasks: - name: Update System and Packages ansible.builtin.apt: update_cache: yes upgrade: yes - name: Install System Dependencies ansible.builtin.package: name: build-essential,libssl-dev,libsystemd-dev,git,curl,zip,pkg-config,tcl state: present - name: Create System User for Valkey ansible.builtin.user: name: valkey system: true tags: - valkey - name: Download Valkey Source Code ansible.builtin.get_url: url: https://github.com/valkey-io/valkey/archive/refs/tags/{{ valkey }}.zip dest: /usr/local/src/valkey-{{ valkey }}.zip tags: - valkey - build - name: Unzip Valkey Source Code ansible.builtin.unarchive: src: /usr/local/src/valkey-{{ valkey }}.zip dest: /usr/local/src remote_src: true tags: - valkey - build - name: Compile Valkey community.general.make: chdir: /usr/local/src/valkey-{{ valkey }} params: BUILD_TLS: module USE_SYSTEMD: yes tags: - valkey - build - name: Run Valkey Tests ansible.builtin.command: chdir: /usr/local/src/valkey-{{ valkey }} argv: - make - test tags: - valkey - tests - name: Install Valkey community.general.make: chdir: /usr/local/src/valkey-{{ valkey }} target: install tags: - valkey - name: Create Valkey Config Directory ansible.builtin.file: path: /etc/valkey state: directory owner: valkey group: valkey mode: 0770 tags: - valkey - name: Create Valkey Runtime Directory ansible.builtin.file: path: /var/lib/valkey state: directory owner: valkey group: valkey mode: 0770 tags: - valkey - name: Enable ACL File in Valkey Config ansible.builtin.lineinfile: path: /usr/local/src/valkey-{{ valkey }}/valkey.conf firstmatch: true regex: '^# aclfile' line: aclfile /etc/valkey/users.acl - name: Copy Included Valkey Config File to Config Directory ansible.builtin.copy: remote_src: true src: /usr/local/src/valkey-{{ valkey }}/valkey.conf dest: /etc/valkey/valkey.conf owner: valkey group: valkey mode: 0640 tags: - valkey - name: Copy Valkey ACL File to Config Directory ansible.builtin.copy: src: '{{ inventory_dir }}/includes/users.acl' dest: /etc/valkey/users.acl owner: valkey group: valkey mode: 0640 tags: - valkey - name: Edit Valkey Systemd Service File to Set Proper ExecCommand Parameter ansible.builtin.lineinfile: path: /usr/local/src/valkey-{{ valkey }}/utils/systemd-valkey_server.service firstmatch: true regex: '^ExecStart' line: ExecStart=/usr/local/bin/valkey-server /etc/valkey/valkey.conf --supervised systemd --daemonize no backup: true tags: - valkey - name: Edit Valkey Systemd Service File to Set Proper User Parameter ansible.builtin.lineinfile: path: /usr/local/src/valkey-{{ valkey }}/utils/systemd-valkey_server.service firstmatch: true regex: '^#User' line: User=valkey tags: - valkey - name: Edit Valkey Systemd Service File to Set Proper Group Parameter ansible.builtin.lineinfile: path: /usr/local/src/valkey-{{ valkey }}/utils/systemd-valkey_server.service firstmatch: true regex: '^#Group' line: Group=valkey tags: - valkey - name: Edit Valkey Systemd Service File to Set Proper WorkingDirectory Parameter ansible.builtin.lineinfile: path: /usr/local/src/valkey-{{ valkey }}/utils/systemd-valkey_server.service firstmatch: true regex: '^#WorkingDirectory' line: WorkingDirectory=/var/lib/valkey tags: - valkey - name: Copy Included Valkey Systemd Service File to Proper Location ansible.builtin.copy: remote_src: true src: /usr/local/src/valkey-{{ valkey }}/utils/systemd-valkey_server.service dest: /etc/systemd/system/valkey.service owner: valkey group: valkey mode: 0 tags: - valkey - name: Enable Valkey Service ansible.builtin.systemd_service: name: valkey.service enabled: true daemon_reload: true tags: - valkey - name: Start Valkey Service ansible.builtin.systemd_service: name: valkey.service state: started tags: - valkey