이 페이지에서는 기존 저장소 및 인프라 관리자를 사용하여 Google Cloud 리소스 배포를 자동화하는 Cloud Build 트리거를 설정하는 프로세스를 설명합니다.
Infra Manager가 Git 저장소에 연결되면 풀 요청이 배포 미리보기를 호출하고 커밋은 배포 미리보기 생성 또는 배포 업데이트를 호출합니다.
시작하기 전에
- Infra Manager가 사용 설정되어 있는지 확인합니다.
- 배포를 만드는 데 필요한 IAM 권한이 있는지 확인합니다.
roles/config.admin
- 필요한 권한이 있는 서비스 계정이 있는지 확인합니다. 자세한 내용은 서비스 계정 구성을 참고하세요.
- Terraform 구성이 있는 기존 Git 저장소를 찾습니다. 이 페이지에 설명된 자동화를 설정하면 Infra Manager에서 리소스를 업데이트하는 데 사용하는 Terraform 구성이 됩니다.
- 권장: Git 저장소에 브랜치 보호를 설정합니다.
Google Cloud 리소스 배포 자동화
다음 단계에서는 Git 저장소에 저장된 Terraform 구성의 미리보기 및 배포를 자동화하는 데 필요한 설정을 설명합니다. Terraform 구성의 배포는 기존 배포의 수정본일 수 있습니다. 버전은 프로비저닝된 Google Cloud 리소스를 삭제하거나 대체할 수 있습니다.
설정이 완료되면 Git 저장소의 pull 요청으로 인해 Infra Manager에서 배포 미리보기를 만듭니다. pull 요청이 병합되면 Infra Manager에서 Terraform 구성을 자동으로 배포합니다.
im_cloudbuild_workspace
모듈은 다음과 같은 여러 리소스를 만듭니다.
- Cloud Build 저장소 연결
- pull 요청이 생성될 때 호출되는 Cloud Build 트리거입니다. 이 트리거를 사용하면 Infra Manager가 저장소의 Terraform 구성을 사용하여 미리보기 배포를 만듭니다.
- pull 요청이 Git 저장소와 병합될 때 호출되는 Cloud Build 트리거입니다. 이 트리거를 사용하면 Infra Manager가 저장소의 Terraform 구성을 사용하여 배포를 만들거나 업데이트합니다.
저장소가 업데이트될 때 Terraform 구성 배포를 자동화하려면 다음 단계를 따르세요.
- GitHub 계정 또는 소유한 조직에 Cloud Build GitHub 앱을 설치합니다.
-
만료일이 없도록 토큰을 설정하고 GitHub에 메시지가 표시되면
repo
및read:user
권한을 선택합니다. 앱이 조직에 설치되어 있는 경우read:org
권한도 선택해야 합니다.개인 액세스 토큰을 생성한 후 생성된 토큰을 안전한 곳에 저장합니다. 생성된 토큰은 다음 단계에서 사용합니다.
im_cloudbuild_workspace
모듈을 Git 저장소 내main.tf
파일에 복사합니다.module "im-workspace" { source = "terraform-google-modules/bootstrap/google//modules/im_cloudbuild_workspace" version = "~> 7.0" project_id = PROJECT_ID deployment_id = DEPLOYMENT_ID im_deployment_repo_uri = GIT_REPO im_deployment_ref = REF github_app_installation_id = GIT_APP_ID github_personal_access_token = TOKEN }
다음과 같이 바꿉니다.
- PROJECT_ID: 인프라 관리자가 실행되는 프로젝트 ID입니다.
- DEPLOYMENT_ID: 지정된 배포 식별자입니다. 배포 식별자의 제약조건에 관한 자세한 내용은 배포 이름을 참고하세요.
- GIT_REPO: Git 저장소의 URI입니다.
- REF: 구성의 Git 참조입니다. 참조는 선택사항입니다. 참조를 지정하지 않으면 Git 저장소의 기본 구성된 브랜치가 사용됩니다.
- GIT_APP_ID: 풀 및 푸시 요청 트리거에 사용되는 Cloud Build GitHub 앱의 설치 ID입니다.
- TOKEN: GitHub 저장소의 개인 액세스 토큰입니다. 제공된 경우 Secret Manager 내에 보안 비밀을 만듭니다.
im_cloudbuild_workspace
모듈을 사용하여 배포를 만들거나 기존 배포를 업데이트합니다.gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo=GIT_REPO \ --git-source-directory=DIRECTORY \ --git-source-ref=REF
다음과 같이 바꿉니다.
- PROJECT_ID: 인프라 관리자가 실행되는 프로젝트 ID입니다.
- LOCATION: Infra Manager가 실행되는 위치입니다. 위치 목록은 인프라 관리자 위치를 참고하세요.
- DEPLOYMENT_ID: 지정된 배포 식별자입니다. 배포 식별자의 제약조건에 관한 자세한 내용은 배포 이름을 참고하세요.
- SERVICE_ACCOUNT: Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
- SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 인프라 관리자가 실행되는 프로젝트와 동일한 프로젝트입니다.
- GIT_REPO: 공개 Git 저장소입니다.
- DIRECTORY: Terraform 구성이 있는 디렉터리입니다.
- REF: 구성의 Git 참조입니다. 참조는 선택사항입니다. 참조를 지정하지 않으면 Git 저장소의 기본 구성된 브랜치가 사용됩니다.
Git 저장소가 Infra Manager에 올바르게 연결되어 있는지 확인하려면 저장소에서 풀 요청을 만듭니다.
포크된 Terraform 구성의 유효성 검사 결과를 보려면 GitHub에서 pull 요청을 확인하세요.
이제 이 자동화가 설정되었으므로 Cloud Build 트리거로 다음이 실행됩니다.
- 저장소에 풀 요청이 제출되면 Infra Manager는 Git 저장소에 저장된 포크된 Terraform 구성을 사용하여 미리보기 배포를 만듭니다.
- pull 요청이 저장소에 병합되면 Infra Manager는 Git 저장소에 저장된 포크된 Terraform 구성을 사용하여 배포를 업데이트합니다.
다음 단계
- Cloud Build를 사용하여 빌드 트리거의 빌드 결과를 확인합니다.
- Infra Manager로 배포된 리소스 보기
- Infrastructure Manager 감사 로깅을 사용하여 Google Cloud 리소스를 모니터링합니다.