Start creating an Ansible playbook to bootstrap an environment together
This commit is contained in:
parent
ece116a411
commit
86485e6ab6
6 changed files with 177 additions and 0 deletions
10
admin/.editorconfig
Normal file
10
admin/.editorconfig
Normal file
|
@ -0,0 +1,10 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
tab_width = 2
|
||||
trim_trailing_whitespace = true
|
2
admin/ansible.cfg
Normal file
2
admin/ansible.cfg
Normal file
|
@ -0,0 +1,2 @@
|
|||
[defaults]
|
||||
inventory = ./hosts
|
2
admin/dep_versions.yml
Normal file
2
admin/dep_versions.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
valkey: 8.0.1
|
2
admin/hosts
Normal file
2
admin/hosts
Normal file
|
@ -0,0 +1,2 @@
|
|||
[alpha]
|
||||
saffron.internal
|
2
admin/includes/users.acl
Normal file
2
admin/includes/users.acl
Normal file
|
@ -0,0 +1,2 @@
|
|||
user debt_pirate on >H553jOui2734 +multi +ping +@keyspace +@read +@string +@hash +@set +@pubsub ~*debt_pirate* &*debt_pirate*
|
||||
user default off
|
159
admin/playbooks/01-setup
Normal file
159
admin/playbooks/01-setup
Normal file
|
@ -0,0 +1,159 @@
|
|||
---
|
||||
- hosts: alpha
|
||||
become: yes
|
||||
vars_files:
|
||||
- '{{ inventory_dir }}/dep_versions.yml'
|
||||
|
||||
tasks:
|
||||
- name: Update System and Packages
|
||||
ansible.builtin.apt:
|
||||
update_cache: yes
|
||||
upgrade: yes
|
||||
- name: Install System Dependencies
|
||||
ansible.builtin.package:
|
||||
name: build-essential,libssl-dev,libsystemd-dev,git,curl,zip,pkg-config,tcl
|
||||
state: present
|
||||
- name: Create System User for Valkey
|
||||
ansible.builtin.user:
|
||||
name: valkey
|
||||
system: true
|
||||
tags:
|
||||
- valkey
|
||||
- name: Download Valkey Source Code
|
||||
ansible.builtin.get_url:
|
||||
url: https://github.com/valkey-io/valkey/archive/refs/tags/{{ valkey }}.zip
|
||||
dest: /usr/local/src/valkey-{{ valkey }}.zip
|
||||
tags:
|
||||
- valkey
|
||||
- build
|
||||
- name: Unzip Valkey Source Code
|
||||
ansible.builtin.unarchive:
|
||||
src: /usr/local/src/valkey-{{ valkey }}.zip
|
||||
dest: /usr/local/src
|
||||
remote_src: true
|
||||
tags:
|
||||
- valkey
|
||||
- build
|
||||
- name: Compile Valkey
|
||||
community.general.make:
|
||||
chdir: /usr/local/src/valkey-{{ valkey }}
|
||||
params:
|
||||
BUILD_TLS: module
|
||||
USE_SYSTEMD: yes
|
||||
tags:
|
||||
- valkey
|
||||
- build
|
||||
- name: Run Valkey Tests
|
||||
ansible.builtin.command:
|
||||
chdir: /usr/local/src/valkey-{{ valkey }}
|
||||
argv:
|
||||
- make
|
||||
- test
|
||||
tags:
|
||||
- valkey
|
||||
- tests
|
||||
- name: Install Valkey
|
||||
community.general.make:
|
||||
chdir: /usr/local/src/valkey-{{ valkey }}
|
||||
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: /usr/local/src/valkey-{{ valkey }}/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: /usr/local/src/valkey-{{ valkey }}/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: /usr/local/src/valkey-{{ valkey }}/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: /usr/local/src/valkey-{{ valkey }}/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: /usr/local/src/valkey-{{ valkey }}/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: /usr/local/src/valkey-{{ valkey }}/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: /usr/local/src/valkey-{{ valkey }}/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
|
Loading…
Add table
Reference in a new issue