Line 1: |
Line 1: |
− | Installing MinIO on SME | + | == Installing MinIO on SME == |
| + | |
| + | ===General Notes=== |
| | | |
| Just some notes on the basics of installing MinIO | | 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) or Rocket.Chat |
| | | |
− | This could be used with your own instance of say [RClone](https://wiki.contribs.org/Rclone)
| + | Documentation here: |
| | | |
| https://min.io/download#/linux | | https://min.io/download#/linux |
| + | |
| https://docs.min.io/docs/minio-quickstart-guide.html | | https://docs.min.io/docs/minio-quickstart-guide.html |
| + | |
| https://docs.min.io/docs/minio-server-configuration-guide.html | | https://docs.min.io/docs/minio-server-configuration-guide.html |
| | | |
− | Followed notes form here | + | Followed notes from here https://www.centosblog.com/install-configure-minio-object-storage-server-centos-linux/ |
− | https://www.centosblog.com/install-configure-minio-object-storage-server-centos-linux/ | |
− | | |
| | | |
− | Install Minio on Centos Linux | + | === Install Minio on SME v9 === |
| | | |
− | | + | "In this example, we’ll install Minio to /opt/minio, and [won't] configure it to run as a (systemd) service." |
− | 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] | | Add a minio user [This is not the standard SME way but just for testing] |
Line 34: |
Line 35: |
| chown -R minio:minio /opt/minio | | chown -R minio:minio /opt/minio |
| | | |
| + | ===Start MinIO=== |
| + | |
| + | Start it manually so you can get the Keys that you will require. |
| | | |
| This will start on all interfaces: | | This will start on all interfaces: |
Line 43: |
Line 47: |
| /opt/minio/bin/minio server --address 1.2.3.4:9000 /opt/minio/data | | /opt/minio/bin/minio server --address 1.2.3.4:9000 /opt/minio/data |
| | | |
| + | Once you have the keys you can then follow the instructions for Automated Service below. |
| | | |
− | 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. | + | Note this only runs on http. It could run https but for EXTERNAL access but you need to set it up with certs (see docs) |
| + | It is recommended to run a reverse proxy and use the general server SSL certs |
| | | |
− | Make sure you keep a note of the AccessKey and SecretKey. | + | Make sure you keep a note of the AccessKey and SecretKey when you start the first time |
| | | |
| You can access the server via http://1.2.3.4:9000 | | You can access the server via http://1.2.3.4:9000 |
Line 54: |
Line 60: |
| /opt/minio/bin/minio --help | | /opt/minio/bin/minio --help |
| | | |
− | MinIO configuration client and commands | + | ===MinIO configuration client and commands=== |
| + | |
| + | Be CAREFUL as you have mc - midnight commander installed !!!!! |
| + | |
| + | https://github.com/minio/mc/blob/master/docs/minio-admin-complete-guide.md |
| + | https://docs.min.io/docs/minio-client-quickstart-guide |
| + | |
| + | wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /opt/minio/bin/mc |
| + | chmod +x /opt/minio/bin/mc |
| + | /opt/minio/bin/mc --help |
| + | |
| + | Add a location for your server: |
| + | |
| + | /opt/minio/bin/mc config host add minio http://192.168.1.1:9000 <ACCESS KEY> <SECRET KEY> |
| + | |
| + | Run a command: |
| + | |
| + | /opt/minio/bin/mc admin info server minio |
| | | |
− | https://github.com/minio/mc/blob/master/docs/minio-admin-complete-guide.md | + | /opt/minio/bin/mc ls minio |
| + | [2019-10-16 16:54:53 CEST] 0B bucket1/ |
| | | |
− | This can enable tracing for issues etc
| + | Help: |
| + | /opt/minio/bin/mc -h |
| | | |
| + | This can enable tracing for issues, modify configuration etc |
| | | |
− | Some other notes
| + | |
| + | ====Automated startup==== |
| | | |
| Init scripts that don't work on SME - note there is a Unit file for systemd | | 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 | | 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 not used here |
| + | # dir="/opt/minio" |
| + | # cmd is the whole command - it could be templated break it down in to bits |
| + | # add your own details etc etc |
| + | # Change the IP address to your local one |
| + | cmd="/opt/minio/bin/minio server --address 192.168.1.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 |