Este documento explica como executar compilações em pools privados. Se não conhece as pools privadas, leia a vista geral das pools privadas.
Antes de começar
Certifique-se de que criou um conjunto privado através dos passos descritos no artigo Criar e gerir conjuntos privados.
Para usar os exemplos de linhas de comando neste guia, instale e configure a CLI Google Cloud.
Pode usar o mesmo Google Cloud projeto para criar o seu conjunto privado e as compilações do Cloud Build ou usar projetos diferentes. Se as suas compilações estiverem num projeto diferente do seu conjunto privado, defina o projeto predefinido na CLI gcloud para o projeto onde as suas compilações têm origem:
gcloud config set project BUILD_ORIGIN_PROJECT_ID
Autorizações de IAM
Para executar compilações através da CLI gcloud ou da API Cloud Build, conceda a função de utilizador do WorkerPool no projeto do pool privado ao utilizador ou à conta de serviço que pede a compilação.
Para executar compilações automatizadas através de acionadores:
- Se o projeto no qual está a iniciar a compilação for o mesmo que o projeto no qual existe o seu conjunto privado, não precisa de conceder autorizações.
Se o projeto no qual está a iniciar a compilação for diferente do projeto no qual existe o seu conjunto privado, conceda a função Utilizador do WorkerPool à conta de serviço que está a usar com o seu acionador no projeto do workerpool onde as suas compilações são criadas:
Consola
Abra a página IAM na Google Cloud consola.
No menu pendente do seletor de projetos na parte superior da página, selecione o projeto que contém o seu conjunto privado.
Clique em Conceder acesso.
Introduza as seguintes definições de principal e função:
Adicione membros: introduza o endereço de email da conta de serviço que está a usar com o seu acionador.
Atribua funções: selecione a função Utilizador do WorkerPool do Cloud Build.
Clique em Guardar para guardar as novas autorizações do IAM.
gcloud
Para adicionar a conta de serviço de compilação do projeto de acionador ao projeto do workerpool com a função cloudbuild.workerPoolUser:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT \ --role=roles/cloudbuild.workerPoolUser
Substitua os valores dos marcadores de posição no comando acima pelo seguinte:
PRIVATEPOOL_PROJECT_ID
é o ID do projeto com o pool privado que executa a compilação.SERVICE_ACCOUNT
é o email da conta de serviço que está a usar com o acionador que executa a compilação.
Executar compilações
Pode enviar compilações a partir do mesmo Google Cloud projeto onde criou o conjunto privado ou a partir de um Google Cloud projeto diferente. Pode especificar o conjunto privado no ficheiro de configuração de compilação ou diretamente no comando gcloud
:
Especificar o conjunto privado no ficheiro de configuração de compilação:
No ficheiro de configuração do Cloud Build, adicione uma opção
pool
e especifique o nome completo do recurso do pool privado para executar a compilação: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" } } }
Substitua os valores dos marcadores de posição no ficheiro de configuração acima pelo seguinte:
PRIVATEPOOL_PROJECT_ID
: o projeto onde se encontra o seu conjunto privado. Google CloudREGION
: a região onde criou o seu grupo privado.PRIVATEPOOL_ID
: o ID exclusivo da pool privada que especificou quando criou a pool privada.
Use o ficheiro de configuração de compilação criado acima para executar a compilação através de
gcloud
ou da API ou usando acionadores. Se a sua instância estiver alojada no local, o Cloud Build também oferece suporte para a funcionalidade de acionadores para vários sistemas externos de gestão de código fonte, como o GitHub Enterprise ou o Bitbucket Server.
Especificar o pool privado no comando gcloud:
Pode especificar o conjunto privado no comando gcloud
em vez de no ficheiro de configuração de compilação. Por exemplo, considere que tem o seguinte ficheiro de configuração de compilação:
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!"
]
}
],
}
O comando seguinte cria usando o ficheiro de configuração de compilação e especifica o conjunto de trabalhadores no comando:
gcloud builds submit --config=CONFIG_FILE
--worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
Substitua os valores dos marcadores de posição nos comandos acima pelo seguinte:
CONFIG_FILE
: caminho para o ficheiro de configuração de compilação.PRIVATEPOOL_ID
: o ID exclusivo da pool privada que especificou quando criou a pool privada.PRIVATEPOOL_PROJECT_ID
: o projeto onde se encontra o seu conjunto privado. Google CloudREGION
: a região onde criou a sua pool privada.
O que se segue?
- Saiba como criar e gerir pools privados.
- Saiba como usar os VPC Service Controls com pools privados.
- Saiba como criar e gerir acionadores de compilação.
- Saiba como criar repositórios a partir do GitHub Enterprise.
- Saiba como criar repositórios a partir do Bitbucket Server.