Playbook
JUICE module provides juice.yml playbook to deploy and remove JuiceFS instances.
juice.yml
Task structure in juice.yml:
Scope
| Scope | Limit | Description |
|---|---|---|
| Node | -l <host> |
Deploy all instances on the node |
| Instance | -l <host> -e fsname=<name> |
Only handle specified instance |
Examples:
Common Tags
| Tag | Description |
|---|---|
juice_id |
Validate juice_instances and port conflicts |
juice_install |
Install juicefs package |
juice_cache |
Create shared cache dir |
juice_clean |
Remove instance (state=absent) |
juice_instance |
Create instance (umbrella tag) |
juice_init |
Format filesystem |
juice_dir |
Create mount dir |
juice_config |
Render config files |
juice_launch |
Start service |
juice_register |
Write VictoriaMetrics target file |
Config Updates
Render config only (no restart):
Update config and ensure service is online (without force restart):
If you need new mount options to take effect immediately, manually restart the instance service:
Remove Instance
Removal flow:
- Set instance
statetoabsent - Run
juice_clean
Removal includes stopping the service, lazy unmounting, removing systemd unit and environment files, and reloading systemd. juice_register then rewrites the node’s target file and removes stale scrape endpoints. Running only juice_clean does not update monitoring targets.
PostgreSQL metadata, PostgreSQL jfs_blob data tables, and object-storage data are not deleted.
Monitoring Registration
juice_register writes target file on infra node:
To re-register manually: