MinIO

From SME Server
Revision as of 12:54, 17 October 2019 by ReetP (talk | contribs)
Jump to navigation Jump to search

Installing MinIO on SME

Just some notes on the basics of installing MinIO

It works, but needs a startup script to automate start/stop

This could be used with your own instance of say [RClone](https://wiki.contribs.org/Rclone)

https://min.io/download#/linux https://docs.min.io/docs/minio-quickstart-guide.html https://docs.min.io/docs/minio-server-configuration-guide.html

Followed notes form here https://www.centosblog.com/install-configure-minio-object-storage-server-centos-linux/


Install Minio on Centos Linux


In this example, we’ll install Minio to /opt/minio, and [won't] configure it to run as a (systemd) service.

Add a minio user [This is not the standard SME way but just for testing]

useradd -s /sbin/nologin -d /opt/minio minio

Set up directories

mkdir -p /opt/minio/bin
mkdir /opt/minio/data # this will be your data partition	

Install minio server binary and set it to executable. In this example we use the Linux x64 binary.

wget https://dl.minio.io/server/minio/release/linux-amd64/minio -O /opt/minio/bin/minio
chmod +x /opt/minio/bin/minio

Ensure all files are owned by minio in /opt/minio:

chown -R minio:minio /opt/minio


This will start on all interfaces:

/opt/minio/bin/minio server /opt/minio/data

This will limit it to one interface:

/opt/minio/bin/minio server --address 1.2.3.4:9000 /opt/minio/data


Note this only runs on http. It could run http but for EXTERNAL access it is recommended to run a revers proxy. You can then use SSL certs as well.

Make sure you keep a note of the AccessKey and SecretKey.

You can access the server via http://1.2.3.4:9000

Other options

/opt/minio/bin/minio --help

MinIO configuration client and commands

https://github.com/minio/mc/blob/master/docs/minio-admin-complete-guide.md

This can enable tracing for issues etc


Some other notes

Init scripts that don't work on SME - note there is a Unit file for systemd

git clone https://github.com/minio/minio-service.git

Initscript borrowed from here:

https://github.com/fhd/init-script-template/blob/master/template


#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

# dir="/opt/minio"
cmd="/opt/minio/bin/minio server --address 192.168.97.1:9000 /opt/minio/data"
# user=""

name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
   cat "$pid_file"
}

is_running() {
   [ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1
}

case "$1" in
   start)
   if is_running; then
       echo "Already started"
   else
       echo "Starting $name"
       cd "$dir"
       $cmd >> "$stdout_log" 2>> "$stderr_log" &
       echo $! > "$pid_file"
       if ! is_running; then
           echo "Unable to start, see $stdout_log and $stderr_log"
           exit 1
       fi
   fi
   ;;
   stop)
   if is_running; then
       echo -n "Stopping $name.."
       kill `get_pid`
       for i in 1 2 3 4 5 6 7 8 9 10
       # for i in `seq 10`
       do
           if ! is_running; then
               break
           fi

           echo -n "."
           sleep 1
       done
       echo

       if is_running; then
           echo "Not stopped; may still be shutting down or shutdown may have failed"
           exit 1
       else
           echo "Stopped"
           if [ -f "$pid_file" ]; then
               rm "$pid_file"
           fi
       fi
   else
       echo "Not running"
   fi
   ;;
   restart)
   $0 stop
   if is_running; then
       echo "Unable to stop, will not attempt to start"
       exit 1
   fi
   $0 start
   ;;
   status)
   if is_running; then
       echo "Running"
   else
       echo "Stopped"
       exit 1
   fi
   ;;
   *)
   echo "Usage: $0 {start|stop|restart|status}"
   exit 1
   ;;
esac

exit 0


It would need:

ckkconfig minio on

You can probably link to daemon tool:

ln -s /etc/rc.d/init.d/e-smith-service S85minio
config set minio service status enabled
service minio start|stop|restart|status