비공개 풀에서 빌드 실행

이 문서에서는 비공개 풀에서 빌드를 실행하는 방법을 설명합니다. 비공개 풀을 처음 사용하는 경우 비공개 풀 개요를 읽어보세요.

시작하기 전에

  • 비공개 풀 만들기 및 관리의 단계에 따라 비공개 풀을 만들었는지 확인합니다.

  • 이 가이드에서 명령줄 예시를 사용하려면 Google Cloud CLI를 설치하고 구성합니다.

  • 동일한 클라우드 프로젝트를 사용하여 비공개 풀 및 Cloud Build 빌드를 만들거나 다른 프로젝트를 사용할 수 있습니다. 빌드가 비공개 풀과 다른 프로젝트에 있으면 gcloud CLI의 기본 프로젝트를 빌드가 시작된 프로젝트로 설정합니다.

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

IAM 권한

  • gcloud CLI 또는 Cloud Build API를 통해 빌드를 실행하려면 빌드를 요청하는 사용자 또는 서비스 계정에 비공개 풀 프로젝트의 WorkerPool 사용자 역할을 부여합니다.

  • 트리거를 사용하여 자동 빌드를 실행하려면 다음 안내를 따르세요.

    • 빌드를 시작하려는 프로젝트가 비공개 풀이 있는 프로젝트와 동일하면 권한을 부여할 필요가 없습니다.
    • 빌드를 시작하려는 프로젝트가 비공개 풀이 있는 프로젝트와 다른 경우 WorkerPool 사용자 역할을 빌드를 만든 작업자 풀 프로젝트에 있는 트리거 프로젝트의 Cloud Build 서비스 계정에 부여합니다.

    Console

    1. Google Cloud Console에서 IAM 페이지를 엽니다.

      IAM 권한 페이지 열기

    2. 페이지 상단의 프로젝트 선택기 드롭다운 메뉴에서 비공개 풀이 포함된 프로젝트를 선택합니다.

    3. Add(추가)를 클릭합니다.

    4. 다음 주 구성원 및 역할 설정을 입력합니다.

      • 새 주 구성원: 빌드 트리거가 포함된 프로젝트의 기본 Cloud Build 서비스 계정 이메일 주소를 입력합니다. 다음 단계에 따라 이 이메일 주소를 가져올 수 있습니다.

        1. IAM 페이지를 엽니다.
        2. 빌드 트리거가 포함된 프로젝트를 선택합니다.
        3. 권한 테이블에서 @cloudbuild.gserviceaccount.com으로 끝나는 이메일 주소를 찾습니다. 이것이 사용자의 Cloud Build 서비스 계정입니다.
      • 역할 선택: Cloud Build WorkerPool 사용자 역할을 선택합니다.

    5. 저장을 클릭하여 새 IAM 권한을 저장합니다.

    gcloud

    cloudbuild.workerpoolUser 역할로 기본 Cloud Build 서비스 계정을 트리거 풀 프로젝트에서 작업자 풀 프로젝트에 추가하려면 다음 안내를 따르세요.

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
          --role=roles/cloudbuild.workerpoolUser
    

    위 명령어의 자리표시자 값을 다음으로 바꿉니다.

    • PRIVATEPOOL_PROJECT_ID는 빌드를 실행하는 비공개 풀이 있는 프로젝트의 ID입니다.
    • TRIGGER_PROJECT_NUMBER는 빌드를 실행하는 트리거가 있는 프로젝트의 프로젝트 번호입니다.

빌드 실행

비공개 풀을 만든 동일한 클라우드 프로젝트 또는 다른 클라우드 프로젝트에서 빌드를 제출할 수 있습니다. 빌드 구성 파일에서 또는 gcloud 명령어로 직접 비공개 풀을 지정할 수 있습니다.

빌드 구성 파일에서 비공개 풀 지정:

  1. Cloud Build 구성 파일에서 pool 옵션을 추가하고 비공개 풀의 전체 리소스 이름을 지정하여 빌드를 실행합니다.

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    위 구성 파일의 자리표시자 값을 다음으로 바꿉니다.

    • PRIVATEPOOL_PROJECT_ID: 비공개 풀이 있는 Cloud 프로젝트입니다.
    • REGION: 비공개 풀을 만든 리전입니다.
    • PRIVATEPOOL_ID: 비공개 풀을 만들 때 지정한 고유 비공개 풀 ID입니다.
  2. 위에서 만든 빌드 구성 파일을 사용하여 gcloud 또는 API를 통하거나 트리거를 사용해 빌드를 실행합니다. 인스턴스가 온프레미스에서 호스팅되는 경우 Cloud Build는 GitHub Enterprise 또는 Bitbucket 서버와 같은 여러 외부 소스 코드 관리 시스템에 대한 트리거 기능 지원을 제공합니다.

gcloud 명령어로 비공개 풀 지정:

빌드 구성 파일 대신 gcloud 명령어로 비공개 풀을 지정할 수 있습니다. 예를 들어 다음 빌드 구성 파일이 있다고 가정해보세요.

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

다음 명령어는 빌드 구성 파일 사용을 빌드하고 명령어에서 작업자 풀을 지정합니다.

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

위 명령어의 자리표시자 값을 다음으로 바꿉니다.

  • CONFIG_FILE: 빌드 구성 파일의 경로입니다.
  • PRIVATEPOOL_ID: 비공개 풀을 만들 때 지정한 고유 비공개 풀 ID입니다.
  • PRIVATEPOOL_PROJECT_ID: 비공개 풀이 있는 Cloud 프로젝트입니다.
  • REGION: 비공개 풀을 만든 리전입니다.

다음 단계