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:
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)