Version information
This version is compatible with:
- Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
- Puppet >= 4.10.0 < 8.0.0
- , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'kogitoapp-minio', '1.1.4'
Learn more about managing modules with a PuppetfileDocumentation
puppet-minio
Description
A Puppet module for managing Minio (Amazon S3 compatible storage) settings.
This module allows you to install and configure Minio using pre-built binaries and does not need external package repositories. You can chose to install Minio with default settings, or customize all settings to your liking.
Setup
What Minio affects
puppet-minio
depends on- it manages a user and group
minio
- it manages the Minio directory (
/opt/minio
) and the storage (/var/minio
) - it installs a
minio
service listening on port9000
Beginning with Minio
The simplest use case is to rely on defaults. This can be done by simply including the class:
include ::minio
Reference
See REFERENCE.md for the full reference.
Configuration
In addition to standard minio server environment variables, there are the following ones:
-
MINIO_OPTS
- used to specify additional command-line arguments for the minio server. Example:"--quiet --anonymous"
(with quotes) -
MINIO_DEPLOYMENT_DEFINITION
- used to specify custom deployment definition. Required for erasure coding and distributed mode. Not required if used with a single storage root. Examples:/var/minio{1...4}
- for erasure codinghttps://server{1...4}/var/minio{1...4} https://server{4...8}/var/minio{1...4}
- for distributed deployments/var/minio
- for standalone deployment without erasure coding. Will be the default value ifstorage_root
is/var/minio
or['/var/minio']
.
Class: minio
class { 'minio':
package_ensure => 'present',
owner => 'minio',
group => 'minio',
base_url => 'https://dl.minio.io/server/minio/release',
version => 'RELEASE.2021-08-20T18-32-01Z',
checksum => '0bf72d6fd0a88fee35ac598a1e7a5c90c78b53b6db3988414e34535fb6cf420c',
checksum_type => 'sha256',
configuration_directory => '/etc/minio',
installation_directory => '/opt/minio',
storage_root => '/var/minio', # Could also be an array
listen_ip => '127.0.0.1',
listen_port => 9000,
configuration => {
'MINIO_ROOT_USER' => 'admin',
'MINIO_ROOT_PASSWORD' => 'password',
'MINIO_REGION_NAME' => 'us-east-1',
'MINIO_OPTS' => '"--quiet --anonymous"',
'MINIO_DEPLOYMENT_DEFINITION' => 'https://example{1..4}.com/var/minio{1...4} https://example{5..8}.com/var/minio{1...4}'
},
manage_service => true,
service_template => 'minio/systemd.erb',
service_provider => 'systemd',
service_ensure => 'running',
manage_server_installation => true,
manage_client_installation => true,
client_package_ensure => 'present',
client_base_url => 'https://dl.minio.io/client/mc/release',
client_version => 'RELEASE.2021-07-27T06-46-19Z',
client_checksum => '0df81285771e12e16a0c4c2f5e0ebc700e66abb8179013cc740d48b0abad49be',
client_checksum_type => 'sha256',
client_installation_directory => '/opt/minioclient',
cert_ensure => 'present',
cert_directory => '/etc/minio/certs',
default_cert_configuration => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'localhost',
'source_key_name' => 'localhost',
},
additional_certs => {
'example' => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'example.test',
'source_key_name' => 'example.test',
}
},
}
Class: minio::server
class { 'minio::server':
manage_server_installation => true,
package_ensure => 'present',
owner => 'minio',
group => 'minio',
base_url => 'https://dl.minio.io/server/minio/release',
version => 'RELEASE.2021-08-20T18-32-01Z',
checksum => '0bf72d6fd0a88fee35ac598a1e7a5c90c78b53b6db3988414e34535fb6cf420c',
checksum_type => 'sha256',
configuration_directory => '/etc/minio',
installation_directory => '/opt/minio',
storage_root => '/var/minio', # Could also be an array
listen_ip => '127.0.0.1',
listen_port => 9000,
configuration => {
'MINIO_ROOT_USER' => 'admin',
'MINIO_ROOT_PASSWORD' => 'password',
'MINIO_REGION_NAME' => 'us-east-1',
'MINIO_OPTS' => '"--quiet --anonymous"',
'MINIO_DEPLOYMENT_DEFINITION' => 'https://example{1..4}.com/var/minio{1...4} https://example{5..8}.com/var/minio{1...4}'
},
manage_service => true,
service_template => 'minio/systemd.erb',
service_provider => 'systemd',
service_ensure => 'running',
cert_ensure => 'present',
cert_directory => '/etc/minio/certs',
default_cert_configuration => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'localhost',
'source_key_name' => 'localhost',
},
additional_certs => {
'example' => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'example.test',
'source_key_name' => 'example.test',
}
},
}
Class: minio::client
class { 'minio::client':
manage_client_installation => true,
package_ensure => 'present',
base_url => 'https://dl.minio.io/client/mc/release',
version => 'RELEASE.2021-07-27T06-46-19Z',
checksum => '0df81285771e12e16a0c4c2f5e0ebc700e66abb8179013cc740d48b0abad49be',
checksum_type => 'sha256',
installation_directory => '/usr/local/bin',
binary_name => 'minio-client',
aliases => {
'default' => {
'ensure' => 'present',
'endpoint' => 'http://localhost:9000',
'access_key' => 'admin',
'secret_key' => Sensitive('password'), # can also be a string
'api_signature' => 'S3v4', # optional
'path_lookup_support' => 'on', # optional
}
},
purge_unmanaged_aliases => true
}
Limitations
See metadata.json for supported platforms.
- It's currently not possible to purge unmanaged client aliases in the same run when the client is being installed.
Development
Running tests
This project contains tests for rspec-puppet.
Quickstart:
pdk bundle install
pdk bundle exec rake 'litmus:provision_list[puppet6]'
pdk bundle exec rake 'litmus:install_agent[puppet6]'
pdk bundle exec rake litmus:install_module
pdk bundle exec rake litmus:acceptance:parallel
pdk bundle exec rake litmus:tear_down
When submitting pull requests, please make sure that module documentation, test cases and syntax checks pass.
Reference
Table of Contents
Classes
minio
: Manages a Minio installation on various Linux/BSD operating systems.minio::client
: Manages a Minio client (mc) on various Linux/BSD operating systems.minio::client::config
: Manages a Minio client (mc) configuration various Linux/BSD operating systems.minio::client::install
: Manages a Minio client (mc) installation various Linux/BSD operating systems.minio::server
: Manages a Minio server installation on various Linux/BSD operating systems.minio::server::certs
: Manages minio certificate deployment.minio::server::config
: Applies configuration for::minio::server
class to system.minio::server::install
: Installs minio server and required service definitions.minio::server::service
: Manages services for the::minio::server
class.minio::server::user
: Manages user for the minio server installations.
Resource types
minio_client_alias
: Manages minio client aliases
Classes
minio
Copyright
Copyright 2017-2021 Daniel S. Reichenbach https://kogitoapp.com
Examples
class { 'minio':
package_ensure => 'present',
owner => 'minio',
group => 'minio',
base_url => 'https://dl.minio.io/server/minio/release',
version => 'RELEASE.2021-08-20T18-32-01Z',
checksum => '0bf72d6fd0a88fee35ac598a1e7a5c90c78b53b6db3988414e34535fb6cf420c',
checksum_type => 'sha256',
configuration_directory => '/etc/minio',
installation_directory => '/opt/minio',
storage_root => '/var/minio',
listen_ip => '127.0.0.1',
listen_port => 9000,
configuration => {
'MINIO_ROOT_USER' => 'admin',
'MINIO_ROOT_PASSWORD' => 'password',
'MINIO_REGION_NAME' => 'us-east-1',
},
manage_service => true,
service_template => 'minio/systemd.erb',
service_provider => 'systemd',
service_ensure => 'running',
manage_server_installation => true,
manage_client_installation => true,
client_package_ensure => 'present',
client_base_url => 'https://dl.minio.io/client/mc/release',
client_version => 'RELEASE.2021-07-27T06-46-19Z',
client_checksum => '0df81285771e12e16a0c4c2f5e0ebc700e66abb8179013cc740d48b0abad49be',
client_checksum_type => 'sha256',
client_installation_directory => '/opt/minioclient',
cert_ensure => 'present',
cert_directory => '/etc/minio/certs',
default_cert_name => 'miniodefault',
default_cert_configuration => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'localhost',
'source_key_name' => 'localhost',
},
additional_certs => {
'example' => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'example.test',
'source_key_name' => 'example.test',
}
},
custom_configuration_file_path => '/etc/default/minio',
}
Parameters
The following parameters are available in the minio
class:
package_ensure
manage_user
manage_group
manage_home
owner
group
home
base_url
version
checksum
checksum_type
configuration_directory
installation_directory
storage_root
listen_ip
listen_port
configuration
manage_service
service_ensure
service_template
service_provider
manage_server_installation
manage_client_installation
client_package_ensure
client_base_url
client_version
client_checksum
client_checksum_type
client_installation_directory
client_binary_name
client_aliases
purge_unmanaged_client_aliases
cert_ensure
cert_directory
default_cert_name
default_cert_configuration
additional_certs
custom_configuration_file_path
package_ensure
Data type: Enum['present', 'absent']
Decides if the minio
binary will be installed. Default: present
manage_user
Data type: Boolean
Should we manage provisioning the user? Default: true
manage_group
Data type: Boolean
Should we manage provisioning the group? Default: true
manage_home
Data type: Boolean
Should we manage provisioning the home directory? Default: true
owner
Data type: String
The user owning minio and its' files. Default: 'minio'
group
Data type: String
The group owning minio and its' files. Default: 'minio'
home
Data type: Optional[Stdlib::Absolutepath]
Qualified path to the users' home directory. Default: empty
base_url
Data type: Stdlib::HTTPUrl
Download base URL for the server. Default: Github. Can be used for local mirrors.
version
Data type: String
Server release version to be installed.
checksum
Data type: String
Checksum for the server binary.
checksum_type
Data type: String
Type of checksum used to verify the server binary being installed. Default: sha256
configuration_directory
Data type: Stdlib::Absolutepath
Directory holding Minio configuration file. Default: /etc/minio
installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio installation. Default: /opt/minio
storage_root
Data type: Variant[Stdlib::Absolutepath, Array[Stdlib::Absolutepath]]
Directory or directories where minio will keep all data. Default: /var/minio
listen_ip
Data type: Stdlib::IP::Address
IP address on which Minio should listen to requests.
listen_port
Data type: Stdlib::Port
Port on which Minio should listen to requests.
configuration
Data type: Hash[String[1], Variant[String, Integer]]
Hash with environment settings for Minio.
manage_service
Data type: Boolean
Should we manage a server service definition for Minio? Default: true
service_ensure
Data type: Stdlib::Ensure::Service
Defines the state of the minio server service. Default: running
service_template
Data type: String
Path to the server service template file.
service_provider
Data type: String
Which service provider do we use?
manage_server_installation
Data type: Boolean
Decides if puppet should manage the minio server installation.
manage_client_installation
Data type: Boolean
Decides if puppet should manage the minio client installation.
client_package_ensure
Data type: Enum['present', 'absent']
Decides if the mc
client binary will be installed. Default: present
client_base_url
Data type: Stdlib::HTTPUrl
Download base URL for the minio client. Default: Github. Can be used for local mirrors.
client_version
Data type: String
Client release version to be installed.
client_checksum
Data type: String
Checksum for the client binary.
client_checksum_type
Data type: String
Type of checksum used to verify the client binary being installed. Default: sha256
client_installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio client installation. Default: /opt/minioclient
client_binary_name
Data type: String
Target name of the minio client binary. Use this to avoid collisions with another mc
.
client_aliases
Data type: Hash
List of aliases to add to the minio client configuration. For parameter description see minio_client_alias
.
purge_unmanaged_client_aliases
Data type: Boolean
Decides if puppet should purge unmanaged minio client aliases
cert_ensure
Data type: Enum['present', 'absent']
Decides if minio certificates binary will be installed.
cert_directory
Data type: Stdlib::Absolutepath
Directory where minio will keep all cerfiticates.
default_cert_name
Data type: Optional[String[1]]
Name of the default certificate. If no value provided, miniodefault
is going
to be used.
default_cert_configuration
Data type: Optional[Hash]
Hash with the configuration for the default certificate. See certs::site
of the broadinstitute/certs
module for parameter descriptions.
additional_certs
Data type: Optional[Hash]
Hash of the additional certificates to deploy. The key is a directory name, value is
a hash of certificate configuration. See certs::site
of the broadinstitute/certs
module for parameter descriptions. Important: if you use additional certificates,
their corresponding SAN names should be filled for SNI to work.
custom_configuration_file_path
Data type: Optional[Stdlib::Absolutepath]
Optional custom location of the minio environment file.
minio::client
Manages a Minio client (mc) on various Linux/BSD operating systems.
Examples
class { 'minio::client':
manage_client_installation => true,
package_ensure => 'present',
base_url => 'https://dl.minio.io/client/mc/release',
version => 'RELEASE.2021-07-27T06-46-19Z',
checksum => '0df81285771e12e16a0c4c2f5e0ebc700e66abb8179013cc740d48b0abad49be',
checksum_type => 'sha256',
installation_directory => '/usr/local/bin',
binary_name => 'minio-client',
aliases => {
'default' => {
'ensure' => 'present',
'endpoint' => 'http://localhost:9000',
'access_key' => 'admin',
'secret_key' => Sensitive('password'), # can also be a string
'api_signature' => 'S3v4', # optional
'path_lookup_support' => 'on', # optional
}
},
purge_unmanaged_aliases => true
}
Parameters
The following parameters are available in the minio::client
class:
manage_client_installation
package_ensure
base_url
version
checksum
checksum_type
installation_directory
aliases
purge_unmanaged_aliases
binary_name
manage_client_installation
Data type: Boolean
Decides if puppet should manage the minio client installation.
Default value: $minio::manage_client_installation
package_ensure
Data type: Enum['present', 'absent']
Decides if the mc
client binary will be installed. Default: present
Default value: $minio::client_package_ensure
base_url
Data type: Stdlib::HTTPUrl
Download base URL for the minio client. Default: Github. Can be used for local mirrors.
Default value: $minio::client_base_url
version
Data type: String
Client release version to be installed.
Default value: $minio::client_version
checksum
Data type: String
Checksum for the client binary.
Default value: $minio::client_checksum
checksum_type
Data type: String
Type of checksum used to verify the client binary being installed. Default: sha256
Default value: $minio::client_checksum_type
installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio client installation. Default: /opt/minioclient
Default value: $minio::client_installation_directory
aliases
Data type: Hash
List of aliases to add to the minio client configuration. For parameter description see minio_client_alias
.
Default value: $minio::client_aliases
purge_unmanaged_aliases
Data type: Boolean
Decides if puppet should purge unmanaged minio client aliases
Default value: $minio::purge_unmanaged_client_aliases
binary_name
Data type: String
Default value: $minio::client_binary_name
minio::client::config
Manages a Minio client (mc) configuration various Linux/BSD operating systems.
Examples
class { 'minio::client::config':
aliases => {
'default' => {
'ensure' => 'present',
'endpoint' => 'http://localhost:9000',
'access_key' => 'admin',
'secret_key' => Sensitive('password'), # can also be a string
'api_signature' => 'S3v4', # optional
'path_lookup_support' =>'on', # optional
}
},
purge_unmanaged_aliases => true
}
Parameters
The following parameters are available in the minio::client::config
class:
aliases
Data type: Hash
List of aliases to add to the minio client configuration. For parameter description see minio_client_alias
.
Default value: $minio::client::aliases
purge_unmanaged_aliases
Data type: Boolean
Decides if puppet should purge unmanaged minio client aliases
Default value: $minio::client::purge_unmanaged_aliases
minio::client::install
Manages a Minio client (mc) installation various Linux/BSD operating systems.
Examples
class { 'minio::client::install':
package_ensure => 'present',
base_url => 'https://dl.minio.io/client/mc/release',
version => 'RELEASE.2021-07-27T06-46-19Z',
checksum => '0df81285771e12e16a0c4c2f5e0ebc700e66abb8179013cc740d48b0abad49be',
checksum_type => 'sha256',
installation_directory => '/usr/local/bin',
binary_name => 'minio-client'
}
Parameters
The following parameters are available in the minio::client::install
class:
package_ensure
Data type: Enum['present', 'absent']
Decides if the mc
client binary will be installed. Default: present
Default value: $minio::client::package_ensure
base_url
Data type: Stdlib::HTTPUrl
Download base URL for the minio client. Default: Github. Can be used for local mirrors.
Default value: $minio::client::base_url
version
Data type: String
Client release version to be installed.
Default value: $minio::client::version
checksum
Data type: String
Checksum for the client binary.
Default value: $minio::client::checksum
checksum_type
Data type: String
Type of checksum used to verify the client binary being installed. Default: sha256
Default value: $minio::client::checksum_type
installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio client installation. Default: /opt/minioclient
Default value: $minio::client::installation_directory
binary_name
Data type: String
Default value: $minio::client::binary_name
minio::server
Copyright
Copyright 2017-2021 Daniel S. Reichenbach https://kogitoapp.com
Examples
class { 'minio::server':
manage_server_installation => true,
package_ensure => 'present',
owner => 'minio',
group => 'minio',
base_url => 'https://dl.minio.io/server/minio/release',
version => 'RELEASE.2021-08-20T18-32-01Z',
checksum => '0bf72d6fd0a88fee35ac598a1e7a5c90c78b53b6db3988414e34535fb6cf420c',
checksum_type => 'sha256',
configuration_directory => '/etc/minio',
installation_directory => '/opt/minio',
storage_root => '/var/minio', # Could also be an array
listen_ip => '127.0.0.1',
listen_port => 9000,
configuration => {
'MINIO_ROOT_USER' => 'admin',
'MINIO_ROOT_PASSWORD' => 'password',
'MINIO_REGION_NAME' => 'us-east-1',
},
manage_service => true,
service_template => 'minio/systemd.erb',
service_provider => 'systemd',
service_ensure => 'running',
cert_ensure => 'present',
cert_directory => '/etc/minio/certs',
default_cert_name => 'miniodefault',
default_cert_configuration => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'localhost',
'source_key_name' => 'localhost',
},
additional_certs => {
'example' => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'example.test',
'source_key_name' => 'example.test',
}
},
custom_configuration_file_path => '/etc/default/minio',
}
Parameters
The following parameters are available in the minio::server
class:
manage_server_installation
package_ensure
manage_user
manage_group
manage_home
owner
group
base_url
home
base_url
version
checksum
checksum_type
configuration_directory
installation_directory
storage_root
listen_ip
listen_port
configuration
manage_service
service_ensure
service_template
service_provider
cert_ensure
cert_directory
default_cert_name
default_cert_configuration
additional_certs
custom_configuration_file_path
manage_server_installation
Data type: Boolean
Decides if puppet should manage the minio server installation.
Default value: $minio::manage_server_installation
package_ensure
Data type: Enum['present', 'absent']
Decides if the minio
binary will be installed. Default: present
Default value: $minio::package_ensure
manage_user
Data type: Boolean
Should we manage provisioning the user? Default: true
Default value: $minio::manage_user
manage_group
Data type: Boolean
Should we manage provisioning the group? Default: true
Default value: $minio::manage_group
manage_home
Data type: Boolean
Should we manage provisioning the home directory? Default: true
Default value: $minio::manage_home
owner
Data type: String
The user owning minio and its' files. Default: 'minio'
Default value: $minio::owner
group
Data type: String
The group owning minio and its' files. Default: 'minio'
Default value: $minio::group
base_url
Data type: Stdlib::HTTPUrl
Download base URL for the server. Can be used for local mirrors.
Default value: $minio::base_url
home
Data type: Optional[Stdlib::Absolutepath]
Qualified path to the users' home directory. Default: empty
Default value: $minio::home
base_url
Data type: Stdlib::HTTPUrl
Download base URL for the server. Default: Github. Can be used for local mirrors.
Default value: $minio::base_url
version
Data type: String
Release version to be installed.
Default value: $minio::version
checksum
Data type: String
Checksum for the binary.
Default value: $minio::checksum
checksum_type
Data type: String
Type of checksum used to verify the binary being installed. Default: sha256
Default value: $minio::checksum_type
configuration_directory
Data type: Stdlib::Absolutepath
Directory holding Minio configuration file. Default: /etc/minio
Default value: $minio::configuration_directory
installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio installation. Default: /opt/minio
Default value: $minio::installation_directory
storage_root
Data type: Variant[Stdlib::Absolutepath, Array[Stdlib::Absolutepath]]
Directory or directories where minio will keep all data. Default: /var/minio
Default value: $minio::storage_root
listen_ip
Data type: Stdlib::IP::Address
IP address on which Minio should listen to requests.
Default value: $minio::listen_ip
listen_port
Data type: Stdlib::Port
Port on which Minio should listen to requests.
Default value: $minio::listen_port
configuration
Data type: Hash[String[1], Variant[String, Integer]]
Hash with environment settings for Minio.
Default value: $minio::configuration
manage_service
Data type: Boolean
Should we manage a server service definition for Minio? Default: true
Default value: $minio::manage_service
service_ensure
Data type: Stdlib::Ensure::Service
Defines the state of the minio server service. Default: running
Default value: $minio::service_ensure
service_template
Data type: String
Path to the server service template file.
Default value: $minio::service_template
service_provider
Data type: String
Which service provider do we use?
Default value: $minio::service_provider
cert_ensure
Data type: Enum['present', 'absent']
Decides if minio certificates binary will be installed.
Default value: $minio::cert_ensure
cert_directory
Data type: Stdlib::Absolutepath
Directory where minio will keep all cerfiticates.
Default value: $minio::cert_directory
default_cert_name
Data type: Optional[String[1]]
Name of the default certificate. If no value provided, miniodefault
is going
to be used.
Default value: $minio::default_cert_name
default_cert_configuration
Data type: Optional[Hash]
Hash with the configuration for the default certificate. See certs::site
of the broadinstitute/certs
module for parameter descriptions.
Default value: $minio::default_cert_configuration
additional_certs
Data type: Optional[Hash]
Hash of the additional certificates to deploy. The key is a directory name, value is
a hash of certificate configuration. See certs::site
of the broadinstitute/certs
module for parameter descriptions. Important: if you use additional certificates,
their corresponding SAN names should be filled for SNI to work.
Default value: $minio::additional_certs
custom_configuration_file_path
Data type: Optional[Stdlib::Absolutepath]
Optional custom location of the minio environment file.
Default value: $minio::custom_configuration_file_path
minio::server::certs
Manages minio certificate deployment.
Examples
class {'minio::server::certs':
cert_ensure => 'present',
owner => 'minio',
group => 'minio',
cert_directory => '/etc/minio/certs',
default_cert_name => 'miniodefault',
default_cert_configuration => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'localhost',
'source_key_name' => 'localhost',
},
additional_certs => {
'example' => {
'source_path' => 'puppet:///modules/minio/examples',
'source_cert_name' => 'example.test',
'source_key_name' => 'example.test',
}
}
}
Parameters
The following parameters are available in the minio::server::certs
class:
cert_ensure
owner
group
cert_directory
default_cert_name
default_cert_configuration
additional_certs
cert_ensure
Data type: Enum['present', 'absent']
Decides if minio certificates binary will be installed.
Default value: $minio::server::cert_ensure
owner
Data type: String
The user owning minio cerfificates.
Default value: $minio::server::owner
group
Data type: String
The group owning minio certificates.
Default value: $minio::server::group
cert_directory
Data type: Stdlib::Absolutepath
Directory where minio will keep all cerfiticates.
Default value: $minio::server::cert_directory
default_cert_name
Data type: Optional[String[1]]
Name of the default certificate. If no value provided, miniodefault
is going
to be used.
Default value: $minio::server::default_cert_name
default_cert_configuration
Data type: Optional[Hash]
Hash with the configuration for the default certificate. See certs::site
of the broadinstitute/certs
module for parameter descriptions.
Default value: $minio::server::default_cert_configuration
additional_certs
Data type: Optional[Hash]
Hash of the additional certificates to deploy. The key is a directory name, value is
a hash of certificate configuration. See certs::site
of the broadinstitute/certs
module for parameter descriptions. Important: if you use additional certificates,
their corresponding SAN names should be filled for SNI to work.
Default value: $minio::server::additional_certs
minio::server::config
Copyright
Copyright 2017-2021 Daniel S. Reichenbach https://kogitoapp.com
Examples
class { 'minio::server::config':
owner => 'minio',
group => 'minio',
configuration_directory => '/etc/minio',
installation_directory => '/opt/minio',
storage_root => '/var/minio',
configuration => {
'MINIO_ROOT_USER' => 'admin',
'MINIO_ROOT_PASSWORD' => 'password',
'MINIO_REGION_NAME' => 'us-east-1',
},
custom_configuration_file_path => '/etc/default/minio',
}
Parameters
The following parameters are available in the minio::server::config
class:
owner
group
configuration_directory
installation_directory
storage_root
configuration
custom_configuration_file_path
owner
Data type: String
The user owning minio and its' files.
Default value: $minio::server::owner
group
Data type: String
The group owning minio and its' files.
Default value: $minio::server::group
configuration_directory
Data type: Stdlib::Absolutepath
Directory holding Minio configuration file./minio`
Default value: $minio::server::configuration_directory
installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio installation./minio`
Default value: $minio::server::installation_directory
storage_root
Data type: Variant[Stdlib::Absolutepath, Array[Stdlib::Absolutepath]]
Directory or directories where minio will keep all data.
Default value: $minio::server::storage_root
configuration
Data type: Hash[String[1], Variant[String, Integer]]
Hash with environment settings for Minio.
Default value: $minio::server::configuration
custom_configuration_file_path
Data type: Optional[Stdlib::Absolutepath]
Optional custom location of the minio environment file.
Default value: $minio::server::custom_configuration_file_path
minio::server::install
Copyright
Copyright 2017-2021 Daniel S. Reichenbach https://kogitoapp.com
Examples
class { 'minio::server::install':
package_ensure => 'present',
owner => 'minio',
group => 'minio',
base_url => 'https://dl.minio.io/server/minio/release',
version => 'RELEASE.2021-08-20T18-32-01Z',
checksum => '0bf72d6fd0a88fee35ac598a1e7a5c90c78b53b6db3988414e34535fb6cf420c',
checksum_type => 'sha256',
configuration_directory => '/etc/minio',
installation_directory => '/opt/minio',
storage_root => '/var/minio',
listen_ip => '127.0.0.1',
listen_port => 9000,
manage_service => true,
service_template => 'minio/systemd.erb',
service_provider => 'systemd',
cert_directory => '/etc/minio/certs',
custom_configuration_file_path => '/etc/default/minio',
}
Parameters
The following parameters are available in the minio::server::install
class:
package_ensure
owner
group
base_url
version
checksum
checksum_type
configuration_directory
installation_directory
storage_root
listen_ip
listen_port
manage_service
service_template
service_provider
cert_directory
custom_configuration_file_path
package_ensure
Data type: Enum['present', 'absent']
Decides if the minio
binary will be installed.
Default value: $minio::server::package_ensure
owner
Data type: String
The user owning minio and its' files.
Default value: $minio::server::owner
group
Data type: String
The group owning minio and its' files.
Default value: $minio::server::group
base_url
Data type: Stdlib::HTTPUrl
Download base URL for the server. Can be used for local mirrors.
Default value: $minio::server::base_url
version
Data type: String
Release version to be installed.
Default value: $minio::server::version
checksum
Data type: String
Checksum for the binary.
Default value: $minio::server::checksum
checksum_type
Data type: String
Type of checksum used to verify the binary being installed.
Default value: $minio::server::checksum_type
configuration_directory
Data type: Stdlib::Absolutepath
Directory holding Minio configuration file./minio`
Default value: $minio::server::configuration_directory
installation_directory
Data type: Stdlib::Absolutepath
Target directory to hold the minio installation./minio`
Default value: $minio::server::installation_directory
storage_root
Data type: Variant[Stdlib::Absolutepath, Array[Stdlib::Absolutepath]]
Directory or directories where minio will keep all data.
Default value: $minio::server::storage_root
listen_ip
Data type: Stdlib::IP::Address
IP address on which Minio should listen to requests.
Default value: $minio::server::listen_ip
listen_port
Data type: Stdlib::Port
Port on which Minio should listen to requests.
Default value: $minio::server::listen_port
manage_service
Data type: Boolean
Should we manage a server service definition for Minio?
Default value: $minio::server::manage_service
service_template
Data type: String
Path to the server service template file.
Default value: $minio::server::service_template
service_provider
Data type: String
Which service provider do we use?
Default value: $minio::server::service_provider
cert_directory
Data type: Stdlib::Absolutepath
Directory where minio will keep all cerfiticates.
Default value: $minio::server::cert_directory
custom_configuration_file_path
Data type: Optional[Stdlib::Absolutepath]
Optional custom location of the minio environment file.
Default value: $minio::server::custom_configuration_file_path
minio::server::service
Copyright
Copyright 2017-2021 Daniel S. Reichenbach https://kogitoapp.com
Examples
class { 'minio::server::service':
manage_service => true,
service_provider => 'systemd',
service_ensure => 'running',
}
Parameters
The following parameters are available in the minio::server::service
class:
manage_service
Data type: Boolean
Should we manage a server service definition for Minio?
Default value: $minio::server::manage_service
service_ensure
Data type: Stdlib::Ensure::Service
Defines the state of the minio server service.
Default value: $minio::server::service_ensure
service_provider
Data type: String
Which service provider do we use?
Default value: $minio::server::service_provider
minio::server::user
Copyright
Copyright 2017-2021 Daniel S. Reichenbach https://kogitoapp.com
Examples
class {'minio::server::user':
manage_user => true,
manage_group => true,
manage_home => true,
owner => 'minio',
group => 'minio',
home => '/home/minio'
}
Parameters
The following parameters are available in the minio::server::user
class:
manage_user
Data type: Boolean
Should we manage provisioning the user?
Default value: $minio::server::manage_user
manage_group
Data type: Boolean
Should we manage provisioning the group?
Default value: $minio::server::manage_group
manage_home
Data type: Boolean
Should we manage provisioning the home directory?
Default value: $minio::server::manage_home
owner
Data type: String
The user owning minio and its' files.
Default value: $minio::server::owner
group
Data type: String
The group owning minio and its' files.
Default value: $minio::server::group
home
Data type: Optional[Stdlib::Absolutepath]
Qualified path to the users' home directory.
Default value: $minio::server::home
Resource types
minio_client_alias
Autorequires:
File[/root/.minioclient]
Examples
minio_client_alias { 'localminio':
ensure => 'present',
endpoint => 'http://localhost:9000',
access_key => 'admin',
secret_key => 'password',
api_signature => 'S3v4',
path_lookup_support =>'on',
}
minio_client_alias { 'default':
ensure => 'present',
endpoint => 'http://localhost:9000',
access_key => 'admin',
secret_key => Sensitive('password'),
}
Properties
The following properties are available in the minio_client_alias
type.
access_key
Data type: Optional[String]
The API access key
api_signature
Data type: Optional[Enum['S3v4', 'S3v2']]
The API signature
endpoint
Data type: String[1]
The API endpoint url
ensure
Data type: Enum[present, absent]
Whether this resource should be present or absent on the target system.
Default value: present
path_lookup_support
Data type: Optional[Enum['on', 'off', 'auto']]
Indicate whether dns or path style url requests are supported by the server.
secret_key
Data type: Optional[Variant[Sensitive[String], String]]
The API access secret
Parameters
The following parameters are available in the minio_client_alias
type.
name
namevar
Data type: String
The name of the resource you want to manage.
Changelog
All notable changes to this project will be documented in this file.
Release 1.1.4 (2021-09-23)
Features
- Changed module metadata to allow 3.x versions of camptocamp/systemd
Release 1.1.3 (2021-09-14)
Features
- Changed to 3.0.0 release of
broadinstitute/certs
Documentation
- Changed deprecated env parameters to recommended ones
Release 1.1.2 (2021-09-10)
Features
- Changed
storage_root
to acccept both string and array of strings to support erasure coding - Added support for custom deployment definitions with
MINIO_DEPLOYMENT_DEFINITION
to support erasure coding and distributed deployments
Release 1.1.1 (2021-09-08)
Features
- Moved existing profiles to
server
namespace - Added support for minio client deployments
- Added support for client alias management
- Added support for certificate deployments
- Added support for custom locations for the configuration file
- Added support for providing additional options for minio server with
MINIO_OPTS
- Updated documentation
Release 1.1.0 (2017-11-15)
With this release, ownership of this module is transfered to Kogito UG, a DevOps / Infrastructure services business in Berlin, Germany.
Features
- Upgrade default Minio installation to a more recent version
- Base URL for Minio downloads can now be pointed to a custom location
- Converted module to be Puppet Development Kit compatible
- Added support for Debian 9 (Stretch)
- Updated Puppet requirements to be in line with PE lifecycle
- API:
sorted_json(...)
function has been converted to a Puppet 4 style function and renamed toto_sorted_json(...)
Release 1.0.2 (2017-07-13)
Features
- Switched to using proper resource types in all places
Release 1.0.1 (2017-05-09)
Features
- Added support to configure service address and port
Bugfixes
- Updated install function to use release archives for a stable source
Release 1.0.0 (2017-05-08)
Initial release of Minio management module. Hello, World!
Dependencies
- puppetlabs/stdlib (>= 4.13.1 < 7.0.0)
- puppet/archive (>= 2.0.0 < 5.0.0)
- camptocamp/systemd (>= 1.1.1 < 4.0.0)
- broadinstitute/certs (>= 3.0.0 < 4)
Copyright (c) 2016-2017 Kogito UG <https://kogitoapp.com/> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.