From 134f1e6ffbee682e8b432811f8883cce0b264200 Mon Sep 17 00:00:00 2001 From: Yik Teng Hie Date: Wed, 7 Jul 2021 16:34:30 +0800 Subject: [PATCH] aws s3 web deployment --- aws/s3-static-web.md | 80 +++++++++++++++ jenkins/agent-node.PNG | Bin 0 -> 65685 bytes jenkins/sample-scripts.md | 202 ++++++++++++++++++++++++++++++++++++++ jenkins/slave-config.PNG | Bin 0 -> 9726 bytes 4 files changed, 282 insertions(+) create mode 100644 aws/s3-static-web.md create mode 100644 jenkins/agent-node.PNG create mode 100644 jenkins/sample-scripts.md create mode 100644 jenkins/slave-config.PNG diff --git a/aws/s3-static-web.md b/aws/s3-static-web.md new file mode 100644 index 0000000..37463bf --- /dev/null +++ b/aws/s3-static-web.md @@ -0,0 +1,80 @@ +# Create S3 static web + +* Create a bucket `myforms3` + +* Create a static web artifacts + + * Flutter : `flutter build web` + * Upload `build/web` artifacts to S3 bucket + +* S3 + + * Goto bucket properties + + * Enable `Static website hosting` feature + + * Endpoint will be shown in this section + * http://myforms3.s3-website-ap-southeast-1.amazonaws.com/ + + * Enable public access + + * Goto `Permissions` + + * Disable `Block public access (bucket settings)` + + * Apply this settings to `Bucket policy` + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "PublicReadGetObject", + "Effect": "Allow", + "Principal": "*", + "Action": "s3:GetObject", + "Resource": "arn:aws:s3:::myforms3/*" + } + ] + } + ``` + + + + * Enable CORS to access external site + + * Goto `Permissions` + + * Apply this setting to `Cross-origin resource sharing (CORS)` to allow `https://54e9e45d-c142-4c16-8467-bceb20cf68ca.mock.pstmn.io` + + ```json + [ + { + "AllowedHeaders": [ + "*" + ], + "AllowedMethods": [ + "PUT", + "POST", + "DELETE" + ], + "AllowedOrigins": [ + "https://54e9e45d-c142-4c16-8467-bceb20cf68ca.mock.pstmn.io" + ], + "ExposeHeaders": [] + }, + { + "AllowedHeaders": [], + "AllowedMethods": [ + "GET" + ], + "AllowedOrigins": [ + "*" + ], + "ExposeHeaders": [] + } + ] + ``` + + + diff --git a/jenkins/agent-node.PNG b/jenkins/agent-node.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9232479f4208e7b41481ea5e99387c5a537e0c6a GIT binary patch literal 65685 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 SQcHj+apa)W0qS??lz#&l?vXzL literal 0 HcmV?d00001 diff --git a/jenkins/sample-scripts.md b/jenkins/sample-scripts.md new file mode 100644 index 0000000..477b609 --- /dev/null +++ b/jenkins/sample-scripts.md @@ -0,0 +1,202 @@ +# Sample Scripts + +* ![](./slave-config.PNG) + +* ![](./agent-node.PNG) + +* Wallet-API Shell script + + ```sh + sudo apt update + sudo apt install jq yajl-tools + cp config/uat.json.default config/dev.json + cd config/ + + + RedisOldHost=`cat dev.json | jq .redis.host` + RedisHost=\"`aws ssm get-parameter --name "/rpp-dev/redis/rpp-dev-redis/endpoint" --region ap-east-1 --with-decryption --query 'Parameter.[Value]' --output text`\" + sed -i "s/$RedisOldHost/$RedisHost/" dev.json + jq 'del(.redis.password, .redis.topupLimitCheck)' dev.json > development.json + cat development.json > dev.json + rm -f development.json + + + DBOldHost=`cat dev.json | jq .database.host` + DBHost=\"`aws ssm get-parameter --name "/rpp-dev/database/database-url" --region ap-east-1 --with-decryption --query 'Parameter.[Value]' --output text | sed 's/:3306//'`\" + sed -i "s/$DBOldHost/$DBHost/" dev.json + + DBOldUsername=`cat dev.json | jq .database.username` + DBUsername=\"`aws ssm get-parameter --name "/rpp-dev/database/database-username" --region ap-east-1 --with-decryption --query 'Parameter.[Value]' --output text`\" + sed -i "s/$DBOldUsername/$DBUsername/" dev.json + + DBOldPassword=`cat dev.json | jq .database.password` + DBPassword=\"`aws ssm get-parameter --name "/rpp-dev/database/database-password" --region ap-east-1 --with-decryption --query 'Parameter.[Value]' --output text`\" + sed -i "s/$DBOldPassword/$DBPassword/" dev.json + + MQOldAddress=`cat dev.json | jq .mq.address` + MQAddress=\"`aws ssm get-parameter --name "/rpp-dev/mq/private_ip" --region ap-east-1 --with-decryption --query 'Parameter.[Value]' --output text`\" + sed -i "s/$MQOldAddress/$MQAddress/" dev.json + + + + ssh nodecon@$client_ip_addr 'sudo mkdir -p /opt/razer-pay-wallet-api && sudo chown -R nodecon:nodecon /opt/razer-pay-wallet-api' + scp -r * nodecon@$client_ip_addr:/opt/razer-pay-wallet-api + + + ssh nodecon@$client_ip_addr << EOF + if [ -f /usr/bin/node ] ; + then echo "Node is installed"; + else curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - && sudo apt-get install -y nodejs g++ gcc make; + fi + + sudo chown -R nodecon:nodecon /opt/razer-pay-wallet-api + sudo su - nodecon + cd /opt/razer-pay-wallet-api/ + sudo npm install pm2@latest -g + sudo npm install + pm2 startup + sudo env PATH=$PATH:/usr/local/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u nodecon --hp /home/nodecon + cd /opt/razer-pay-wallet-api/ && NODE_ENV=dev pm2 start server.js + pm2 save + EOF + ``` + + + +* pipeline wallet-api + + ```groovy + pipeline { + agent { + label "RPP-DEV" + } + + stages { + stage('Pulling project from GIT') { + steps { + git credentialsId: 'Tudorskey', url: 'git@bitbucket.org:razersw/razer-pay-wallet-api.git' + } + } + stage(' Creating new config file'){ + steps{ + sh '''sudo apt update + sudo apt install jq + cp config/uat.json.default config/dev.json + cd config/ + RedisOldHost=`cat dev.json | jq .redis.host` + RedisHost=\\"`aws ssm get-parameter --name "/rpp-dev/redis/rpp-dev-redis/endpoint" --region ap-east-1 --with-decryption --query \'Parameter.[Value]\' --output text`\\" + sed -i "s/$RedisOldHost/$RedisHost/" dev.json + jq \'del(.redis.password, .redis.topupLimitCheck)\' dev.json > development.json + cat development.json > dev.json + rm -f development.json + DBOldHost=`cat dev.json | jq .database.host` + DBHost=\\"`aws ssm get-parameter --name "/rpp-dev/database/database-url" --region ap-east-1 --with-decryption --query \'Parameter.[Value]\' --output text | sed \'s/:3306//\'`\\" + sed -i "s/$DBOldHost/$DBHost/" dev.json + DBOldUsername=`cat dev.json | jq .database.username` + DBUsername=\\"`aws ssm get-parameter --name "/rpp-dev/database/database-username" --region ap-east-1 --with-decryption --query \'Parameter.[Value]\' --output text`\\" + sed -i "s/$DBOldUsername/$DBUsername/" dev.json + DBOldPassword=`cat dev.json | jq .database.password` + DBPassword=\\"`aws ssm get-parameter --name "/rpp-dev/database/database-password" --region ap-east-1 --with-decryption --query \'Parameter.[Value]\' --output text`\\" + sed -i "s/$DBOldPassword/$DBPassword/" dev.json + MQOldAddress=`cat dev.json | jq .mq.address` + MQAddress=\\"`aws ssm get-parameter --name "/rpp-dev/mq/private_ip" --region ap-east-1 --with-decryption --query \'Parameter.[Value]\' --output text`\\" + sed -i "s/$MQOldAddress/$MQAddress/" dev.json''' + } + } + stage('Copying app to remote EC2') { + steps { + sh '''ssh nodecon@$client_ip_addr 'sudo mkdir -p /opt/razer-pay-wallet-api && sudo chown -R nodecon:nodecon /opt/razer-pay-wallet-api' + scp -r * nodecon@$client_ip_addr:/opt/razer-pay-wallet-api''' + } + } + stage('Deploy app') { + steps { + sh '''ssh nodecon@$client_ip_addr < tfplan.json && terraform-compliance -p tfplan.json -f ../../security_testing/ > security_results.txt ; cat security_results.txt ; terraform-compliance -p tfplan.json -f ../../security_testing/ > security_results.txt"' + sh "CONTAINER_ID=\$(sudo docker ps -a | grep 'terraform' | awk '{ print \$1 }') && CONT=\$(echo \${CONTAINER_ID} | cut -d' ' -f1) && sudo docker rm \${CONT}" + } + } + + stage('Approval step') { + steps { + script { + env.APPROVED = input message: 'Approve this infrastructure deploy?', + ok: 'Deploy!', + parameters: [choice(name: 'Approving', choices: "YES\nNO\n", description: 'Proceed with deployment?')] + } + } + } + // stage('Deploy infrastructure') { + // steps { + // script { + // sh 'sudo docker run -t terraform_aws bash -c "cd environments/dev && terraform apply -auto-approve"' + // sh "CONTAINER_ID=\$(sudo docker ps -a | grep 'terraform' | awk '{ print \$1 }') && CONT=\$(echo \${CONTAINER_ID} | cut -d' ' -f1) && sudo docker rm \${CONT}" + // } + // } + // } + } + } + + ``` + + \ No newline at end of file diff --git a/jenkins/slave-config.PNG b/jenkins/slave-config.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ec1a631229cc76c431cc52a6ba1caa4ddc777f61 GIT binary patch literal 9726 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 F{|~IxVo3l1 literal 0 HcmV?d00001