Ssoon
Chapter (07) - 협업 본문
CloudNet@ 가시다님이 진행하는 Terraform 101 Study 2기
"테라폼으로 시작하는 IaC" (한빛미디어) 도서로 진행!
- 공동 작업자는 작성된 코드를 점검하고 서로의 코드를 학습할 수 있는 협업 환경 구성
- 협업 환경 구성 요소
- 코드를 다수의 작업자가 유지 보수할 수 있도록 돕는 VCS
- 테라폼 State를 중앙화하는 중앙 저장소
- 유형 1
- 동일한 대상을 관리하는 여러 작업자는 동일한 프로비저닝을 위해 서로 코드 공유
- 유형 2
- 형성관리 도구를 통해 여러 작업자가 동일한 코드를 공유해 구성
- 변경 이력 관리 및 이전 버전으로 롤백
- 공유파일은 테라폼 구성파일과 State (테라폼 프로비저닝의 결과물로 데이터 저장소와 같음)
- 작업자가 서로 다른 프로비저닝한 State 결과를 공유 -> 테라폼 프로비저닝 결과 오류 -> State 관리를 위해 백엔드 설정
- 유형 3
- 테라폼 코드 형상관리를 위한 중앙 저장소 + State 백엔드 -> 개별적으로 프로비저닝 테스트 및 완성 코드 공유
- State 는 중앙 관리 -> 프로비저닝을 수행하면 원격 State의 상태를 확인하고 프로비저닝 수행 -> State 백엔드에 저장/관리
✅ 형상관리 도구 (VCS)
버전 관리 시스템 = Version Control System
🧿 Git
- 분산형 관리 시스템
- 코드 히스토리를 관리하고 중앙 저장소와 동기화
- 로컬 저장소
- 작업자 로컬 환경에 저장되는 개인 전용 저장소
- 리모트 저장소
- 코드 형상관리 이력과 코드가 원격지에서 관리되고 여러 사람이 공유하는 저장소
용어 | 표현 | 설명 |
branch | 브랜치 | "main" 또는 "master" 의 주 브랜치에서 갈라져 나온 별도의 버전의 작업 공간 |
chechout | 체크아웃 | 지정한 브랜치로 정환하는 작업 |
clone | 복제 | 리모트 저장소로부터 로컬 저장소로 복제 |
fork | 포크/분기 | 리모트 저장소로부터 로컬 저장소로 복제하지만 새로운 저장소로 구성 |
fetch | 페치 | 리모프 저장소에서 오브젝트를 로컬 저장소로 가져오는 동작 |
HEAD | 헤드 | 현재 체크아웃된 브랜치의 최종 변경을 가리키는 이름 |
add | 추가 | 작업 중인 공간에서 다음 커밋으로 변경을 기록하기 전까지 변경분을 추적 |
commit | 커밋 | 로컬 저장소에 변경 사항을 기록 |
merge | 머지/병합 | 깃으로 관리하는 오브젝트의 불일치한 내용을 병합 |
pull | 풀/가져오기 | 브랜치의 내용을 리모트 저장소로부터 fetch 한 후 병합 |
push | 푸시/저장하기 | 로컬의 수정 내용을 리모트 저장소에 저장 |
pull request | PR/풀 리퀘스트 | 분기된 브랜치 또는 저장소에서 지정한 저장소의 브랜치로의 병합 요청 |
🧿 리모트 저장소 - 깃허브
- Git 은 리모트 저장소가 있어야 코드 수준에서 다른 작업자와 협업 가능
- 협업 ?
- 리모트 저장소를 관리하면서 commit 된 데이터를 올리고(push) 받는(pull) 것
✅ 코드 관리
- fork 기능을 제공해 기존 리모트 저장소를 본인 소유의 저장소로 복사
- fork 한 저장소는 원본 저장소와 연결 -> 변경 사항을 원본 저장소에 적용(pull request) 가능
🧿 공유 제외 대상
.gitignore 로 제외할 대상을 정의
- *.terraform 디렉터리
- init 실행 시 작성되므로 제외
- *.tfstate 파일
- 프로비저닝 결과 데이터 소스 정보, 민감 데이터가 포함
- 다른 사용자가 같은 State 파일을 사용하는 경우 인프라 불합치 유발
- *tfvars 파일
- 프로비저닝 시 적용할 변수 값을 보관하는 파일 -> 작업자마다 별도 변수 사용
- 시크릿 파일
- 인프라 구성에 필요한 시크릿 정보 파일
- terraformrc 파일
- 작업자의 CLI 설정 파일
🧿 로컬 자장소에 복제
- 로컬 작업 환경에서 리모트 저장소 내용 복제
- git clone <repository url>
- 디렉터리 이름 변경 -> 복사 -> 생성
'Terraform 101 Study 2기' 카테고리의 다른 글
Chapter (08) - 워크플로 - 격리 구조 (0) | 2023.08.09 |
---|---|
Chapter (08) - 워크플로 (0) | 2023.08.09 |
Chapter (06) Module - 사용 형식 / 소스 관리 (0) | 2023.07.24 |
Chapter (06) Module - 작성 기본 원칙 / 모듈화 (0) | 2023.07.24 |
Chapter (05) State - 워크스페이스 (0) | 2023.07.19 |
Comments