Nesta página, descrevemos como criar, atualizar, visualizar e excluir pools particulares do Cloud Build. Se você não conhece os pools privados, leia a Visão geral dos pools privados.
Antes de começar
Crie um novo projeto do Google Cloud ou escolha um atual. Você usará esse projeto para criar o pool privado.
-
Ative a API Cloud Build, se ela ainda não estiver ativada.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis. Para usar os exemplos de linha de comando neste guia, instale e configure a Google Cloud CLI.
Opcional: para que os builds acessem recursos particulares da sua rede de nuvem privada virtual, configure uma conexão de peering entre sua rede de nuvem privada virtual e a rede de nuvem privada virtual em que os pools particulares residem. Para mais instruções, consulte Configurar o ambiente para criar pools particulares.
Opcional: conheça as configurações de tipo de máquina e a disponibilidade regional. Para mais informações, consulte
workerconfigna documentação do esquema do arquivo de configuração do pool particular.
Criar um pool particular
Para garantir que tenha as permissões
necessárias para criar um pool particular,
peça ao administrador para conceder o papel do IAM de
Proprietário do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolOwner) a na sua conta de serviço.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Seu administrador também pode conceder as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
É possível criar até 10 pools particulares por projeto do Google Cloud em cada região. Para criar um pool particular, faça o seguinte:
Console do Google Cloud
Abra a página Pool de worker no console Google Cloud :
Clique em Criar pool particular.
A página Criar pool particular é exibida.
Insira as seguintes informações para criar seu pool particular:
Nome: insira um nome para o pool particular. Esse valor só pode conter caracteres alfanuméricos
/[a-z][0-9]/ou traços-. O nome do pool particular precisa ter entre 1 e 63 caracteres.Região: selecione a região em que você quer criar o pool privado.
Configuração da máquina: configure o seguinte:
Série: escolha uma série de máquinas.
Tipo de máquina: essa configuração mostra os tipos de máquina, com base na série selecionada, que o pool de trabalhadores pode usar. Os tipos de máquina disponíveis variam de acordo com a região.
Tamanho do disco: insira um tamanho para seu pool particular. Especifique um valor maior ou igual a 100 e menor ou igual a 4.000. Se você não fornecer um valor, o Cloud Build usará um tamanho de disco de 100.
Virtualização aninhada: se você selecionou uma máquina da série C3, é possível ativar a virtualização aninhada. Com esse recurso, é possível executar instâncias de máquina virtual (VM) dentro de outras VMs para criar seus próprios ambientes de virtualização.
Em Versão do worker, selecione Canal de lançamento e um dos seguintes canais:
regular(padrão)stablerapid
Ou selecione Lançamento e escolha o número da versão de lançamento que você quer usar.
Consulte Canais de lançamento do Cloud Build para uma descrição de cada canal de lançamento e o que significa selecionar um número de versão específico.
Em Tipo de rede, selecione uma das seguintes opções:
Rede padrão: selecione essa opção se a instância estiver acessível pela Internet pública. Quando a opção Rede padrão está selecionada, seu pool particular usa a rede de produtores de serviços. Para mais informações, consulte Configurar o ambiente para usar pools particulares em uma rede VPC.
Rede particular: selecione essa opção se a instância estiver hospedada em uma rede particular e faça o seguinte:
Projeto: selecione o ID do projeto Google Cloud .
Rede: selecione sua rede no menu suspenso. Se você não tiver criado uma rede, consulte Criar e gerenciar redes VPC para saber como criar uma.
Intervalo de IP: insira o intervalo de IP interno que a rede do produtor do Cloud Build pode usar para alocar às VMs, mantendo uma conexão com repositórios particulares.
É possível especificar o intervalo usando a notação de roteamento entre domínios sem classe (CIDR) no formato
STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE. Por exemplo,192.0.2.0/24tem um comprimento de prefixo de 24. Os primeiros 24 bits do intervalo de IP são usados como a máscara de sub-rede (192.0.2.0), enquanto os possíveis endereços de hosts variam de192.0.2.0a192.0.2.255.O valor do comprimento do prefixo não pode exceder
/29. Se nenhum valor for especificado para o intervalo, um valor padrão de/24será atribuído automaticamente. Se nenhum valor for especificado para o tamanho do prefixo, os endereços IP serão atribuídos automaticamente na rede VPC em peering. Se nenhum valor for especificado para o endereço IP, ele será automaticamente atribuído a um intervalo na rede VPC pareada.
Atribuir IPs externos: essa opção é selecionada por padrão para permitir que pools particulares acessem a Internet pública. Desmarque essa caixa para restringir o acesso à sua rede privada.
Clique em Criar para criar seu pool particular.
gcloud
Você tem duas opções para criar um novo pool particular usando gcloud: é possível passar no arquivo de configuração do pool particular para o comando gcloud ou passar as opções de configuração diretamente para o gcloud.
Transmita o arquivo de configuração do pool particular para o comando gcloud:
Crie o arquivo de configuração do pool particular no formato YAML ou JSON.
Execute o seguinte comando
gcloud, em quePRIVATEPOOL_IDé um identificador exclusivo para seu pool particular,PRIVATEPOOL_CONFIG_FILEé o nome do arquivo de configuração do pool particular eREGIONé o região em que você quer criar o pool particular:gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGIONO resultado será semelhante a este:
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
Transmita as opções de configuração diretamente para o comando gcloud:
Execute o seguinte comando 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 \
--worker-release=CHANNEL_OR_VERSION
Em que:
PRIVATEPOOL_ID: um identificador exclusivo para seu pool particular. Esse valor precisa ter de 1 a 63 caracteres, e os caracteres válidos são[a-zA-Z0-9_-]+.PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto em que você quer criar o pool particular.REGION: uma das regiões compatíveis.PEERED_NETWORK: o URL do recurso da rede que está em peering com a rede do produtor de serviços.PEERED_NETWORKprecisa ter o formatoprojects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME, em queNETWORK_PROJECT_IDé o ID do projeto do projeto Google Cloud que contém sua rede VPC eNETWORK_NAMEé o nome da sua rede VPC. Se você não especificar um valor, o Cloud Build usará a rede do provedor de serviços.PRIVATEPOOL_DISK_SIZE_GB: o tamanho do disco anexado ao pool particular. Especifique um valor maior ou igual a 100 e menor ou igual a 4.000. Se não for fornecido, o Cloud Build usará um tamanho de disco de 100.--worker-disk-sizeserá modificado se você especificar um tamanho de disco diferente usando--disk-sizedurantegcloud builds submit.PRIVATEPOOL_MACHINE_TYPE: o tipo de máquina do worker. Se deixado em branco, o Cloud Build usará o valor padrão dee2-standard-2. Para uma lista de tipos de máquina compatíveis, consulte Esquema de arquivo de configuração do pool particular.--worker-machine-type: será modificado se você especificar um tipo de máquina diferente usando--machine-typedurantegcloud builds submit.--no-public-egress: se essa sinalização for definida, o pool privado será criado sem um endereço IP externo. Defina essa sinalização se estiver criando o pool particular em um perímetro do VPC Service Controls.CHANNEL_OR_VERSION: o canal de lançamento ou a versão do pool particular. Para mais informações, consulte Canais de lançamento do Cloud Build.
API
Crie o arquivo de configuração do pool particular chamado
workerpool.json.Use cURL para chamar a API Cloud Build:
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.jsonEm que:
PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto em que você quer criar o pool particular.PRIVATEPOOL_ID: o ID do pool particular. Esse valor precisa ter de 1 a 63 caracteres, e os caracteres válidos são[a-zA-Z0-9_-]+.REGION: uma das regiões compatíveis para criar seu pool particular.
Criar um pool particular em um perímetro do VPC Service Controls
Para criar um pool particular com um perímetro do VPC Service Controls, consulte Como usar o VPC Service Controls.
Atualizar um pool particular
Para garantir que tenha as permissões
necessárias para criar um pool particular,
peça ao administrador para conceder o papel do IAM de
Editor do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolEditor) a na sua conta de serviço.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Seu administrador também pode conceder as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Para atualizar a configuração de um pool particular, faça o seguinte:
Console
Abra a página Pool de worker no console Google Cloud :
Selecione o projeto em que você criou o pool particular.
Clique no nome do pool particular.
Na página Editar pool particular, atualize o tipo de máquina, o tamanho do disco e outras configurações conforme necessário.
Clique em Salvar.
gcloud
Como atualizar o arquivo de configuração do pool particular:
Atualize o campo que você quer mudar no arquivo de configuração do pool particular.
Execute o seguinte comando, em que
PRIVATEPOOL_IDé o identificador exclusivo do seu pool particular,REGIONé a região em que o pool particular está localizado ePRIVATEPOOL_CONFIG_FILEé o nome do arquivo de configuração do pool particular:gcloud builds worker-pools update PRIVATEPOOL_ID \ --region=REGION \ --config-from-file=PRIVATEPOOL_CONFIG_FILE
Passe o valor para atualizar diretamente para o comando 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
--worker-release=CHANNEL_OR_VERSION
Em que:
PRIVATEPOOL_ID: o ID do pool particular atual; Não é possível atualizar esse valor; é preciso especificar um código de pool particular existente.REGION: a região em que você criou o pool particular.PRIVATEPOOL_DISK_SIZE: o tamanho do disco atualizado.PRIVATEPOOL_MACHINE_TYPEé o tipo de máquina atualizado.CHANNEL_OR_VERSION: é o canal de lançamento ou a versão. Se não for especificado, o valor padrão serástable.
API
No arquivo de configuração do pool particular, atualize o tamanho do disco e o tipo de máquina conforme necessário.
Use cURL para chamar a API Cloud Build, com a substituição das variáveis pelos valores adequados:
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.jsonEm que:
PRIVATEPOOL_ID: o ID do pool particular.PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto que contém seu pool particular.REGION: a região em que você criou o pool particular.
Ver os detalhes do pool privado
Para garantir que tenha as permissões
necessárias para criar um pool particular,
peça ao administrador para conceder o papel do IAM de
Leitor do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolViewer) a na sua conta de serviço.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Seu administrador também pode conceder as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Para ver os detalhes de um pool particular, siga estas etapas:
Console
Abra a página Pool de worker no console Google Cloud :
Selecione o projeto em que você criou o pool particular
Clique no nome do pool particular.
A página Editar pool privado é exibida.
gcloud
Se você não souber o ID do pool particular, execute o seguinte comando para listar os detalhes do pool particular:
gcloud builds worker-pools list --region=REGION --project=PRIVATEPOOL_PROJECT_ID
Em que:
PRIVATEPOOL_PROJECT_IDé o ID do projetoGoogle Cloud que contém o pool particular.REGIONé a região do pool particular.
O resultado será semelhante a este:
NAME CREATE_TIME STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID] 2018-11-19T16:08:24+00:00 RUNNING
Se você souber o ID do pool privado, execute o seguinte comando para mais informações sobre ele:
gcloud builds worker-pools describe PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
Onde
PRIVATEPOOL_ID: o ID do pool particular.REGION: a região em que você criou o pool particular.PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto que contém seu pool particular.
API
Se você não souber o ID do pool privado, execute o seguinte comando cURL para listar os detalhes do pool privado, em que PRIVATEPOOL_PROJECT_ID é o ID do projeto Google Cloud que contém o pool privado:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools
Se você souber o ID do pool privado, execute o seguinte comando curl para ver os detalhes do pool:
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
Onde
PRIVATEPOOL_ID: o ID do pool particular.PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto que contém seu pool particular.REGION: a região em que você criou o pool particular.
Conferir estimativas de preço de pools particulares
Ao criar ou atualizar um pool particular, a barra lateral Estimativa mensal nas páginas Criar pool particular e Editar pool particular mostra uma estimativa de quanto custará a execução do pool por mês. O cálculo é baseado nos seguintes fatores:
- Número de CPUs virtuais
- Tipo de máquina
- Memória
- Minutos de build
- Região, somente para máquinas N2D e C3
O preço estimado não inclui custos por tamanho de disco extra além dos 100 GB incluídos por padrão. O preço estimado pode ser diferente do preço final, dependendo da configuração final do build, dos minutos de build reais usados e de outros fatores. Para mais informações, consulte Preços do Cloud Build.
Excluir um pool particular
Para garantir que tenha as permissões
necessárias para criar um pool particular,
peça ao administrador para conceder o papel do IAM de
Proprietário do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolOwner) a na sua conta de serviço.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Seu administrador também pode conceder as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Para excluir um pool particular, faça o seguinte:
Console
Abra a página Pool de worker no console Google Cloud :
Na linha do seu pool particular, clique no ícone da lixeira.
gcloud
Para excluir um pool particular, execute o comando gcloud builds worker-pools
delete:
gcloud builds worker-pools delete PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
Em que:
PRIVATEPOOL_ID: o ID do pool particular.PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto que contém seu pool particular.REGION: a região em que você criou o pool particular.
Depois que o pool privado for excluído, você verá uma saída semelhante a esta:
Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].
API
Use cURL para chamar a API Cloud Build:
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
Em que:
PRIVATEPOOL_ID: o ID do pool particular.PRIVATEPOOL_PROJECT_ID: o ID do Google Cloud projeto que contém seu pool particular.REGION: a região em que você criou o pool particular.
A seguir
- Saiba como executar builds em pools particulares.
- Saiba como usar o VPC Service Controls com pools privados.