Nesta página, explicamos como conectar um host do Bitbucket Data Center ao Cloud Build.
Antes de começar
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Tenha o código-fonte pronto em um repositório do Bitbucket Data Center.
- Tenha um
Dockerfile
ou um arquivo de configuração do Cloud Build no seu repositório de origem do Bitbucket Data Center. - Se você não tiver instalado uma instância do Bitbucket Data Center, consulte Instalar o Bitbucket Data Center para ver instruções.
Para usar os comandos
gcloud
nesta página, instale a CLI do Google Cloud.
Conectar-se a um host do Bitbucket Data Center
Console
Para conectar o host do Bitbucket Data Center ao Cloud Build usando o console do Google Cloud:
Abra a página Repositórios no console do Google Cloud:
Na parte de cima da página, selecione a guia 1ª geração.
Clique em Conectar host.
Selecione Bitbucket Data Center no menu suspenso.
Você vai encontrar o painel Conectar host.
Insira as seguintes informações para conectar sua instância do Bitbucket Data Center ao Cloud Build:
Região: selecione a região da sua conexão.
Nome: insira um nome para a conexão.
URL do host: o URL do host da sua instância do Bitbucket Data Center. Por exemplo,
https://bbs.example-test.com:7990
.chave de APIGoogle Cloud : insira a chave de API usada para autenticar suas credenciais.
Certificado de AC: seu certificado autoassinado. Seu certificado não pode exceder 10 KB e deve estar no formato PEM (
.pem
,.cer
ou.crt
). Se você deixar esta seção em branco, Google Cloud usará um certificado do conjunto padrão de certificados.Nome de usuário: seu nome de usuário da conta do Bitbucket Data Center. Essa conta precisa ter acesso de administrador aos repositórios que você quer conectar ao Cloud Build.
Token de acesso de leitura: insira o token de acesso pessoal da sua conta do Bitbucket Data Center com permissões de leitura.
Token de acesso de administrador: insira o token de acesso pessoal da sua conta do Bitbucket Data Center com permissões de administrador em projetos e repositórios.
Em Tipo de rede, selecione uma das seguintes opções:
Internet pública: selecione essa opção se a instância for acessível usando a Internet pública.
Rede privada: selecione essa opção se a instância for hospedada em uma rede privada.
Project: selecione o ID do Google Cloud projeto.
Rede: selecione sua rede no menu suspenso. Se você não criou uma rede, consulte Criar e gerenciar redes VPC para saber como criar uma.
Intervalo de IP: insira o intervalo de IP interno que pode ser atribuído às VMs dentro do intervalo alocado de uma rede pareada.
É possível especificar o intervalo usando a notação de roteamento entre domínios sem classe (CIDR) no formato
STARTING_IP/SUBNET_PREFIX_SIZE
. Por exemplo,192.0.2.0/24
tem uma 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.0
a192.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/24
será 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 pareada. Se nenhum valor for especificado para o endereço IP, ele vai receber automaticamente um intervalo na rede VPC pareada.
Clique em Conectar host.
Se a instância do Bitbucket Data Center estiver em uma rede com peering, a conexão do host poderá levar vários minutos para ser concluída.
Você será redirecionado para o painel Conectar repositório.
Depois de criar uma conexão de host, seus tokens de acesso pessoal e o secret do webhook serão armazenados com segurança no Secret Manager. Você pode conferir e gerenciar seus segredos na página Secret Manager.
gcloud
Para conectar o host do Bitbucket Data Center ao Cloud Build
usando comandos gcloud
, execute o comando
gcloud alpha builds enterprise-config bitbucketserver create
no terminal. Ao contrário de conectar o host usando o console do Google Cloud, você vai precisar armazenar manualmente os tokens de acesso pessoais e o secret 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
Em que:
- BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do Bitbucket Data Center.
- USERNAME é seu nome de usuário do Bitbucket Data Center.
- HOST_URI é o URI do host da sua instância do Bitbucket Data Center.
- ADMIN_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso do token de acesso de administrador armazenado no Secret Manager. O
formato esperado para segredos armazenados no Secret Manager
é
projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}
. É possível especificarlatest
como a versão para usar a versão mais recente do secret. Isso se aplica a cada recurso armazenado no Gerenciador de secrets.
- READ_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso do seu token de acesso de leitura armazenado no Secret Manager.
- WEBHOOK_SECRET_SECRET_VERSION é o nome do recurso do secret do webhook armazenado no Secret Manager.
- API_KEY é a chave de API Google Cloud .
Opcional: PEERED_NETWORK é a rede VPC a que você vai se conectar para as instâncias do Bitbucket Data Center on-premises. Para saber mais, consulte Criar repositórios do Bitbucket Data Center em uma rede particular.
Opcional: PEERED_NETWORK_IP_RANGE é o intervalo de IP interno que pode ser atribuído a VMs dentro do intervalo alocado de uma rede pareada.
SSL_CA_FILE é o caminho para um arquivo local que contém seu certificado SSL a ser usado para solicitações ao Bitbucket Data Center. O certificado precisa estar no formato PEM.
API
Para conectar o host do Bitbucket Data Center ao Cloud Build usando a API, use o seguinte modelo JSON. Ao contrário de conectar seu host usando o console do Google Cloud, é necessário armazenar manualmente seus tokens de acesso pessoais e o secret do webhook no Secret Manager antes de chamar a API:
{
"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"
}
Em que:
- HOST_URI é o URI do host da sua instância do Bitbucket Data Center.
- USERNAME é seu nome de usuário do Bitbucket Data Center.
- API_KEY é a chave de API Google Cloud .
ADMIN_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso do token de acesso de administrador armazenado no Secret Manager. Talvez seja necessário conceder o papel de Acessador do secret do Secret Manager ao agente de serviço do Cloud Build,
service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com
. Para saber mais, consulte Como conceder o papel de Secret Manager à sua conta de serviço.READ_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso do token de acesso de leitura armazenado no Secret Manager.
WEBHOOK_SECRET_SECRET_VERSION é o nome do recurso do secret do webhook armazenado no Secret Manager.
Opcional: PEERED_NETWORK é a rede VPC a ser usada para as instâncias do Bitbucket Data Center no local.
É possível especificar o intervalo usando a notação de roteamento entre domínios sem classe (CIDR) no formato
STARTING_IP/SUBNET_PREFIX_SIZE
. Por exemplo,192.0.2.0/24
tem uma 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.0
a192.0.2.225
.Opcional: PEERED_NETWORK_IP_RANGE é o intervalo de IP interno que pode ser atribuído a VMs dentro do intervalo alocado de uma rede pareada.
Opcional: SSL_CERTIFICATE é o certificado SSL usado para as instâncias do Bitbucket Data Center no local.
Digite o comando curl
a seguir 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
Em que:
- PROJECT_ID é o Google Cloud ID do projeto.
- REGION é a região associada à configuração do Bitbucket Data Center.
- BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do Bitbucket Data Center.
Se a solicitação for bem-sucedida, o corpo da resposta incluirá uma instância de Operation.
Digite o comando curl
a seguir 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
Em que:
- PROJECT_NUMBER é o número do Google Cloud projeto.
- PROJECT_ID é o ID do Google Cloud projeto.
- REGION é a região associada à configuração do Bitbucket Data Center.
- OPERATION_ID é o ID da operação de criação de configuração do Bitbucket Data Center.
Talvez seja necessário continuar executando o comando da API GetOperation até que a resposta contenha done: true
, o que indica que a operação foi concluída. Se a configuração do Bitbucket Data Center for criada, ela vai aparecer no campo response.value
. Caso contrário, consulte o campo error
para conferir um relatório de erro detalhado.
A seguir
- Saiba como conectar um repositório do Bitbucket Data Center.
- Saiba como realizar implantações azul-verde no Compute Engine.