feat: add GeeseFS mount service and associated scripts
This commit is contained in:
parent
909249db0e
commit
d8e559b102
@ -55,3 +55,43 @@
|
|||||||
path: "{{ temp_dir.path }}"
|
path: "{{ temp_dir.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
when: temp_dir.path is defined
|
when: temp_dir.path is defined
|
||||||
|
|
||||||
|
- name: Create mount directory if it doesn't exist
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /mnt/object_storage
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create GeeseFS mount script
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: geesefs-mount.sh.j2
|
||||||
|
dest: /usr/local/bin/geesefs-mount.sh
|
||||||
|
mode: '0700'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
become: true
|
||||||
|
no_log: true
|
||||||
|
|
||||||
|
- name: Create GeeseFS systemd service
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: geesefs-mount.service.j2
|
||||||
|
dest: /etc/systemd/system/geesefs-mount.service
|
||||||
|
mode: '0644'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
become: true
|
||||||
|
register: geesefs_service_file
|
||||||
|
|
||||||
|
- name: Systemd daemon-reload
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
daemon_reload: true
|
||||||
|
become: true
|
||||||
|
when: geesefs_service_file.changed
|
||||||
|
|
||||||
|
- name: Enable and start GeeseFS mount service
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: geesefs-mount
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
become: true
|
||||||
|
15
config/ansible/templates/geesefs-mount.service.j2
Normal file
15
config/ansible/templates/geesefs-mount.service.j2
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Mount GeeseFS object storage
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/geesefs-mount.sh
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
User=root
|
||||||
|
Group=root
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
15
config/ansible/templates/geesefs-mount.sh.j2
Normal file
15
config/ansible/templates/geesefs-mount.sh.j2
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Export AWS credentials from 1Password
|
||||||
|
export AWS_ACCESS_KEY_ID="$(op read "op://j7nmhqlsjmp2r6umly5t75hzb4/Hetzner Object Storage Bucket/AWS_ACCESS_KEY_ID")"
|
||||||
|
export AWS_SECRET_ACCESS_KEY="$(op read "op://j7nmhqlsjmp2r6umly5t75hzb4/Hetzner Object Storage Bucket/AWS_SECRET_ACCESS_KEY")"
|
||||||
|
|
||||||
|
# Mount GeeseFS
|
||||||
|
exec {{ geesefs_install_path }} \
|
||||||
|
--endpoint https://hel1.your-objectstorage.com \
|
||||||
|
--list-type=2 \
|
||||||
|
--disable-xattr \
|
||||||
|
--no-implicit-dir \
|
||||||
|
--no-dir-object \
|
||||||
|
mvl-sh \
|
||||||
|
/mnt/object_storage
|
Loading…
x
Reference in New Issue
Block a user