Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
# defaults file for minio
# default credentials
minio_root_user: "minioadmin"
minio_root_password: "minioadmin123"

# System user/group
minio_user: "minio-user"
minio_group: "minio-user"
6 changes: 6 additions & 0 deletions handlers/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
# handlers file for minio
- name: restart minio
systemd:
name: minio
state: restarted
28 changes: 28 additions & 0 deletions meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
galaxy_info:
author: Sharvari Khamkar
description: Install and configure MinIO Object Storage Server
company: Opstree Solutions

license: GPLv2

min_ansible_version: "2.9"

platforms:
- name: EL
versions:
- 7
- 8
- name: Ubuntu
versions:
- bionic
- focal
- jammy

galaxy_tags:
- storage
- minio
- object-storage
- opstree

dependencies: []
17 changes: 17 additions & 0 deletions tasks/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
- name: Create environment file
copy:
dest: /etc/default/minio
content: |
MINIO_ROOT_USER={{ minio_root_user }}
MINIO_ROOT_PASSWORD={{ minio_root_password }}
MINIO_VOLUMES="{{ minio_data_dir }}"
owner: "{{ minio_user }}"
group: "{{ minio_group }}"
mode: '0600'

- name: Place MinIO systemd service
template:
src: minio.service.j2
dest: /etc/systemd/system/minio.service
notify: restart minio
34 changes: 34 additions & 0 deletions tasks/install.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
- name: Create minio group
group:
name: "{{ minio_group }}"
system: yes

- name: Create minio user
user:
name: "{{ minio_user }}"
group: "{{ minio_group }}"
system: yes
shell: /sbin/nologin

- name: Download MinIO binary
get_url:
url: "{{ minio_binary_url }}"
dest: /usr/local/bin/minio
mode: '0755'

- name: Create data directory
file:
path: "{{ minio_data_dir }}"
owner: "{{ minio_user }}"
group: "{{ minio_group }}"
state: directory
mode: '0755'

- name: Create config directory
file:
path: "{{ minio_config_dir }}"
owner: "{{ minio_user }}"
group: "{{ minio_group }}"
state: directory
mode: '0755'
10 changes: 10 additions & 0 deletions tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
# tasks file for minio
- name: Install MinIO
include_tasks: install.yml

- name: Configure MinIO
include_tasks: config.yml

- name: Enable and Start MinIO
include_tasks: service.yml
23 changes: 23 additions & 0 deletions tasks/service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
- name: Reload systemd
systemd:
daemon_reload: yes

- name: Enable MinIO service
systemd:
name: "{{ minio_service_name }}"
enabled: yes

- name: Start MinIO service
systemd:
name: "{{ minio_service_name }}"
state: started

- name: Show MinIO service status
command: systemctl status {{ minio_service_name }} --no-pager
register: minio_status
changed_when: false

- name: Print MinIO status output
debug:
var: minio_status.stdout_lines
16 changes: 16 additions & 0 deletions templates/minio.service.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[Unit]
Description=MinIO Object Storage Server
Documentation=https://min.io/docs/
Wants=network-online.target
After=network-online.target

[Service]
User={{ minio_user }}
Group={{ minio_group }}
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES --console-address ":{{ minio_console_port }}"
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
16 changes: 16 additions & 0 deletions vars/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
# vars file for minio
# High-priority values (Environment Specific)

minio_service_name: minio

# Network settings
minio_api_port: "9000"
minio_console_port: "9001"

# Directories
minio_data_dir: "/mnt/data"
minio_config_dir: "/etc/minio"

# MinIO download URL (version-specific)
minio_binary_url: "https://dl.min.io/server/minio/release/linux-amd64/minio"