DjangoCRUDBoard CI/CD 2. appspec.yml

박근우·2021년 2월 22일
0

https://github.com/DPS0340/DjangoCRUDBoard

appspec.yml 코드 리뷰

aws codedeploy(배포 자동화)에 정확한 행동을 명시하기 위해 사용
*yml을 배포에 사용되는 모듈의 단위로 생각함
실제 정의: xml이나 json과 같이 정보를 저장하거나 읽어들이는 '설정 파일'

version: 0.0 #코드 deploy 버전 임의로 정해짐.
os : linux 
#배포의 CodeDeploy설치 이벤트 중 애플리케이션 개정의 어떤 파일을 인스턴스에 설치해야 하는지에 대한 정보
files :	
 - source : / # / -> s3의 루트 폴더를 나타냄
   destination: /home/ubuntu/app/ #ec2에 있는 폴더로 복사

#'permissions' 섹션의 파일 및 디렉터리/폴더가 인스턴스에 복사된 후 이러한 파일 및 디렉터리/폴더에 특수 권한(있는 경우)이 어떻게 적용되어야 하는지를 지정
permissions:
  - object: /	#폴더 경로
    pattern: "**"	#루트에서 전체를 복사
    owner: ubuntu
    group: ubuntu

hooks:	#  배포 수명 주기 이벤트 중 실행하는 Lambda 확인 함수를 지정 
#aws codeploy가 overwriting을 지원 안해서 쉘스크립트 사용
  BeforeInstall:
    - location: beforeinstall.sh	# 기존 폴더 코드 바뀌지 전
  AfterInstall:
    - location: afterinstall.sh		# 기존 폴더 코드 바뀐 후
  ApplicationStart:
    - location : deploy.sh	# 배포 코드
      timeout: 60
      runas: ubuntu

# This section controls the action: github actions 제어
branch_config:
    wip\/.*: ~		# w ip 위쪽에 있는 브랜치는 무시(?)
    master:	# master에 커밋이 이루어졌을때
        deploymentGroupName: djangocrudboard-group #code deploy에서 
        deploymentGroupConfig: #그룹 설정 변경
            serviceRoleArn: arn:aws:iam::058718939924:role/codedeploy-role
        deploymentConfig: #배포할때 쓰는 설정을 변경
            autoRollbackConfiguration:
                enabled: false #true시 이벤트 리스너가 필요하다는 오류 메세지가 떠서 false로 변경
profile
공대생의 은밀한 취미

0개의 댓글