Conectar-se ao host do data center do Bitbucket

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, explicamos como se conectar a um host do Data center do Bitbucket para o Cloud Build.

Antes de começar

  • Ative as APIs Cloud Build, Secret Manager, and Compute Engine.

    Ative as APIs

Configuração

Antes de conectar seu host do Data Center do Bitbucket, consiga uma chave de API para autenticar e aceitar eventos recebidos do Bitbucket Data Center. Além disso, é necessário conceder permissões do IAM no seu projeto do Google Cloud para criar tokens de acesso pessoal no Data Center do Bitbucket a fim de criar webhooks e recuperar dados do repositório.

Como conseguir uma chave de API

Para conectar seus repositórios de host e autenticar os eventos de webhook de entrada, você precisa de uma chave de API.

Para gerar uma chave de API:

  1. Abra a página Credenciais no Console do Google Cloud:

    Abra a página Credenciais

  2. Clique em Criar credenciais.

  3. Clique em Chave de API.

    Você vai ver uma caixa de diálogo com a chave de API criada. Anote a sua chave de API.

  4. Se quiser restringir a chave para aplicativos de produto, clique em Restringir chave para concluir as etapas adicionais para protegê-la. Caso contrário, clique em Fechar.

    Para saber como restringir sua chave, consulte Como aplicar restrições de chave de API.

Como criar tokens de acesso pessoal

É necessário criar dois tokens de acesso pessoais no Data Center do Bitbucket para realizar as seguintes tarefas:

Esses tokens de acesso pessoal são as permissões mínimas necessárias. É possível configurar permissões adicionais no Data center do Bitbucket conforme necessário. Por exemplo, você pode selecionar Conta do Data Center do Bitbucket para ter acesso somente a um subconjunto de repositórios na instância do Data Center do Bitbucket para permitir um controle mais preciso sobre o que está disponível no Cloud Build.

Depois de criar seus tokens de acesso pessoal, salve os valores do token de modo seguro para se conectar ao repositório do Bitbucket Data Center.

Como se conectar a um host do data center do Bitbucket

Console

Para conectar seu host do Data Center do Bitbucket ao Cloud Build usando o console do Google Cloud:

  1. Abra a página Gerenciar repositórios no console do Google Cloud:

    Abrir a página "Gerenciar repositórios"

  2. Clique em Conectar host.

    Você verá o painel Conectar host.

    Digite as seguintes informações para conectar a instância do Data Center do Bitbucket ao Cloud Build:

    • URL do host: o URL do host da sua instância do Data Center do Bitbucket. Por exemplo, https://bbs.example-test.com:7990.
    • Chave de API do Google Cloud: chave de API usada para autenticar suas credenciais.
    • Certificado de CA: o certificado autoassinado. O certificado não pode exceder 10 KB e precisa estar no formato PEM (.pem, .cer ou .crt). Se esta seção for deixada em branco, um conjunto padrão de certificados será usado.
    • Nome de usuário: o nome de usuário da sua 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: o token de acesso pessoal da sua conta do Bitbucket Data Center com permissões de leitura.
    • Token de acesso de administrador: o token de acesso pessoal da conta do Bitbucket Data Center com permissões de administrador em projetos e repositórios.
    • [OPCIONAL] Projeto de rede: o ID do projeto de rede para a rede no local.
    • [OPCIONAL] Nome da rede: o nome da sua rede local.
  3. 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.

    Você será redirecionado ao painel Conectar repositório.

    Depois de criar uma conexão de host, seus tokens de acesso pessoal e a chave secreta do webhook serão armazenados em segurança no Secret Manager. É possível ver e gerenciar seus secrets na página Secret Manager.

gcloud

Para conectar seu host do Bitbucket Data Center ao Cloud Build usando comandos gcloud, execute o comando gcloud alpha builds enterprise-config bitbucketserver create no seu terminal. Ao contrário do que acontece ao conectar seu host usando o console do Google Cloud, você precisará armazenar manualmente seus tokens de acesso pessoais e a chave secreta 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 \
--ssl-ca-file=SSL_CA_FILE

Em que:

  • BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do seu data center do Bitbucket.
  • 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 secrets armazenados no Secret Manager é projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Especifique latest como a versão para usar a versão mais recente do secret. Isso se aplica a cada recurso armazenado no Secret Manager.
  • 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 da chave secreta do webhook armazenada no Secret Manager.
  • API_KEY é a chave de API do Google Cloud.
  • [Opcional] PEERED_NETWORK é a rede VPC a que as instâncias do Bitbucket Data Center vão ser conectadas no local.
  • 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 seu host do Data Center do Bitbucket ao Cloud Build usando a API, use o seguinte modelo JSON. Ao contrário de conectar seu host usando o console do Google Cloud, você precisa armazenar manualmente seus tokens de acesso pessoais e a chave secreta 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,
      "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 do 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 Secret Manager à sua conta de serviço do Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Para saber mais, consulte Como conceder o papel Secret Manager à 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 da chave secreta do webhook armazenada no Secret Manager.

  • [Opcional] PEERED_NETWORK é a rede VPC a que as instâncias do Bitbucket Data Center vão ser conectadas no local.

  • [Opcional] SSL_CERTIFICATE é o certificado SSL usado para suas instâncias do Bitbucket nos data centers no local.

Digite o seguinte comando curl no seu 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/global/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_DATA_CENTER_CONFIG_NAME -d @config.json

Em que:

  • PROJECT_ID é seu ID do projeto do Cloud.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do data center do Bitbucket.

Se a solicitação for concluída, o corpo da resposta incluirá uma instância de Operation.

Digite o seguinte comando curl no seu 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/global/operations/OPERATION_ID

Em que:

  • PROJECT_NUMBER é o número do projeto do Cloud.
  • PROJECT_ID é seu ID do projeto do Cloud.
  • OPERATION_ID é o ID da operação de criação da configuração do Bitbucket para o data center.

Pode ser 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 tiver sido criada corretamente, será possível vê-la no campo response.value. Caso contrário, consulte o campo error para ver um relatório detalhado de erros.

A seguir