Default variable details
Some of debops.minio
default variables have more extensive configuration
than simple strings or lists, here you can find documentation and examples for
them.
minio__instances
The minio__*_instances
variable define the MinIO service instances, managed
by systemd. Each instance can be accessed over its TCP port,
additionally for each instance a corresponding debops.nginx
configuration is generated that allows access to the instance over HTTP via
a subdomain based on its name.
Examples
By default the main
MinIO instance uses shared set of credentials to allow
multiple hosts with the same "tenant". With the configuration below, each host
will have separate set of credentials, and therefore will be owned by
a separate "tenant":
minio__instances:
- name: 'main'
standalone: True
Set an environment variable for a given MinIO instance, for example to set the instance region (variable names are converted to uppercase automatically):
minio__instances:
- name: 'main'
environment:
minio_region: 'us-east-1'
Create additional instances for new tenants:
minio__instances:
- name: 'tenant1'
port: 9001
console_port: 19001
- name: 'tenant2'
port: 9002
console_port: 19002
Configure a MinIO instance as a NAS gateway, with a custom volume mounted from a remote storage server elsewhere:
minio__volumes:
- '/shared/nasvol'
minio__instances:
- name: 'nas-gw'
port: 9001
console_port: 19001
type: 'gateway'
minio_options: 'nas'
volumes: [ '/shared/nasvol' ]
You can find more example configurations in the MinIO deployment guide documentation page.
Syntax
The variables are a list, each instance is defined as a YAML dictionary with specific parameters:
name
Required. The name of a MinIO instance, used in various file paths. Should be a short, alphanumeric string without spaces. Configuration entries with the same
name
parameter are merged together in order of appearance.By default the
name
parameter is used as the subdomain of the DNS domain defined in theminio__domain
variable, on which a given MinIO instance can be reached over HTTP, configured in the nginx service. This can be overridden using thefqdn
parameter.port
Required. The TCP port on which a given MinIO instance listens for connections. Usually the port numbers start from
9000
up.console_port
Required. The static TCP port on which a given MinIO instance listens for connections to the embedded MinIO Console. If not set, MinIO will select a random console port on each startup. By convention, console port is the API port + 10000, so for example
19000
.server_url
Optional. Specify the URL the MinIO Console should use for connecting to the MinIO Server. If not specified,
https://{{ minio__fqdn }}/
will be used automatically.state
Optional. If not defined or
present
, a given MinIO instance and all related configuration will be created on a host. Ifabsent
, a MinIO instance and related configuration will be removed from the host (data is left intact). Ifignore
, a given configuration entry will not be evaluated during role execution.bind
Optional. A string that defines the IP address on which a given MinIO instance should listen for connections, for example
localhost
or192.0.2.1
. If not defined, MinIO will listen for connections on all available interfaces.console_bind
Optional. A string that defines the IP address on which a given MinIO instance should listen for connections to the embedded MinIO Console, for example
localhost
or192.0.2.1
. If not defined, MinIO will listen for connections on all available interfaces.allow
Optional. A list of IP addresses or CIDR subnets which are allowed to connect to a given MinIO instance over its TCP port, managed by the firewall. If not specified, connections from anywhere are allowed.
fqdn
Optional. A Fully Qualified Domain Name on which a given MinIO instance can be reached, defined in the nginx configuration. If not specified, a FQDN will be generated automatically, based on the instance
name
parameter and the DNS domain defined in theminio__domain
variable.domain
/domains
Optional. A string or a list with additional DNS domain for which a given MinIO instance supports using subdomains as "bucket" names. The nginx service will be configured to pass requests on subdomains of these DNS domains to a given MinIO instance.
comment
Optional. A string or YAML text block with comments for a given MinIO instance, included in the generated
/etc/minio/<name>
configuration file.type
Optional. If not specified or
server
, the MinIO instance is started in the "server" mode, normal operation. Ifgateway
, the MinIO instance is started in the "gateway" mode.standalone
Optional, boolean. If not specified or
False
, the MinIO instance is configured in a "distributed" mode, with the access and secret keys shared between instances with the same name on different host nodes. WhenTrue
, a MinIO instance is configured in a "standalone" mode, with each instance with the same name using different access and secret keys on different host nodes.volumes
Optional. A string or a list with MinIO "volumes" that store the data. This can be either an absolute path to a local filesystem directory, or a
https://
URL to a MinIO instance with absolute path to a filesystem directory, for examplehttps://disk.example.org:9000/srv/minio/disk
. See MinIO deployment guide for more relevant examples.If not specified, a given MinIO instance will use a subdirectory based on its
name
parameter in the local filesystemminio__volumes_dir
directory, by default/srv/minio/
.If the value is set to
False
boolean, the$MINIO_VOLUMES
environment variable is not set and the volumes are not defined on the command line. This might be needed in certain configuration scenarios.minio_options
Optional. A string with additional minio binary options for a given MinIO instance. The
--address
option is generated automatically by the role and should not be specified here.root_user
Optional. A string which defines the MinIO instance "root" account, should be an alphanumeric string. If not specified, the role will generate a randomized account name and store it in the
secret/minio/
directory on the Ansible Controller, exact location depending on the instance deployment type (distributed or standalone). See debops.secret for more details about thesecret/
directory.root_password
Optional. A string which defines the MinIO instance "root" account password, should be an randomized string. If not specified, the role will generate a randomized password and store it in the
secret/minio/
directory on the Ansible Controller, exact location depending on the instance deployment type (distributed or standalone). See debops.secret for more details about thesecret/
directory.browser
Optional, boolean. If not specified or
True
, the MinIO web interface is enabled on a given MinIO instance. Setting this parameter toFalse
disables the web interface access.environment
Optional. YAML dictionary with key-value pairs that define additional environment variables for a given MinIO instance, stored in the
/etc/minio/*
configuration files. Variable names are automatically converted to uppercase. Values can be either strings or YAML lists which will be concatenated using commas.