feat(valkey): added new basic valkey role
This commit is contained in:
parent
bccc729cd6
commit
68a0e385c2
17 changed files with 380 additions and 0 deletions
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: find systemd unit directory
|
||||
become: true
|
||||
ansible.builtin.command: pkg-config systemd --variable=systemdsystemunitdir
|
||||
changed_when: false
|
||||
register: systemd_unit_directory_cmd
|
||||
- name: find systemd version
|
||||
become: true
|
||||
ansible.builtin.shell: >
|
||||
systemctl --version | awk '{if($1=="systemd" && $2~"^[0-9]+$"){print $2}}'
|
||||
changed_when: false
|
||||
register: systemd_version_cmd
|
||||
- name: set facts
|
||||
ansible.builtin.set_fact:
|
||||
systemd_unit_directory: "{{ systemd_unit_directory_cmd.stdout }}"
|
||||
systemd_version: "{{ systemd_version_cmd.stdout | int }}"
|
|
@ -0,0 +1,102 @@
|
|||
---
|
||||
- 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
|
Loading…
Add table
Add a link
Reference in a new issue