/puppet-minio

A Puppet module to manage Minio S3 Server

Primary LanguageRubyOtherNOASSERTION

puppet-minio

Build Status Puppet Forge Puppet Forge - downloads Puppet Forge - scores

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 install a minio service listening on port 9000

Beginning with Minio

The simplest use case is to rely on defaults. This can be done by simply including the class:

include ::minio

Reference

Class: minio

class { 'minio':
    package_ensure => 'present',
    manage_user => true,
    manage_group => true,
    manage_home => true,
    owner => 'minio',
    group => 'minio',
    home => '/home/minio',
    version => 'RELEASE.2017-05-05T01-14-51Z',
    checksum => '59cd3fb52292712bd374a215613d6588122d93ab19d812b8393786172b51d556',
    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 => {
        'credential' => {
          'accessKey' => 'ADMIN',
          'secretKey' => 'PASSWORD',
        },
        'region' => 'us-east-1',
        'browser' => 'on',
    },
    manage_service => true,
    service_template => 'minio/systemd.erb',
    service_path => '/lib/systemd/system/minio.service',
    service_provider => 'systemd',
    service_mode => '0644',
}

Class: minio::user

class { 'minio::user':
    manage_user => true,
    manage_group => true,
    manage_home => true,
    owner => 'minio',
    group => 'minio',
    home => '/home/minio',
}

Class: minio::install

class { 'minio::install':
    package_ensure => 'present',
    owner => 'minio',
    group => 'minio',
    version => 'RELEASE.2017-05-05T01-14-51Z',
    checksum => '59cd3fb52292712bd374a215613d6588122d93ab19d812b8393786172b51d556',
    checksum_type => 'sha256',
    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_path => '/lib/systemd/system/minio.service',
    service_provider => 'systemd',
    service_mode => '0644',
}

Class: minio::service

class { 'minio::service':
    manage_service => true,
    service_provider => 'systemd',
}

Class: minio::config

class { 'minio::config':
    configuration => {
        'credential' => {
          'accessKey' => 'ADMIN',
          'secretKey' => 'PASSWORD',
        },
        'region' => 'us-east-1',
        'browser' => 'on',
    },
    owner => 'minio',
    group => 'minio',
    installation_directory => '/opt/minio',
    storage_root => '/var/minio',
}

Limitations

See metadata.json for supported platforms.

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.