s3에 mysqlbackup upload

최종윤·2024년 1월 4일

CICD

목록 보기
7/7

remote-host에 awscli, mysql client 설치
aws IAM user에서 accesskey 발급
remote-host에 aws enviroment variable(accesskeyid) 입력
aws s3 cp command로 파일을 s3에 복사(upload?)
aws s3 cp /tmp/db.sql s3://mybucket/db.sql

script.sh 에 다음과 같이 작성하여 script를 통해 aws cli로 db backup을 upload

#/bin/bash

DATE=$(date +%H-%M-%S)
BACKUP=db-$DATE.sql

DB_HOST=$1
DB_PASSWORD=$2
DB_NAME=$3
AWS_SECRET=$4
BUCKET_NAME=%5


mysqldump -u root -h $DB_HOST -p $DB_PASSWORD $DB_NAME > /tmp/$BACKUP && \
export AWS_ACCESS_KEY_ID=AKIAVRUVQ7GT5IWI7YS3 && \
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET && \
echo "Uploading your $BACKUP backup" && \
aws s3 cp /tmp/db-$DATE.sql s3://$BUCKET_NAME/$BACKUP

jenkins에서 비밀번호 같은 보안 정보 관리

jenkins로 다른 머신의 script를 실행하는 환경을 만들고자했습니다.

ubuntu 가상머신에서 docker-compose 파일로
jenkins, remote-host, mysql 컨테이너를 생성했습니다.

remote-host는 centos를 베이스 이미지로 하고 mysql client, awscli를 설치했습니다.

jenkins --- remote-host --- aws s3

jenkins job 을 실행하여 remote-host에서 작성한 script를 실행하여
aws s3에 mysql backup file을 업로드 했습니다.

volumes = (host vm):(container) container 경로에 있는 파일을 vm host의 경로에 저장합니다.

profile
https://github.com/jyzayu

0개의 댓글