파이프라인 생성
. 파이프라인 이름 : simple-pipeline-aws (simple-pipeline이라고 project 이름을 지어놔서... 그냥 다르게 이름을 변경 한 것임. )
. 새서비스 역할
파이프 라인 이름이 자동으로 뒤에 붙기 되는데... 편집할까?
역할이름 : AWSCodePipelineServiceRole-ap-northeast-2-simple-pipeline-aws
. 소스 공급자 : AWS CodeCommit
. Repository : simple-pipeline-repo
. 브랜치 이름 : master
(1번에서 repository만 만들고 push된 게 없으므로 추가 필요)
. 빌드 스테이지 : 빌드는 선택사항이고 이번에는 빌드 없이 가는 것이므로 " 빌드 스테이지 건너뛰기" 선택
. 배포 스테이지 :
- 배포공급자 : AWS CodeDeploy
- 리전 : 아시아 태평양 서울
- 애플리케이션 이름 : simple-pipeline
- 배포그룹 : simple-pipeline-deployment-group
. 파이프라인 생성 버큰 클릭.
. 생성되면 한번은 pipeline을 실행시키는데 ... 권한부족으로 에러가 나는 경우가 있다.
해당 Role에 권한이 없다는 얘기인데 이름을 보면 Pipeline생성할 때 역할생성 허용으로 만든 이름이다.
무슨권한이 없다는 것일까?
IAM > Role에서 해당권한을 찾아 추가하면 됨.
우선 pipe라인의 어느 단계에서 발생한건지 확인해보니 Source단계다
그래서 codeCommit 권한을 준다. FullAccess로다가
권한 추가 > AWSCodeCommitFullAccess
추가한 다음 CodePipeline으로 와서 "재시도"버튼 클릭
근데 이번에는 다른 오류다
맞다. Repository만 만들고 파일은 하나도 없다 ㅋㅋ
AWS의 도움말에서 제공하는 샘플 프로젝트 파일을 첨부파일로 올려둔다.
파일 구조는
예제에서 MyDemoRepo가 내 repository로 보면 된다.
파일을 하나하나 레파지토리에서 추가해서 넣을 수도 있다.(한번에 1개씩만 된다 ㅡㅡ)
git을 이용하여 추가할 수도 있다.
-- 터미널에서 1단계에서 clone한 위치로 간다.
cd ~/Documents/cicd
cd simple-pipeline-repo
# ls 해서 .git파일만 있는것을 확인한다.
위 SampleApp_Linux.zip 압축을 풀어 파일들을 이곳으로 옮긴다.
# git 작업
git add .
git commit -m "Add sample"
git push
git push 오브젝트 나열하는 중: 10, 완료. 오브젝트 개수 세는 중: 100% (10/10), 완료. Delta compression using up to 8 threads 오브젝트 압축하는 중: 100% (8/8), 완료. 오브젝트 쓰는 중: 100% (10/10), 5.31 KiB | 2.66 MiB/s, 완료. Total 10 (delta 0), reused 0 (delta 0), pack-reused 0 To ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/simple-pipeline-repo * [new branch] master -> master |
new branch 로 master 를 생성했다.
다 올라가면 aws colsole에서 확인
CodeCommit > Repository > simple-pipeline-repo
이제 Codepipeline으로 가보면 Push했을 때 돌도록 설정이 되어있다(appspec.yml에)
알아서 배포까지 성공되어 있는 상태다
Deploy가 성공했으면 EC2에 해당 소스가 반영되어있다는 뜻이다.
EC2 에 Tag를 줬으므로 해당이름(EC2forCodePipeline)을 검색하여 접속 주소를 확인한다
브라우저에서 해당 EC2주소를 치면 다음과 같이 Congratulations 라고 index.html 파일을 보여준다.
-------
AWS의 자습서 사이트의 내용
https://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/tutorials-simple-codecommit.html