feat: update JuiceFS service to include Redis password and manage Redis service lifecycle

This commit is contained in:
2025-03-14 17:20:27 +01:00
parent e1c5113f87
commit 6929583710
3 changed files with 7 additions and 22 deletions

View File

@@ -32,34 +32,15 @@
mode: '0755' mode: '0755'
become: true become: true
- name: Check if JuiceFS is already formatted
ansible.builtin.stat:
path: /mnt/juicefs-metadata.sqlite
register: metadata_file
- name: Set JuiceFS facts - name: Set JuiceFS facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
hetzner_access_key: "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_ACCESS_KEY_ID') }}" hetzner_access_key: "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_ACCESS_KEY_ID') }}"
hetzner_secret_key: "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_SECRET_ACCESS_KEY') }}" hetzner_secret_key: "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_SECRET_ACCESS_KEY') }}"
redis_password: "{{ lookup('community.general.onepassword', '4cioblm633bdkl6put35lk6ql4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='password') }}"
- name: Include JuiceFS Redis tasks - name: Include JuiceFS Redis tasks
ansible.builtin.include_tasks: services/redis/redis.yml ansible.builtin.include_tasks: services/redis/redis.yml
- name: Format JuiceFS volume
ansible.builtin.command: >
juicefs format
--storage s3
--capacity=5000
--bucket https://mvl-sh.hel1.your-objectstorage.com
--access-key {{ hetzner_access_key }}
--secret-key {{ hetzner_secret_key }}
--trash-days=7
--dir-stats
--hash-prefix
redis://127.0.0.1:6379/0 myjfs
become: true
when: not metadata_file.stat.exists
- name: Create JuiceFS systemd service file - name: Create JuiceFS systemd service file
ansible.builtin.template: ansible.builtin.template:
src: templates/juicefs.service.j2 src: templates/juicefs.service.j2

View File

@@ -28,6 +28,11 @@
vars: vars:
REDIS_PASSWORD: "{{ redis_password }}" REDIS_PASSWORD: "{{ redis_password }}"
- name: Stop Redis service
ansible.builtin.command: docker compose -f "{{ redis_service_dir }}/docker-compose.yml" down --remove-orphans
register: redis_stop
changed_when: redis_stop.rc == 0
- name: Start Redis service - name: Start Redis service
ansible.builtin.command: docker compose -f "{{ redis_service_dir }}/docker-compose.yml" up -d ansible.builtin.command: docker compose -f "{{ redis_service_dir }}/docker-compose.yml" up -d
register: redis_start register: redis_start

View File

@@ -5,8 +5,7 @@ Before=docker.service
[Service] [Service]
Type=simple Type=simple
Environment="REDIS_PASSWORD={{ redis_password }}" ExecStart=/usr/local/bin/juicefs mount redis://:{{ redis_password }}@localhost:6379/0 /mnt/object_storage --cache-dir=/var/jfsCache --buffer-size=1024 --prefetch=4 --cache-size=204800 --attr-cache=3 --entry-cache=3 --open-cache=3
ExecStart=/usr/local/bin/juicefs mount redis://localhost:6379/0 /mnt/object_storage --cache-dir=/var/jfsCache --buffer-size=1024 --prefetch=4 --cache-size=204800 --attr-cache=3 --entry-cache=3 --open-cache=3
Restart=on-failure Restart=on-failure
[Install] [Install]