62 lines
2.0 KiB
YAML
62 lines
2.0 KiB
YAML
---
|
|
- name: Deploy Redis for JuiceFS
|
|
block:
|
|
- name: Set Redis facts
|
|
ansible.builtin.set_fact:
|
|
redis_service_dir: "{{ ansible_env.HOME }}/services/juicefs-redis"
|
|
redis_data_dir: "/mnt/object_storage/services/redis"
|
|
redis_password: "{{ lookup('community.general.onepassword', '4cioblm633bdkl6put35lk6ql4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='password') }}"
|
|
|
|
- name: Create Redis service directory
|
|
ansible.builtin.file:
|
|
path: "{{ redis_service_dir }}"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Create Redis data directory
|
|
ansible.builtin.file:
|
|
path: "{{ redis_data_dir }}"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Deploy Redis docker-compose.yml
|
|
ansible.builtin.template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ redis_service_dir }}/docker-compose.yml"
|
|
mode: "0644"
|
|
register: redis_compose
|
|
vars:
|
|
REDIS_PASSWORD: "{{ redis_password }}"
|
|
|
|
- name: Stop juicefs.service to umount JuiceFS
|
|
ansible.builtin.systemd:
|
|
name: juicefs.service
|
|
state: stopped
|
|
enabled: false
|
|
register: juicefs_stop
|
|
changed_when: juicefs_stop.changed
|
|
|
|
- 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
|
|
ansible.builtin.command: docker compose -f "{{ redis_service_dir }}/docker-compose.yml" up -d
|
|
register: redis_start
|
|
changed_when: redis_start.rc == 0
|
|
|
|
- name: Start juicefs.service to mount JuiceFS
|
|
ansible.builtin.systemd:
|
|
name: juicefs.service
|
|
state: started
|
|
enabled: true
|
|
register: juicefs_start
|
|
changed_when: juicefs_start.changed
|
|
|
|
- name: Wait for Redis to be ready
|
|
ansible.builtin.wait_for:
|
|
host: localhost
|
|
port: 6379
|
|
timeout: 30
|