diff --git a/admin/dep_versions.yml b/admin/dep_versions.yml index f8bf432..fc65612 100644 --- a/admin/dep_versions.yml +++ b/admin/dep_versions.yml @@ -1,2 +1,3 @@ --- -valkey: 8.0.1 +valkey_version: 8.0.1 +valkey_src: '/usr/local/src/valkey-{{ valkey_version }}' diff --git a/admin/playbooks/01-setup b/admin/playbooks/01-setup deleted file mode 100644 index 53a3dc6..0000000 --- a/admin/playbooks/01-setup +++ /dev/null @@ -1,159 +0,0 @@ ---- -- 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 diff --git a/admin/playbooks/01-setup.yml b/admin/playbooks/01-setup.yml new file mode 100644 index 0000000..0122ace --- /dev/null +++ b/admin/playbooks/01-setup.yml @@ -0,0 +1,14 @@ +--- +- hosts: alpha + become: yes + 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 +- import_playbook: 01-setup/setup-valkey.yml + diff --git a/admin/playbooks/01-setup/setup-valkey.yml b/admin/playbooks/01-setup/setup-valkey.yml new file mode 100644 index 0000000..05d86dd --- /dev/null +++ b/admin/playbooks/01-setup/setup-valkey.yml @@ -0,0 +1,151 @@ +--- +- name: Setup Valkey + hosts: alpha + become: yes + vars_files: + - '{{ inventory_dir }}/dep_versions.yml' + tasks: + - 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_version }}.zip + dest: '{{ valkey_src }}.zip' + tags: + - valkey + - build + - name: Unzip Valkey Source Code + ansible.builtin.unarchive: + src: '{{ valkey_src }}.zip' + dest: /usr/local/src + remote_src: true + tags: + - valkey + - build + - name: Compile Valkey + community.general.make: + chdir: '{{ valkey_src }}' + params: + BUILD_TLS: module + USE_SYSTEMD: yes + tags: + - valkey + - build + - name: Run Valkey Tests + ansible.builtin.command: + chdir: '{{ valkey_src }}' + argv: + - make + - test + tags: + - valkey + - tests + - name: Install Valkey + community.general.make: + chdir: '{{ valkey_src }}' + 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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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: '{{ valkey_src }}/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