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