= 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