2026-01-26 00:44:31 -05:00

81 lines
1.8 KiB
YAML

---
# Valkey (Redis fork) Primary Setup
#
# Usage: ansible-playbook -i inventory.ini playbooks/valkey.yml
#
# Creates:
# - Valkey server on valkey-primary
# - Configured for Nebula network access
# - 16 databases (0-15) for multi-tenant use
- name: Setup Valkey Primary
hosts: valkey-primary
become: true
vars_files:
- ../vault/secrets.yml
vars:
valkey_maxmemory: "256mb"
valkey_maxmemory_policy: "allkeys-lru"
tasks:
- name: Install valkey
community.general.pacman:
name: valkey
state: present
- name: Create systemd override directory
file:
path: /etc/systemd/system/valkey.service.d
state: directory
mode: '0755'
- name: Add systemd override for ACL write access
copy:
dest: /etc/systemd/system/valkey.service.d/override.conf
content: |
[Service]
ReadWritePaths=/etc/valkey
mode: '0644'
notify:
- reload systemd
- restart valkey
- name: Deploy ACL file
template:
src: ../templates/valkey-acl.j2
dest: /etc/valkey/users.acl
owner: valkey
group: valkey
mode: '0600'
notify: restart valkey
- name: Deploy valkey.conf
template:
src: ../templates/valkey.conf.j2
dest: /etc/valkey/valkey.conf
owner: valkey
group: valkey
mode: '0640'
notify: restart valkey
- name: Start and enable valkey
systemd:
name: valkey
state: started
enabled: true
- name: Wait for Valkey to be ready
wait_for:
host: "{{ nebula_ip }}"
port: 6379
timeout: 30
handlers:
- name: reload systemd
systemd:
daemon_reload: true
- name: restart valkey
systemd:
name: valkey
state: restarted