Esta página explica como associar um anfitrião do Bitbucket Data Center ao Cloud Build.
Antes de começar
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Ter o código fonte pronto num repositório do Bitbucket Data Center.
- Ter um
Dockerfile
ou um ficheiro de configuração do Cloud Build no repositório de origem do Bitbucket Data Center. - Se não tiver instalado uma instância do Bitbucket Data Center, consulte o artigo Instale o Bitbucket Data Center para obter instruções.
Para usar os comandos
gcloud
nesta página, instale a CLI do Google Cloud.
Crie uma associação a um anfitrião do Bitbucket Data Center
Consola
Para associar o anfitrião do Bitbucket Data Center ao Cloud Build através da Google Cloud consola:
Abra a página Repositórios na Google Cloud consola:
Na parte superior da página, selecione o separador 1.ª geração.
Clique em Associar anfitrião.
Selecione Bitbucket Data Center no menu pendente.
É apresentado o painel Associar anfitrião.
Introduza as seguintes informações para ligar a sua instância do Bitbucket Data Center ao Cloud Build:
Região: selecione a região para a sua associação.
Nome: introduza um nome para a ligação.
URL do anfitrião: o URL do anfitrião da sua instância do Bitbucket Data Center. Por exemplo,
https://bbs.example-test.com:7990
.Google Cloud Chave da API: introduza a chave da API usada para autenticar as suas credenciais.
Certificado da AC: o seu certificado autoassinado. O certificado não pode exceder 10 KB e deve estar no formato PEM (
.pem
,.cer
ou.crt
). Se deixar esta secção em branco, Google Cloud usa um certificado do conjunto de certificados predefinido.Nome de utilizador: o nome de utilizador da sua conta do Bitbucket Data Center. Esta conta deve ter acesso de administrador aos repositórios que quer associar ao Cloud Build.
Chave de acesso de leitura: introduza a chave de acesso pessoal da sua conta do Bitbucket Data Center com autorizações de leitura.
Chave de acesso de administrador: introduza a chave de acesso pessoal da sua conta do Bitbucket Data Center com autorizações de administrador em projetos e repositórios.
Em Tipo de rede, selecione uma das seguintes opções:
Internet pública: selecione esta opção se a sua instância for acessível através da Internet pública.
Rede privada: selecione esta opção se a sua instância estiver alojada numa rede privada.
Projeto: selecione o seu Google Cloud ID do projeto.
Rede: selecione a sua rede no menu pendente. Se não tiver criado uma rede, consulte o artigo Criar e gerir redes VPC para saber como criar uma rede.
Intervalo de IPs: introduza o intervalo de IPs interno que pode ser atribuído às VMs num intervalo alocado de uma rede em peering.
Pode especificar o intervalo através da notação de encaminhamento CIDR (Classless Inter-Domain Routing) no formato
STARTING_IP/SUBNET_PREFIX_SIZE
. Por exemplo,192.0.2.0/24
tem um comprimento do prefixo de 24. Os primeiros 24 bits do intervalo de IP são usados como máscara de sub-rede (192.0.2.0
), enquanto os possíveis endereços de anfitriões variam de192.0.2.0
a192.0.2.255
.O valor do comprimento do prefixo não pode exceder
/29
. Se não for especificado nenhum valor para o intervalo, é atribuído automaticamente um valor predefinido de/24
. Se não for especificado nenhum valor para o comprimento do prefixo, os endereços IP são atribuídos automaticamente na rede de VPC com peering. Se não for especificado nenhum valor para o endereço IP, é atribuído automaticamente um intervalo ao endereço IP na rede VPC com peering.
Clique em Associar anfitrião.
Se a sua instância do Bitbucket Data Center estiver numa rede com peering, a associação do seu anfitrião pode demorar vários minutos a ser concluída.
É feito o redirecionamento para o painel Associar repositório.
Depois de criar uma associação de anfitrião, os seus tokens de acesso pessoal e o segredo do webhook são armazenados de forma segura no Secret Manager. Pode ver e gerir os seus segredos na página Secret Manager.
gcloud
Para associar o anfitrião do Bitbucket Data Center ao Cloud Build através de comandos gcloud
, tem de executar o comando gcloud alpha builds enterprise-config bitbucketserver create
no seu terminal. Ao contrário da associação do anfitrião através da consolaGoogle Cloud , tem de armazenar manualmente os tokens de acesso pessoais e o segredo do webhook no Secret Manager antes de executar o seguinte comando:
gcloud alpha builds enterprise-config bitbucketserver create
--name=BITBUCKET_DATA_CENTER_CONFIG_NAME \
--user-name=USERNAME \
--host-uri=HOST_URI \
--admin-access-token-secret-version=ADMIN_ACCESS_TOKEN_SECRET_VERSION \
--read-access-token-secret-version=READ_ACCESS_TOKEN_SECRET_VERSION \
--webhook-secret-secret-version=WEBHOOK_SECRET_SECRET_VERSION \
--api-key=API_KEY \
--peered-network=PEERED_NETWORK \
--peered-network-ip-range=PEERED_NETWORK_IP_RANGE \
--ssl-ca-file=SSL_CA_FILE
Onde:
- BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da sua configuração do Bitbucket Data Center.
- USERNAME é o seu nome de utilizador do Bitbucket Data Center.
- HOST_URI é o URI do anfitrião da sua instância do Bitbucket Data Center.
- ADMIN_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso da sua chave de acesso de administrador armazenada no Gestor Secreto. O formato esperado para os segredos armazenados no Secret Manager é
projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}
. Pode especificarlatest
como a sua versão para usar a versão mais recente do seu segredo. Isto aplica-se a cada recurso armazenado no Secret Manager.
- READ_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso da sua chave de acesso de leitura armazenada no Gestor Secreto.
- WEBHOOK_SECRET_SECRET_VERSION é o nome do recurso do seu do seu segredo de webhook armazenado no Secret Manager.
- API_KEY é a Google Cloud chave da API.
Opcional: PEERED_NETWORK é a rede de VPC à qual se ligar para as suas instâncias do Bitbucket Data Center no local. Para saber mais, consulte o artigo Crie repositórios a partir do Bitbucket Data Center numa rede privada.
Opcional: PEERED_NETWORK_IP_RANGE é o intervalo de IP interno ao qual as VMs podem ser atribuídas no intervalo alocado de uma rede com peering.
SSL_CA_FILE é o caminho para um ficheiro local que contém o seu certificado SSL a usar para pedidos ao Bitbucket Data Center. O certificado deve estar no formato PEM.
API
Para ligar o anfitrião do Bitbucket Data Center ao Cloud Build através da API, use o seguinte modelo JSON. Ao contrário da associação do seu anfitrião através da consola, tem de armazenar manualmente os seus tokens de acesso pessoais e o segredo do webhook no Secret Manager antes de chamar a API: Google Cloud
{
"hostUri": "HOST_URI",
"username": "USERNAME",
"apiKey": "API_KEY",
"secrets": {
"adminAccessTokenVersionName": "ADMIN_ACCESS_TOKEN_SECRET_VERSION",
"readAccessTokenVersionName": "READ_ACCESS_TOKEN_SECRET_VERSION",
"webhookSecretVersionName": "WEBHOOK_SECRET_SECRET_VERSION",
},
"peeredNetwork": "PEERED_NETWORK",
"peeredNetworkIpRange": "PEERED_NETWORK_IP_RANGE",
"sslCa": "SSL_CERTIFICATE"
}
Onde:
- HOST_URI é o URI do anfitrião da sua instância do Bitbucket Data Center.
- USERNAME é o seu nome de utilizador do Bitbucket Data Center.
- API_KEY é a Google Cloud chave da API.
ADMIN_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso da sua chave de acesso de administrador armazenada no Gestor Secreto. Pode ter de conceder a função Secret Manager Secret Accessor ao agente de serviço do Cloud Build,
service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com
. Para saber mais, consulte o artigo Conceder a função Secret Manager à sua conta de serviço.READ_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso da sua chave de acesso de leitura armazenada no Gestor Secreto.
WEBHOOK_SECRET_SECRET_VERSION é o nome do recurso do seu segredo de webhook armazenado no Secret Manager.
Opcional: PEERED_NETWORK é a rede de VPC com a qual estabelecer uma relação de interligação para as suas instâncias do Bitbucket Data Center no local.
Pode especificar o intervalo através da notação de encaminhamento CIDR (Classless Inter-Domain Routing) no formato
STARTING_IP/SUBNET_PREFIX_SIZE
. Por exemplo,192.0.2.0/24
tem um comprimento do 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 anfitriões variam de192.0.2.0
a192.0.2.225
.Opcional: PEERED_NETWORK_IP_RANGE é o intervalo de IP interno ao qual as VMs podem ser atribuídas no intervalo alocado de uma rede com peering.
Opcional: SSL_CERTIFICATE é o certificado SSL usado para as suas instâncias do Bitbucket Data Center no local.
Introduza o seguinte comando curl
no terminal:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_DATA_CENTER_CONFIG_NAME -d @config.json
Onde:
- PROJECT_ID é o seu Google Cloud ID do projeto.
- REGION é a região associada à sua configuração do Bitbucket Data Center.
- BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da sua configuração do Bitbucket Data Center.
Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de Operation.
Introduza o seguinte comando curl
no terminal:
curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Onde:
- PROJECT_NUMBER é o número do seu Google Cloud projeto.
- PROJECT_ID é o ID do seu Google Cloud projeto.
- REGION é a região associada à sua configuração do Bitbucket Data Center.
- OPERATION_ID é o ID da operação de criação da configuração do Bitbucket Data Center.
Pode ter de continuar a executar o comando da API GetOperation até a resposta conter done: true
, o que indica que a operação está concluída. Se a configuração do Bitbucket Data Center for criada com êxito, pode vê-la no campo response.value
. Caso contrário, consulte o campo error
para ver um relatório de erros detalhado.
O que se segue?
- Saiba como associar um repositório do Bitbucket Data Center.
- Saiba como fazer implementações azul/verde no Compute Engine.