Play With AWS S3 Console

1 min read

database merupakan element penting untuk menyimpan data, pada episode kali ini kita akan membuat automation backup dan upload database ke AWS S3, sebelumnya daftar dulu aplikasi AWS

setelah menuju service S3

create bucket

create credentials account

tambahkan user

centang programmatic access

pilih AmazonS3FullAccess

klik next biarkan kosong

Download credentials Account

selanjutnya kita setup di environtment docker

sudo docker exec -it centos1 bash  

server database pada address “database” maka dari itu kita build docker compose terlebih dahulu

sudo vim docker-compose.yml

version: '3'
services: 
    jenkins:
        container_name: jenkins
        image: jenkins/jenkins
        ports: 
            - "8080:8080"
        volumes: 
            - "./jenkins_home:/var/jenkins_home"
        networks: 
            - net
    remote_host:
        container_name: remote-host
        image: remote-host
        build: 
            context: centos7
        networks: 
            - net
    centos1:
        container_name: centos1
        image: centos1
        build: 
            context: OS
        networks: 
            - net
    database:
        container_name: database
        image: mysql:5.7
        environment: 
            - "MYSQL_ROOT_PASSWORD=12345"
        volumes: 
            - "./database_data:/var/lib/mysql"
        networks: 
            - net
networks: 
    net: 
sudo docker-compose build
sudo docker-compose up -d

untuk tutorial database bisa dilihat disini https://blog.sandysend.com/2020/08/27/create-mysql-database-in-docker-inside-jenkins/

selanjutnya adalah setup s3 dengan environtment pada Dockerfile centos1

vim Dockerfile
FROM centos:7

RUN yum -y install openssh-server passwd

RUN useradd remote_user && \
    echo "12345" | passwd remote_user --stdin && \
    mkdir /home/remote_user/.ssh && \
    chmod 700 /home/remote_user/.ssh

COPY remote_key.pub /home/remote_user/.ssh/authorized_keys

RUN chown remote_user:remote_user -R /home/remote_user/.ssh && \
    chmod 600 /home/remote_user/.ssh/authorized_keys

RUN yum install -y initscripts && \
    /usr/sbin/sshd-keygen
RUN yum install -y mysql
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
    python get-pip.py && \
    pip install awscli --upgrade && \
    export AWS_ACCESS_KEY_ID=AKIARQ7ZH7UDLHHAYYEY && \
    export AWS_SECRET_ACCESS_KEY=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
CMD ["/usr/sbin/sshd", "-D"]
sudo docker-compose build
sudo docker-compose up -d
mysqldump -u root -p -h database test > ~/db.sql

aws s3 cp /tmp/db.sql s3://sandysend-db/db.sql

selamat kita sudah bisa akses database ke S3 AWS, selanjutnya kita bikin script sederhana seperti berikut

#/bin/sh

DATE=$(date +%H-%M-%S)
FILE=db-$DATE.sql
USERNAME=$1
PASSWORD=$2
HOST=$3
DATABASE=$4

mysqldump -u $USERNAME -p$PASSWORD -h $HOST $DATABASE > ~/$FILE && \
        export AWS_ACCESS_KEY_ID=AKIARQ7ZH7UDDECC5BXI && \
        export AWS_SECRET_ACCESS_KEY=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 && \
        echo "backup local database to AWS S3" && \
        aws s3 cp ~/$FILE s3://sandysend-db/$FILE
root@c0fe64274365 ~]# ./script.sh root 12345 database test

finally

Install ansible inside jenkins images

ansible dibutuhkan untuk menjalankan automasi di lingkup Linux OS, jenkins image yang kita build dari awal belum dilengkapi dengan aplikasi ansible, untuk itu kita...
admin
1 min read

Add Credentials Jenkins Account

sementara ini kita sudah build beberapa docker container, yaitu kali ini kita akan menambahkan credentials account centos1, database dan AWS Keys, maka masuk ke...
admin
45 sec read

Make permanent docker-compose file

sering kali ketika kita build docker-compose maka file yang sebelumnya kita buat di guest docker akan hilang, maka dari itu kita akan membuat permanent...
admin
58 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *