테라폼 스터디 대망의 마지막(6)주차이다.
6주차 주제는 TFC
TFC란 프로비저닝 대상과 별개로 state를 관리할 수 있도록 SaaS 형태로 하시코프에서 제공해준다.
몇몇 기능은 유료지만 주 목적인 state 관리는 무료.
참고로 스터디에서는 GitHub을 사용하지만 나는 GitLab으로 진행
우선 다음 저장소 포크 : https://github.com/terraform101/terraform-aws-tfc-workflow
리드미 생성 안되도록 하고
빈 프로젝트 생성
Push an existing folder 설명 대로 순서대로 진행하여
디렉토리 포크 완료
main.tf에 조직 이름 수정해주고
커밋 완료
terraform-aws-tfc-workflow 워크스페이스가 생성된것이 확인된다.
plan 에러가 발생한다.
prefix 변수를 추가해준다.
또다시 에러가 난다.
다시보니 오타가..ㅎㅎ
오타 수정해주고 다시 돌려보면
위와같이 에러는 나지만... AWS 관련 설정이 없다는 에러가 나온다. 즉 prefix는 정상적으로 설정됐다는것.
마지막으로 키 넣어주고 다시 플랜을 해보면
정상적으로 동작한다.
위와같이 tfc 페이지에서도 확인이 가능하다.
apply 실행하면 실시간으로 확인 가능
state 파일이 없다.
앞서 말한것처럼 state 파일은 tfc가 관리.
GitLab과 tfc를 연동해보자.
위와같이 VCS 프로바이더를 깃랩으로 설정해주면 입력해야하는 정보들이 확인된다.
유저 설정중 어플리케이션 클릭하고
리다이렉트 URI 입력후 생성하면
다음과같이 어플리케이션 아이디와 시크릿 정보 확인이 가능하다.
위와같이 연결해주면
자동으로 로그인창 출력
인증해주면
성공
다시 버전컨트롤 워크플로우에서 레파지토리 선택하기위해 들어가서 조금 기다리면
계정으로 로그인 가능한 프로젝트리스트가 확인된다.
테스트로 생성한 워크플로우 프로젝트 검색해서 선택해주면
위와같이 몇몇 설정이 나오는데 오토 어플라이 선택한다.
이외에도 브랜치명 입력해주고 트리거 런 선택. Pull 리퀘스트(깃랩에선 머지리퀘스트) 오토매틱 체크해주고..하단의 업데이트 클릭
이렇게 하면 워크스페이스와 VCS간 최초 연동되면 마지막 커밋 내용을 기반으로 Run이 실행
마지막으로 연동테스트를 위해
main.tf에 terraform cloud 항목 모두 주석처리하고
새로운 브렌치 생성한다음
위와같이 MR(PR)을 생성하여 병합을 해보자.
머지하면
tfc에서 동작하는것을 확인할수있다 ! (비록실패했찌만 ㅎㅎ) 어쨌든 연동된것을 확인할수있다~!