Difference between revisions of "MinIO"
(Created page with "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 insta...") |
|||
(8 intermediate revisions by the same user not shown) | |||
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 | ||
− | + | This could be used with your own instance of say [RClone](https://wiki.contribs.org/Rclone) or Rocket.Chat | |
− | + | 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 | + | 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 SME v9 === | ||
− | + | "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 | |
+ | ===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 40: | 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 | ||
− | Note this only runs on http. It could run | + | Once you have the keys you can then follow the instructions for Automated Service below. |
+ | |||
+ | 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 50: | 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 | ||
− | + | /opt/minio/bin/mc ls minio | |
+ | [2019-10-16 16:54:53 CEST] 0B bucket1/ | ||
− | + | Help: | |
+ | /opt/minio/bin/mc -h | ||
+ | This can enable tracing for issues, modify configuration etc | ||
− | + | ||
+ | ====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 |
Latest revision as of 12:52, 17 June 2020
Installing MinIO on SME
General Notes
Just some notes on the basics of installing MinIO
This could be used with your own instance of say [RClone](https://wiki.contribs.org/Rclone) or Rocket.Chat
Documentation here:
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 from here https://www.centosblog.com/install-configure-minio-object-storage-server-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."
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
Start MinIO
Start it manually so you can get the Keys that you will require.
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
Once you have the keys you can then follow the instructions for Automated Service below.
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 when you start the first time
You can access the server via http://1.2.3.4:9000
Other options
/opt/minio/bin/minio --help
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
/opt/minio/bin/mc ls minio [2019-10-16 16:54:53 CEST] 0B bucket1/
Help:
/opt/minio/bin/mc -h
This can enable tracing for issues, modify configuration etc
Automated startup
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 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