ansible-infra/ansible_collections/nullified/infrastructure/roles/valkey/tasks/main.yml
2025-04-21 00:00:00 +00:00

102 lines
2.9 KiB
YAML

---
- name: install dependencies
become: true
ansible.builtin.apt:
update_cache: true
force_apt_get: true
state: present
cache_valid_time: 3600
pkg:
- build-essential
- git
- libjemalloc2
- libjemalloc-dev
- libssl-dev
- libsystemd-dev
- python3-cryptography
- ssl-cert
- name: gather facts
ansible.builtin.include_tasks: gather_facts.yml
- name: create service group
become: true
ansible.builtin.group:
name: "{{ valkey_group }}"
system: true
state: present
- name: create service user
become: true
ansible.builtin.user:
name: "{{ valkey_user }}"
group: "{{ valkey_group }}"
shell: "/usr/sbin/nologin"
home: "{{ valkey_install_dir }}"
create_home: true
system: true
state: present
- name: fetch Valkey {{ valkey_version }} source code archive
become: true
nullified.infrastructure.github_artifact:
asset_type: tag
version: "{{ valkey_version | default('latest') }}"
github_token: "{{ valkey_github_token }}"
repository: "valkey-io/valkey"
creates: "{{ valkey_binary_filepath | default('/usr/local/bin/valkey-server') }}"
cmds:
- tar -zxf {asset_dirname}/{asset_filename}
- |-
cd $(find . -maxdepth 1 -name valkey-io-valkey\* -type d);
make -j $(nproc) BUILD_TLS=yes USE_SYSTEMD=yes &&
make install
- name: create directories
become: true
ansible.builtin.file:
path: '{{ item }}'
owner: '{{ valkey_user }}'
group: '{{ valkey_group }}'
mode: 'u=rwX,g=rX,o='
state: directory
loop:
- '{{ valkey_config_dir }}'
- '{{ valkey_config_dir }}/conf.d'
- '{{ valkey_install_dir }}'
- name: create basic configuration
become: true
ansible.builtin.template:
src: '../templates/valkey.conf.j2'
dest: '{{ valkey_config_dir }}/valkey.conf'
owner: '{{ valkey_user }}'
group: '{{ valkey_group }}'
mode: 'u=rw,g=r,o='
- name: create self-signed certificate
become: true
block:
- name: create private key
community.crypto.openssl_privatekey:
path: '{{ valkey_config_dir }}/valkey.key'
mode: '0600'
owner: '{{ valkey_user }}'
group: '{{ valkey_group }}'
curve: secp521r1
- name: create self-signed certificate
community.crypto.x509_certificate:
path: '{{ valkey_config_dir }}/valkey.crt'
privatekey_path: '{{ valkey_config_dir }}/valkey.key'
provider: selfsigned
mode: '0644'
owner: '{{ valkey_user }}'
group: '{{ valkey_group }}'
when: valkey_generate_cert is truthy
- name: install Valkey service file
become: true
ansible.builtin.template:
src: ../templates/systemd/valkey.service.j2
dest: '{{ systemd_unit_directory }}/valkey.service'
owner: root
group: root
mode: 'u=rwX,g=rX,o='
notify:
- 'valkey : restart service'
- meta: flush_handlers
- name: test server
ansible.builtin.command: valkey-cli --tls --insecure info
changed_when: false