Bitbucket Pilelines/Deployments 입문
소개
Amazon S3와 CloudFront를 사용하여 정적 웹 콘텐츠를 전송하고 운영하고 있습니다.
「AWS의 콘솔 포치 포치하는 스트레스 갱신시의 운용을 편하게 하고 싶다!」라고 하는 디렉터나 디자이너의 요망에 대답하기 위해서 Bitbucket Pipelines를 사용해 자동화해 보았습니다.
정적 파일의 배포이므로 Pipelines 또는 Deployments로 입문 수준의 내용이라고 생각합니다.
전제
절차
1. IAM 사용자 생성
Bitbucket Pipelines에서 배포에 사용할 IAM 사용자를 만듭니다.
IAM에는 S3のオブジェクトを更新するのに必要
권한과 CloudFrontのInvalidationリクエストができる
권한이 필요합니다.
정책 자체를 적절하게 작성하십시오.
사용자를 만든 후 액세스 키를 생성하여 키 쌍을 얻습니다.
2. BitBucket 설정
2.1 Pipelines 활성화
리포지토리의 왼쪽 메뉴에서 設定
> PIPELINES Setting
> Enable Pipelines
를 활성화합니다.
2.2 환경 변수 설정
리포지토리의 왼쪽 메뉴에서 設定
> PIPELINES Environment variables
로 이동하여 다음 환경 변수를 정의합니다.
Variable name
Value
보안
AWS_ACCESS_KEY_ID
1단계에서 얻은 ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
1단계에서 얻은 SECRET_ACCESS_KEY
CONTENTS_BUCKET
배포 대상 버킷 이름
DISTRIBUTION_ID
CloudFront distribution ID
어떠한 이유로 S3의 버킷이 변경되거나 CloudFront의 Distribution이 변경된 경우에도 Git의 커밋 없이 변경할 수 있도록 키 페어 이외도 환경 변수로 정의해 보았습니다.
2.3 Pipeline 정의
다음 파일을 리포지토리 바로 아래에 커밋합니다.
bitbucket-pipelines.ymlimage: python:3.6.4
pipelines:
branches:
master:
- step:
name: Print Message
caches:
- pip
script:
- echo "Deploy process to production environment started"
- step:
name: Deploy to Production(push to S3 and cache invalidation)
deployment: production
trigger: manual
caches:
- pip
script:
# Install
- pip install awscli
# Push to S3
- aws s3 sync . s3://${CONTENTS_BUCKET}
--delete
--exclude '.git/*'
--exclude '.gitignore'
--exclude 'README.md'
--exclude 'bitbucket-pipelines.yml'
# Requesting cache invalidation
- aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --path '/*'
이 내용의 경우 원격 리포지토리(Bitbucket)의 master 브랜치에 병합되면 Pipeline이 실행됩니다.trigger: manual
는 최초의 step
에는 기술할 수 없기 때문에, echo
로 메세지를 출력할 뿐의 step 를 기술해, 2 번째의 step
에 처리를 기재하고 있습니다.
이제 배포는 Pipelines 화면에서 버튼을 누르는 것만으로 할 수 있으며, Deployments 화면에서 어떤 커밋이 배포되는지 추적하기 때문에 편리합니다.
Reference
이 문제에 관하여(Bitbucket Pilelines/Deployments 입문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tsukapah/items/48d6f2882fe1db4d3238
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
image: python:3.6.4
pipelines:
branches:
master:
- step:
name: Print Message
caches:
- pip
script:
- echo "Deploy process to production environment started"
- step:
name: Deploy to Production(push to S3 and cache invalidation)
deployment: production
trigger: manual
caches:
- pip
script:
# Install
- pip install awscli
# Push to S3
- aws s3 sync . s3://${CONTENTS_BUCKET}
--delete
--exclude '.git/*'
--exclude '.gitignore'
--exclude 'README.md'
--exclude 'bitbucket-pipelines.yml'
# Requesting cache invalidation
- aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --path '/*'
Reference
이 문제에 관하여(Bitbucket Pilelines/Deployments 입문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tsukapah/items/48d6f2882fe1db4d3238텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)