feat: add GeeseFS mount service and associated scripts
Some checks failed
Ansible Lint Check / check-ansible (push) Failing after 13s
Nix Format Check / check-format (push) Successful in 51s
Python Lint Check / check-python (push) Has been cancelled

This commit is contained in:
Menno van Leeuwen 2025-03-12 20:42:17 +01:00
parent 909249db0e
commit d8e559b102
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE
3 changed files with 70 additions and 0 deletions

View File

@ -55,3 +55,43 @@
path: "{{ temp_dir.path }}"
state: absent
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

View 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

View 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