このページでは、Cloud Build プライベート プールを作成、更新、表示、削除する方法について説明します。プライベート プールの情報については、プライベート プールの概要をご覧ください。
始める前に
新しい Google Cloud プロジェクトを作成するか、既存のプロジェクトを選択します。このプロジェクトを使用して、プライベート プールを作成します。
-
Enable the Cloud Build API.
このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。
[省略可] ビルドで Virtual Private Cloud ネットワークからプライベート リソースにアクセスするには、Virtual Private Cloud ネットワークとプライベート プールがある Virtual Private Cloud ネットワークの間にピアリング接続を設定する必要があります。手順については、プライベート プールを作成するための環境を設定するをご覧ください。
新しいプライベート プールの作成
IAM 権限: このタスクを実行するには、Cloud Build WorkerPool オーナーのロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。
リージョンごとの Google Cloud プロジェクトごとに最大 10 個のプライベート プールを作成できます。新しいプライベート プールを作成するには:
コンソール
Google Cloud Console で [ワーカープール] ページを開きます。
プライベート プールを作成するプロジェクトを選択します。
[ワーカープール] ページで、[作成] をクリックします。
[プライベート プールの作成] サイドパネルが表示されます。
次の情報を入力して、プライベート プールを作成します。
名前: プライベート プールの名前を入力します。この値には、英数字
/[a-z][0-9]/
またはダッシュ-
のみを使用できます。プライベート プールの名前は 1~63 文字にする必要があります。リージョン: プライベート プールを作成するリージョンを選択します。
マシンタイプ: プライベート プールに使用する Compute Engine マシンタイプを選択します。
使用可能なディスクサイズ: プライベート プールのディスクサイズを入力します。100 以上、4,000 以下の値を指定します。値を指定しない場合、Cloud Build は ディスクサイズ 100 を適用します。
[ネットワークの種類] で、次のいずれかのオプションを選択します。
デフォルト ネットワーク: 公共のインターネット経由でインスタンスにアクセスできる場合は、このオプションを選択します。[デフォルトのネットワーク] オプションが選択されている場合、プライベート プールはサービス プロデューサー ネットワークを使用します。詳細については、VPC ネットワークでプライベート プールを使用するように環境を設定するをご覧ください。
プライベート ネットワーク: インスタンスがプライベート ネットワークでホストされている場合は、このオプションを選択します。
プロジェクト: Google Cloud プロジェクト ID を選択します。
ネットワーク: プルダウン メニューからネットワークを選択します。ネットワークを作成していない場合は、VPC ネットワークを作成して管理するでネットワークの作成方法を確認してください。
[IP 範囲]: Cloud Build プロデューサー ネットワークがプライベート リポジトリとの接続を維持する VM に割り当てるために使用できる内部 IP 範囲を入力します。
STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE
形式のクラスレス ドメイン間ルーティング(CIDR)ルーティング表記を使用して範囲を指定できます。たとえば、192.0.2.0/24
の接頭辞の長さは 24 です。IP 範囲の最初の 24 ビットがサブネット マスク(192.0.2.0
)として使用されますが、使用可能なホストアドレスの範囲は192.0.2.0
から192.0.2.255
です。注: 接頭辞長の値は
/29
以下にする必要があります。範囲に値が指定されていない場合は、デフォルト値の/24
が自動的に割り当てられます。接頭辞長に値が指定されていない場合、ピアリングされた VPC ネットワーク内で IP アドレスが自動的に割り当てられます。IP アドレスに値が指定されていない場合、ピアリングされた VPC ネットワーク内の範囲が IP アドレスに自動的に割り振られます。
外部 IP を割り当てる: このオプションはオプションで選択され、プライベート プールが公共のインターネットにアクセスできるようになります。プライベート ネットワークへのアクセスを制限するには、このチェックボックスをオフにします。
[作成] をクリックして、プライベート プールを作成します。
gcloud
gcloud
を使用して新しいプライベート プールを作成する場合、2 つの方法があります。プライベート プール構成ファイルを gcloud
コマンドに渡すか、構成オプションを直接 gcloud
コマンドに渡します。
プライベート プール構成ファイルを gcloud
コマンドに渡す:
プライベート プール構成ファイルを YAML 形式または JSON 形式で作成します。
次の
gcloud
コマンドを実行します。ここで、PRIVATEPOOL_ID
はプライベート プールの一意の識別子、PRIVATEPOOL_CONFIG_FILE
はプライベート プールの構成ファイルの名前、REGION
はプライベート プールを作成するリージョンです。gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGION
出力は次のようになります。
Created [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/private-pool]. NAME CREATE_TIME STATUS private-pool 2018-11-19T16:08:24+00:00 RUNNING
構成オプションを直接 gcloud
コマンドに渡す場合:
次の gcloud
コマンドを実行します。
gcloud builds worker-pools create PRIVATEPOOL_ID \
--project=PRIVATEPOOL_PROJECT_ID \
--region=REGION \
--peered-network=PEERED_NETWORK \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE \
--worker-disk-size=PRIVATEPOOL_DISK_SIZE_GB \
--no-public-egress
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: プライベート プールの一意の ID。この値は 1 ~ 63 文字で、有効な文字は[a-zA-Z0-9_-]+
です。PRIVATEPOOL_PROJECT_ID
: プライベート プールを作成する Google Cloud プロジェクトの ID。REGION
: サポートされているリージョンの 1 つ。PEERED_NETWORK
: サービス プロデューサー ネットワークとピアリングされているネットワークのネットワーク リソース URL。PEERED_NETWORK
はprojects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME
の形式にする必要があります。ここで、NETWORK_PROJECT_ID
は、VPC ネットワークを保持する Google Cloud プロジェクトのプロジェクト ID、NETWORK_NAME
は VPC ネットワークの名前です。 値を指定しない場合、Cloud Build はサービス プロバイダ ネットワークを使用します。PRIVATEPOOL_DISK_SIZE_GB
: プライベート プールにアタッチされているディスクのサイズ。100 以上、4,000 以下の値を指定します。値を指定しない場合、Cloud Build は ディスクサイズ 100 を適用します。gcloud builds submit
の実行時に--disk-size
を使用して別のディスクサイズを指定した場合、--worker-disk-size
はオーバーライドされます。PRIVATEPOOL_MACHINE_TYPE
: ワーカーのマシンタイプ。空白のままにすると、Cloud Build はデフォルト値のe2-standard-2
を使用します。サポートされているマシンタイプの一覧については、プライベート プール構成ファイルのスキーマをご覧ください。gcloud builds submit
の実行時に--machine-type
を使用して別のマシンタイプを指定した場合、--worker-machine-type
はオーバーライドされます。--no-public-egress
: このフラグが設定されている場合、プライベート プールは外部 IP アドレスなしで作成されます。VPC Service Controls の境界内にプライベート プールを作成する場合は、このフラグを設定します。
API
workerpool.json
というプライベート プール構成ファイルを作成します。cURLを使用して Cloud Build API を呼び出します。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" \ https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=PRIVATEPOOL_ID -d @workerpool.json
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_PROJECT_ID
: プライベート プールを作成する Google Cloud プロジェクトの ID。PRIVATEPOOL_ID
: プライベート プールの ID。この値は 1 ~ 63 文字で、有効な文字は[a-zA-Z0-9_-]+
です。REGION
: プライベート プールを作成することがサポートされているリージョンのいずれか。
VPC Service Controls の境界内でのプライベート プールの作成
VPC Service Controls の境界内にプライベート プールを作成する場合は、VPC Service Controls の使用をご覧ください。
プライベート プールの更新
IAM 権限: このタスクを実行するには、Cloud Build WorkerPool 編集者のロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。
既存のプライベート プールのディスクサイズとマシンタイプを更新できます。プライベート プールを更新するには、次を実行します。
コンソール
Google Cloud Console で [ワーカープール] ページを開きます。
プライベート プールを作成したプロジェクトを選択します。
プライベート プール名をクリックします。
[プライベート プールの編集] サイドパネルで、マシンタイプやディスクサイズを更新します。
[保存] をクリックします。
gcloud
プライベート プール構成ファイルを更新する場合:
プライベート プール構成ファイル内で、変更するフィールドを更新します。
次のコマンドを実行します。
PRIVATEPOOL_ID
はプライベート プールの一意の識別子、REGION
はプライベート プールが配置されているリージョン、PRIVATEPOOL_CONFIG_FILE
はプライベート プール構成ファイルの名前です。gcloud builds worker-pools update PRIVATEPOOL_ID \ --region=REGION \ --config-from-file=PRIVATEPOOL_CONFIG_FILE
更新する値を直接 gcloud builds
worker-pools update
コマンドに渡す場合:
gcloud builds worker-pools update PRIVATEPOOL_ID \
--region=REGION \
--worker-disk-size=PRIVATEPOOL_DISK_SIZE \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: 既存のプライベート プールの ID。この値は更新できません。既存のプライベート プール ID を指定する必要があります。REGION
: プライベート プールを作成したリージョン。PRIVATEPOOL_DISK_SIZE
: 更新されたディスクサイズ。PRIVATEPOOL_MACHINE_TYPE
は、更新されたマシンタイプです。
API
プライベート プール構成ファイルで、ディスクサイズまたはマシンタイプを更新します。
cURL を使用して Cloud Build API を呼び出し、変数を適切な値に置き換えます。
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID \ -d @workerpool.json
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: プライベート プールの ID。PRIVATEPOOL_PROJECT_ID
: プライベート プールを含む Google Cloud プロジェクトの ID。REGION
: プライベート プールを作成したリージョン。
プライベート プールの詳細の表示
IAM 権限: このタスクを実行するには、Cloud Build WorkerPool 閲覧者のロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。
プライベート プールの詳細を表示するには次を実行します。
コンソール
Google Cloud Console で [ワーカープール] ページを開きます。
プライベート プールを作成したプロジェクトを選択します。
プライベート プール名をクリックします。
[プライベート プールの編集] サイドパネルが表示されます。パネルには、プライベート プールの詳細が表示されます。
gcloud
プライベート プールの ID がわからない場合は、次のコマンドを実行して、プライベート プールの詳細を一覧表示します。
gcloud builds worker-pools list --project=PRIVATEPOOL_PROJECT_ID
PRIVATEPOOL_PROJECT_ID
は、プライベート プールを含む Google Cloud プロジェクトの ID です。
出力は次のようになります。
NAME CREATE_TIME STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID] 2018-11-19T16:08:24+00:00 RUNNING
プライベート プールの ID がわかっている場合は、次のコマンドを実行して、プライベート プールの詳細を取得します。
gcloud builds worker-pools describe PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: プライベート プールの ID。REGION
: プライベート プールを作成したリージョン。PRIVATEPOOL_PROJECT_ID
: プライベート プールを含む Google Cloud プロジェクトの ID。
API
プライベート プールの ID がわからない場合は、次の cURL コマンドを実行して、プライベート プールの詳細を一覧表示します。ここで、PRIVATEPOOL_PROJECT_ID
はプライベート プールを含む Google Cloud プロジェクトの ID です。
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools
プライベート プールの ID がわかっている場合は、次の cURL コマンドを実行してプライベート プールの詳細を取得します。
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: プライベート プールの ID。PRIVATEPOOL_PROJECT_ID
: プライベート プールを含む Google Cloud プロジェクトの ID。REGION
: プライベート プールを作成したリージョン。
プライベート プールの削除
IAM 権限: このタスクを実行するには、Cloud Build WorkerPool オーナーのロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。
プライベート プールを削除するには:
コンソール
Google Cloud Console で [ワーカープール] ページを開きます。
プライベート プールの行で、ゴミ箱アイコンをクリックします。
gcloud
プライベート プールを削除するには、gcloud builds worker-pools
delete
コマンドを実行します。
gcloud builds worker-pools delete PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: プライベート プールの ID。PRIVATEPOOL_PROJECT_ID
: プライベート プールを含む Google Cloud プロジェクトの ID。REGION
: プライベート プールを作成したリージョン。
プライベート プールが削除されると、次のような出力が表示されます。
Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].
API
cURLを使用して Cloud Build API を呼び出します。
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
上記のコマンドのプレースホルダ値を次のように置き換えます。
PRIVATEPOOL_ID
: プライベート プールの ID。PRIVATEPOOL_PROJECT_ID
: プライベート プールを含む Google Cloud プロジェクトの ID。REGION
: プライベート プールを作成したリージョン。
次のステップ
- プライベート プールでビルドを実行する方法を確認する。
- プライベート プールで VPC Service Controls を使用する方法を確認する。