--- - name: Setup Valkey hosts: alpha become: yes vars_files: - '{{ inventory_dir }}/vars.yml' tasks: - name: Install Build Dependencies ansible.builtin.package: name: build-essential,libssl-dev,libsystemd-dev,zip,pkg-config,tcl state: present - name: Create System User for Valkey ansible.builtin.user: name: valkey system: true create_home: false tags: - valkey - name: Download Valkey Source Code ansible.builtin.get_url: url: https://github.com/valkey-io/valkey/archive/refs/tags/{{ valkey_version }}.zip dest: '{{ valkey_src }}.zip' tags: - valkey - build - name: Unzip Valkey Source Code ansible.builtin.unarchive: src: '{{ valkey_src }}.zip' dest: /usr/local/src remote_src: true tags: - valkey - build - name: Compile Valkey community.general.make: chdir: '{{ valkey_src }}' params: BUILD_TLS: module USE_SYSTEMD: yes tags: - valkey - build - name: Run Valkey Tests ansible.builtin.command: chdir: '{{ valkey_src }}' argv: - make - test tags: - valkey - tests - name: Install Valkey community.general.make: chdir: '{{ valkey_src }}' 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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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