From 79801031761e4a1c7847869839d0ce9801f7e8f5 Mon Sep 17 00:00:00 2001 From: Ben Agricola Date: Mon, 8 Aug 2016 19:00:24 +0100 Subject: [PATCH] Add link to FreeNAS tutorial (#62) * Doc: Add Minio on FreeNAS * Add link to FreeNAS tutorial Signed-off-by: Ben Agricola --- README.md | 3 +- docs/running-minio-in-freenas.md | 127 +++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 docs/running-minio-in-freenas.md diff --git a/README.md b/README.md index a77b5c7..cc821b9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Minio Cookbook [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/minio/minio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -This is home for recipes of related projects and tools to use with Minio. +This is home for recipes of related projects and tools to use with Minio. ### How to Contribute a Recipe @@ -16,6 +16,7 @@ Note: You can also refer to [Awesome Minio](https://github.com/minio/awesome-min - [AWS CLI with Minio](./docs/aws-cli-with-minio.md) - [AWS Go SDK for Minio](./docs/aws-go-sdk-for-minio.md) - [Running Minio in Docker](./docs/running-minio-in-docker.md) +- [Running Minio in FreeNAS](./docs/running-minio-in-freenas.md) - [Store MongoDB Backups in Minio](./docs/store-mongodb-backups-in-minio.md) - [Store MySQL Backups in Minio](./docs/store-mysql-backups-in-minio.md) - [Store PostgreSQL Backups in Minio](./docs/store-postgresql-backups-in-minio.md) diff --git a/docs/running-minio-in-freenas.md b/docs/running-minio-in-freenas.md new file mode 100644 index 0000000..767a64e --- /dev/null +++ b/docs/running-minio-in-freenas.md @@ -0,0 +1,127 @@ +# How to run Minio in FreeNAS [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/minio/minio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +## Prerequisites + +* You have FreeNAS installed and running, if not follow [install instructions](http://doc.freenas.org/9.10/freenas_install.html) +* You have a FreeNAS Jail path set, if not follow [jails configuration](http://doc.freenas.org/9.10/freenas_jails.html?highlight=jails#jails-configuration) + +## Steps + +### Create a new Jail +Browse to `Jails -> Add Jail` in the FreeNAS UI, click `Advanced` and enter the following settings: + +``` +Name: Minio +Template: --- (unset, defaults to FreeBSD) +VImage: Unticked +``` + +Configure relevant network settings for your environment. Click `OK` and wait for Jail to download and install. + +### Attach Storage +Browse to `Jails -> View Jails -> Storage`, click `Add Storage` and enter the following settings: + +``` +Jail: Minio +Source: +Destination: (usually the same as 'Source' dataset for ease of use) +Read Only: Unticked +Create Directory: Ticked +``` + +### Download Minio +Download Minio into the jail: + +``` +curl -Lo//Minio/usr/local/bin/minio https://dl.minio.io/server/minio/release/freebsd-amd64/minio +chmod +x //Minio/usr/local/bin/minio +``` + +### Create Minio Service +Create a new Minio service file: + +``` +touch //Minio/usr/local/etc/rc.d/minio +chmod +x //Minio/usr/local/etc/rc.d/minio +nano //Minio/usr/local/etc/rc.d/minio +``` + +Add the following content: + +``` +#!/bin/sh + +# PROVIDE: minio +# KEYWORD: shutdown + +# Define these minio_* variables in one of these files: +# /etc/rc.conf +# /etc/rc.conf.local +# /etc/rc.conf.d/minio +# +# DO NOT CHANGE THESE DEFAULT VALUES HERE +# + +# Add the following lines to /etc/rc.conf to enable minio: +# +#minio_enable="YES" +#minio_config="/etc/minio" + + +minio_enable="${minio_enable-NO}" +minio_config="${minio_config-/etc/minio}" +minio_disks="${minio_disks}" +minio_address="${minio_address-:443}" + +. /etc/rc.subr + +load_rc_config ${name} + +name=minio +rcvar=minio_enable + +pidfile="/var/run/${name}.pid" + +command="/usr/sbin/daemon" +command_args="-c -f -p ${pidfile} /usr/local/bin/${name} -C \"${minio_config}\" server --address=\"${minio_address}\" ${minio_disks}" + +run_rc_command "$1" +``` + +### Configure Minio Startup +Edit `//Minio/etc/rc.conf`: + +``` +nano //Minio/etc/rc.conf +``` + +Add the following content: + +``` +minio_enable="YES" +minio_config="/etc/minio" +minio_disks="" +minio_address="" (Defaults to :443) +``` + +### Create Minio config directories + +``` +mkdir -p //Minio/etc/minio/certs +``` + +### Create Minio Private and Public Keys (Optional, if HTTPS required and `minio_address` set on port 443) + +``` +nano //Minio/etc/minio/certs/public.crt +nano //Minio/etc/minio/certs/private.key +``` + +### Start Minio Jail +Browse to `Jails -> View Jails` in the FreeNAS UI, select `Minio` and press the `Start` button (3rd from Left): + +### Test Minio +Browse to `http(s)://:` and confirm Minio loads. + + +#### TODO: Convert this to a Plugin for ease of management