プライベート プールでのビルドの実行

このドキュメントでは、プライベート プールでビルドを実行する方法について説明します。プライベート プールを初めて使用する場合は、プライベート プールの概要をご覧ください。

始める前に

  • プライベート プールの作成と管理の手順を使用してプライベート プールを作成していることを確認してください。

  • このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。

  • 同じ Google Cloud プロジェクトでプライベート プールと Cloud Build ビルドを作成できます。また、別々のプロジェクトを使用することもできます。ビルドがプライベート プールとは異なるプロジェクトに存在する場合は、gcloud CLI のデフォルト プロジェクトをビルド元のプロジェクトに設定します。

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

IAM の権限

  • gcloud CLI または Cloud Build API を使用してビルドを実行するには、ビルドをリクエストするユーザーやサービス アカウントに、プライベート プール プロジェクトの WorkerPool ユーザーロールを付与します。

  • トリガーを使用して自動ビルドを実行するには:

    • ビルドを開始するプロジェクトがプライベート プールが存在するプロジェクトと同じである場合、権限を付与する必要はありません。
    • ビルドを開始するプロジェクトがプライベート プールが存在するプロジェクトと異なる場合は、ビルドを作成したワーカープール プロジェクトのトリガー プロジェクトの Cloud Build サービス アカウントに WorkerPool ユーザーのロールを付与します。

    コンソール

    1. Google Cloud Console で [IAM] ページを開きます。

      [IAM] 権限ページを開く

    2. ページの上部にあるプロジェクト セレクタのプルダウン メニューで、プライベート プールを含むプロジェクトを選択します。

    3. [アクセス権を付与] をクリックします。

    4. 次のプリンシパルとロールの設定を入力します。

      • プリンシパルを追加する: ビルドトリガーを含むプロジェクトのデフォルトの Cloud Build サービス アカウント メールアドレスを入力します。このメールアドレスは、次の手順で取得できます。

        1. [IAM] ページを開きます。
        2. ビルドトリガーを含むプロジェクトを選択します。
        3. 権限の表で、末尾が @cloudbuild.gserviceaccount.com のメールアドレスを探します。これが Cloud Build サービス アカウントです。
      • ロールを割り当てる: Cloud Build WorkerPool ユーザーロールを選択します。

    5. [保存] をクリックして、新しい IAM 権限を保存します。

    gcloud

    トリガー プロジェクトのデフォルトの Cloud Build サービス アカウントを cloudbuild.workerPoolUser ロールを持つワーカープール プロジェクトに追加するには:

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

    上記のコマンドのプレースホルダ値を次の値に置き換えます。

    • PRIVATEPOOL_PROJECT_ID は、ビルドを実行するプライベート プールがあるプロジェクトの ID です。
    • TRIGGER_PROJECT_NUMBER は、ビルドを実行するトリガーがあるプロジェクトのプロジェクト番号です。

ビルドの実行

プライベート プールを作成した同じ Google Cloud プロジェクトまたは別の Google Cloud プロジェクトからビルドを送信できます。プライベート プールは、ビルド構成ファイルで、または直接 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: プライベート プールが配置されている Google Cloud プロジェクト。
    • REGION: プライベート プールを作成したリージョン。
    • PRIVATEPOOL_ID: プライベート プールの作成時に指定した一意のプライベート プール ID。
  2. 上で作成したビルド構成ファイルを使用して、gcloud または API またはトリガーを使用してビルドを実行します。インスタンスがオンプレミスでホストされている場合、Cloud Build は、GitHub EnterpriseBitbucket Server などのいくつかの外部ソースコード管理システムのトリガー機能のサポートを提供します。

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: プライベート プールが配置されている Google Cloud プロジェクト。
  • REGION: プライベート プールを作成したリージョン。

次のステップ