test2
5 years ago
2 changed files with 183 additions and 0 deletions
@ -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 |
Loading…
Reference in new issue