- nginx: nginx-prometheus-exporter gated by nginx_exporter_enabled, deploys loopback-only stub_status (8090), exporter on 9113 - postgres: postgres_exporter gated by postgres_exporter_enabled, creates postgres_exporter role with pg_monitor, exporter on 9187 - valkey: redis_exporter gated by valkey_exporter_enabled, adds read-only ACL user to users.acl, exporter on 9121 Each exporter follows the nut pattern (tasks/exporter.yml included from main.yml, OS vars, 0600 secret env files, password asserts).
67 lines
1.7 KiB
YAML
67 lines
1.7 KiB
YAML
---
|
|
- name: Validate required password is set
|
|
ansible.builtin.assert:
|
|
that:
|
|
- valkey_admin_password is defined
|
|
- valkey_admin_password | length >= 12
|
|
fail_msg: |
|
|
valkey_admin_password is required (min 12 chars).
|
|
See roles/valkey/defaults/main.yml for configuration instructions.
|
|
success_msg: "Password validation passed"
|
|
|
|
- name: Configure kernel tuning for Valkey
|
|
ansible.builtin.import_tasks: kernel-tuning.yml
|
|
|
|
- name: Load OS-specific variables
|
|
ansible.builtin.include_vars: "{{ item }}"
|
|
with_first_found:
|
|
- "{{ ansible_facts['os_family'] }}.yml"
|
|
- debian.yml
|
|
|
|
- name: Install Valkey
|
|
ansible.builtin.package:
|
|
name: "{{ valkey_package }}"
|
|
state: present
|
|
|
|
- name: Deploy Valkey configuration
|
|
ansible.builtin.template:
|
|
src: valkey.conf.j2
|
|
dest: "{{ valkey_config_file }}"
|
|
owner: "{{ valkey_user }}"
|
|
group: "{{ valkey_group }}"
|
|
mode: "0640"
|
|
notify: Restart Valkey
|
|
|
|
- name: Deploy Valkey ACL file
|
|
ansible.builtin.template:
|
|
src: users.acl.j2
|
|
dest: "{{ valkey_acl_file }}"
|
|
owner: "{{ valkey_user }}"
|
|
group: "{{ valkey_group }}"
|
|
mode: "0640"
|
|
notify: Restart Valkey
|
|
|
|
- name: Enable and start Valkey service
|
|
ansible.builtin.systemd:
|
|
name: "{{ valkey_service_name }}"
|
|
enabled: true
|
|
state: started
|
|
|
|
- name: Setup firewall rules for Valkey
|
|
community.general.ufw:
|
|
rule: allow
|
|
src: "{{ item }}"
|
|
port: "{{ valkey_port }}"
|
|
proto: tcp
|
|
direction: in
|
|
comment: "Valkey"
|
|
loop: "{{ valkey_firewall_allowed_sources }}"
|
|
retries: 5
|
|
delay: 2
|
|
register: ufw_result
|
|
until: ufw_result is succeeded
|
|
|
|
- name: Deploy Prometheus valkey exporter
|
|
ansible.builtin.include_tasks: exporter.yml
|
|
when: valkey_exporter_enabled | bool
|