InfoGrab Docs

머지 리퀘스트에서의 OpenTofu 통합

머지 리퀘스트에서의 OpenTofu 통합에 대해 설명합니다.

Infrastructure as Code(IaC) 변경사항에 대한 협업에는 코드 변경사항과 예상되는 인프라 변경사항을 모두 검토하고 승인해야 합니다. GitLab은 머지 리퀘스트 페이지를 사용하여 OpenTofu 코드 변경사항과 예상 효과에 대한 협업을 지원하는 솔루션을 제공합니다. 이를 통해 사용자는 IaC 워크플로우를 간소화하기 위해 커스텀 도구를 구축하거나 서드파티 솔루션에 의존할 필요가 없습니다. 머지 리퀘스트에 OpenTofu Plan 정보 출력 # GitLab Terraform/OpenTofu Report 아티팩트 를 사용하면 tofu plan 실행에 대한 세부 정보를 머지 리퀘스트 위젯에 직접 노출하여 OpenTofu가 생성, 수정 또는 삭제하는 리소스에 대한 통계를 볼 수 있습니다. Warning 다른 job 아티팩트와 마찬가지로 OpenTofu 플랜 데이터는 저장소에서 Guest 권한을 가진 모든 사람이 볼 수 있습니다. OpenTofu와 GitLab 모두 기본적으로 플랜 파일을 암호화하지 않습니다. plan.json 또는 plan.cache 파일에 비밀번호, 액세스 토큰 또는 인증서와 같은 민감한 데이터가 포함된 경우 플랜 출력을 암호화하거나 프로젝트 가시성 설정을 수정해야 합니다. 또한 공개 파이프라인 을 비활성화 하고 아티팩트의 공개 플래그를 false로 설정 해야 합니다( public: false ). 이 설정을 통해 아티팩트는 GitLab 관리자와 Reporter, Developer, Maintainer 또는 Owner 권한을 가진 프로젝트 멤버만 액세스할 수 있습니다. OpenTofu 보고서 아티팩트 구성 # GitLab은 OpenTofu CI/CD 컴포넌트를 통해 OpenTofu와 통합 합니다. 이 컴포넌트는 GitLab 관리 OpenTofu 상태를 사용하여 머지 리퀘스트에 OpenTofu 변경사항을 표시합니다. OpenTofu 보고서 아티팩트 자동 구성 # plan job에서 OpenTofu 보고서 아티팩트를 자동으로 구성하는 OpenTofu CI/CD 컴포넌트 를 사용해야 합니다. OpenTofu 보고서 아티팩트 수동 구성 # 빠른 설정을 위해 사전 구축된 이미지를 사용자 지정하고 gitlab-tofu 도우미를 활용하는 것이 좋습니다. GitLab OpenTofu Report 아티팩트를 수동으로 구성하려면: 이러한 파일을 여러 번 참조하기 위한 재사용 가능한 변수를 정의합니다: variables: PLAN: plan.cache PLAN_JSON: plan.json 경량의 유연한 커맨드라인 JSON 프로세서 인 jq 를 설치합니다. tofu plan 출력에서 추출하려는 정보를 파싱하는 특정 jq 명령의 별칭을 만듭니다: before_script: - apk --no-cache add jq - alias convert_report="jq -r '([.resource_changes[]?.change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|leng