Browse Source

minio config

master
test2 5 years ago
parent
commit
26f9869ab7
  1. 167
      DockerSwarm/swarm-volumes-minio-howto.adoc
  2. 16
      DockerSwarm/swarm-volumes-storage-howto.adoc

167
DockerSwarm/swarm-volumes-minio-howto.adoc

@ -0,0 +1,167 @@
= Swarm Minio HowTo!
Apostolos rootApostolos@swarmlab.io
:description: IoT Εισαγωγή στο Cloud
:keywords: Cloud, swarm
:data-uri:
:toc: right
:toc-title: Πίνακας περιεχομένων
:toclevels: 4
:source-highlighter: coderay
:icons: font
:sectnums:
include::header.adoc[]
{empty} +
== configure Minio
=== Connect to Server
.create policy
[source,yaml]
----
mc config host add --insecure [SESSION] https://ip:9443 key secret --api s3v4
e.g.
mc config host add --insecure mysession https://83.212.119.119:9443 mykey mysecret --api s3v4
----
=== Create policy
.create Default policy file: test.json
[source,yaml]
----
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
""
]
},
"Action": [
"s3:GetBucketLocation", // <1>
"s3:HeadBucket", // <1>
"s3:ListBucket", // <1>
"s3:ListBucketMultipartUploads" // <1>
],
"Resource": [
"arn:aws:s3:::test" // <2>
]
},
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:DeleteObject", // <3>
"s3:GetObject", // <3>
"s3:ListMultipartUploadParts", // <3>
"s3:PutObject" // <3>
],
"Resource": [
"arn:aws:s3:::test/*" // <4>
]
}
]
}
----
<1> Bucket properties https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html[more info^]
<2> Bucket source
<3> Object properties https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-objects[more info^]
<3> Object source
=== Apply policy
.create policy
[source,yaml]
----
#!/bin/bash
mc mb --insecure mymsession/test // <1>
mc admin policy add --insecure mymisession test ./test.json // <2>
mc admin user add --insecure mymsession usertest bfksdkdjhdbhfbsdhbhf79fcbc7idjfdsjfsdbhfbhdbfhsd // <3>
mc admin policy set --insecure mymsession test user=usertest // <4>
----
<1> create bucket
<2> Apply policy
<3> create user
<4> Apply policy User2bucket
=== Sync local2Server
.sync local2server
[source,yaml]
----
export MINIO_MIRROR_PARAMETERS="--delete"
export MINIO_SERVER_URL="ip:9443" // <1>
export MINIO_PROT=https
export MINIO_SERVER_DOCUMENTROOT="/home/user/syncdir" // <2>
export MINIO_WEB_BUCKET=test1
export MINIO_WEB_PASS="bfksdkdjhdbhfbsdhbhf79fcbc7idjfdsjfsdbhfbhdbfhsd"
export AWS_CONFIG_FILE="$HOME/.aws/config"
export AWS_ACCESS_KEY_ID=$MINIO_WEB_BUCKET
export AWS_SECRET_ACCESS_KEY=$MINIO_WEB_PASS
aws --endpoint-url $MINIO_PROT://$MINIO_SERVER_URL s3 sync MINIO_SERVER_DOCUMENTROOT s3://$MINIO_WEB_BUCKET $MINIO_MIRROR_PARAMETERS
----
<1> Minio Server ip
<2> Directory sync
=== Sync Server2Local
.sync server2local
[source,yaml]
----
export MINIO_MIRROR_PARAMETERS="--delete"
export MINIO_SERVER_URL="ip:9443" // <1>
export MINIO_PROT=https
export MINIO_SERVER_DOCUMENTROOT="/var/www/html" // <2>
export MINIO_WEB_BUCKET=test
export MINIO_WEB_PASS="bfksdkdjhdbhfbsdhbhf79fcbc7idjfdsjfsdbhfbhdbfhsd"
export AWS_CONFIG_FILE="$HOME/.aws/config"
export AWS_ACCESS_KEY_ID=$MINIO_WEB_BUCKET
export AWS_SECRET_ACCESS_KEY=$MINIO_WEB_PASS
aws --endpoint-url $MINIO_PROT://$MINIO_SERVER_URL s3 sync s3://$MINIO_WEB_BUCKET $MINIO_SERVER_DOCUMENTROOT $MINIO_MIRROR_PARAMETERS
----
<1> Minio Server ip
<2> Directory sync
=== Docker-compose env
.sync docker-compose env
[source,yaml]
----
environment: //<1>
- MINIO_MIRROR_PARAMETERS= --delete
- MINIO_SERVER_URL=ip:9443
- MINIO_PROT=https
- MINIO_SERVER_DOCUMENTROOT=/var/www/html
- MINIO_WEB_BUCKET=test
- MINIO_WEB_PASS=bfksdkdjhdbhfbsdhbhf79fcbc7idjfdsjfsdbhfbhdbfhsd
- AWS_CONFIG_FILE=/home/user/.aws/config
----
<1> add env to docker-comose
=== Automating sync with cron
.crond file
[source,yaml]
----
*/15 * * * * root /PATH/local2server >> /var/log/usercron.log 2>&1 / <1>
----
<1> Every 15 minutes

16
DockerSwarm/swarm-volumes-storage-howto.adoc

@ -372,7 +372,23 @@ sudo ./aws/install
The AWS Command Line Interface (AWS CLI) is an open source tool that enables you to interact with AWS services using commands in your command-line shell The AWS Command Line Interface (AWS CLI) is an open source tool that enables you to interact with AWS services using commands in your command-line shell
.create file /home/user/.aws/credentials
[source,sh]
----
[default]
aws_secret_access_key = key // <1>
aws_access_key_id = secret // <1>
----
<1> http://docs.swarmlab.io/lab/DockerSwarm/lab/DockerSwarm/swarm-volumes-minio-howto.adoc.html#_apply_policy[see^]
.create file /home/user/.aws/config
[source,sh]
----
[default]
s3 =
signature_version = s3v4
region = us-east-1
----
=== Install mc client === Install mc client
MinIO Client (mc) provides a modern alternative to UNIX commands like ls, cat, cp, mirror, diff, find etc. It supports filesystems and Amazon S3 compatible cloud storage service (AWS Signature v2 and v4). MinIO Client (mc) provides a modern alternative to UNIX commands like ls, cat, cp, mirror, diff, find etc. It supports filesystems and Amazon S3 compatible cloud storage service (AWS Signature v2 and v4).

Loading…
Cancel
Save