debt-pirate/admin/playbooks/01-setup/setup-valkey.yml

157 lines
4.5 KiB
YAML
Raw Normal View History

---
- name: Setup Valkey
hosts: alpha
become: yes
vars_files:
2024-12-01 22:42:56 -05:00
- '{{ inventory_dir }}/vars.yml'
tasks:
2024-12-01 22:42:56 -05:00
- 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
2024-12-01 22:42:56 -05:00
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