Difference between revisions of "MinIO"
Line 70: | Line 70: | ||
https://github.com/fhd/init-script-template/blob/master/template | 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 |
Revision as of 12:54, 17 October 2019
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