Parameters

JUICE module provides 2 global parameters for JuiceFS deployment and configuration

JUICE module parameter list, 2 parameters total:


Parameter Overview

ParameterTypeLevelDescription
juice_cachepathCJuiceFS shared cache directory
juice_instancesdictIJuiceFS instance definitions, required

Default Parameters

JUICE: 2 parameters, defined in roles/juice/defaults/main.yml

#-----------------------------------------------------------------
# JUICE
#-----------------------------------------------------------------
juice_cache: /data/juice              # JuiceFS shared cache directory
juice_instances: {}                   # JuiceFS instance definitions

JUICE

This section contains parameters for the juice role, used by the juice.yml playbook.

juice_cache

Parameter: juice_cache, Type: path, Level: C

Shared local cache directory for all JuiceFS instances, defaults to /data/juice.

JuiceFS isolates cache data by filesystem UUID under this directory, accelerating frequently accessed file reads.

juice_cache: /data/juice

juice_instances

Parameter: juice_instances, Type: dict, Level: I

JuiceFS instance definition dictionary, required parameter, must be explicitly configured at Host level.

Content is JSON/YAML dictionary format, Key is filesystem name (instance ID), Value is instance config object.

juice_instances:
  jfs:                                          # Filesystem name
    path  : /fs                                 # [Required] Mount point path
    meta  : postgres://u:p@h:5432/db            # [Required] Metadata engine URL
    data  : --storage postgres --bucket ...    # Storage backend options
    unit  : juicefs-jfs                         # systemd service name
    mount : ''                                  # Extra mount options
    port  : 9567                                # Metrics port (must be unique per node)
    owner : root                                # Mount point owner
    group : root                                # Mount point group
    mode  : '0755'                              # Mount point permissions
    state : create                              # create | absent

Instance config field descriptions:

FieldRequiredDefaultDescription
pathYes-Mount point path, e.g., /fs, /pgfs
metaYes-Metadata engine URL, typically PostgreSQL connection string
dataNo''juicefs format storage backend params
unitNojuicefs-<name>systemd service unit name
mountNo''juicefs mount extra params
portNo9567Prometheus metrics port, must be unique for multi-instance
ownerNorootMount point directory owner
groupNorootMount point directory group
modeNo0755Mount point directory permissions
stateNocreatecreate to create, absent to remove

Config Examples:

Using PostgreSQL for metadata and data storage:

juice_instances:
  jfs:
    path  : /fs
    meta  : postgres://dbuser_meta:[email protected]:5432/meta
    data  : --storage postgres --bucket 10.10.10.10:5432/meta --access-key dbuser_meta --secret-key DBUser.Meta
    port  : 9567

Using MinIO for data storage:

juice_instances:
  jfs:
    path  : /fs
    meta  : postgres://dbuser_meta:[email protected]:5432/meta
    data  : --storage minio --bucket http://10.10.10.10:9000/juice --access-key minioadmin --secret-key minioadmin
    port  : 9567

Multi-instance config (note unique ports):

juice_instances:
  pgfs:
    path  : /pgfs
    meta  : postgres://dbuser_meta:[email protected]:5432/meta
    data  : --storage postgres --bucket 10.10.10.10:5432/meta --access-key dbuser_meta --secret-key DBUser.Meta
    port  : 9567
  shared:
    path  : /shared
    meta  : postgres://dbuser_meta:[email protected]:5432/shared
    port  : 9568    # Must differ from pgfs
    owner : postgres
    group : postgres

Last Modified 2026-01-25: v4.0 batch update (65761a0)