Conecte-se a um host de data center do Bitbucket

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.

    Enable the 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 instalou uma instância do data center do Bitbucket, consulte Instale o data center do Bitbucket para ver as instruções.
  • Para usar os comandos do gcloud nesta página, instale a Google Cloud CLI.

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:

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

    Abrir a página Repositórios

  2. Na parte de cima da página, selecione a guia 1a geração.

  3. Clique em Conectar host.

  4. Selecione Bitbucket Data Center no menu suspenso.

    Você verá o painel Conectar host.

    Insira as informações a seguir para conectar seu Bitbucket Instância do data center para o Cloud Build:

    1. Região: selecione a região da sua conexão.

    2. Nome: insira um nome para a conexão.

    3. URL do host: o URL do host da sua instância do Bitbucket Data Center. Por exemplo, https://bbs.example-test.com:7990.

    4. Google Cloud API key: insira a chave de API usada para autenticar sua credenciais.

    5. 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, o Google Cloud vai usar um certificado do conjunto padrão de certificados.

    6. Nome de usuário: seu nome de usuário da conta do data center do Bitbucket. Essa conta precisa ter acesso de administrador aos repositórios que você quer conectar ao Cloud Build.

    7. Token de acesso de leitura: insira o endereço pessoal da conta do data center do Bitbucket token de acesso com permissões de leitura.

    8. Token de acesso de administrador: insira sua conta do data center do Bitbucket. token de acesso pessoal com permissões de administrador em projetos e repositórios.

    9. Em Tipo de rede, selecione uma das seguintes opções:

      1. Internet pública: selecione esta opção se a instância for acessíveis pela Internet pública.

      2. Rede privada: selecione essa opção se a instância for hospedada em uma rede privada.

        1. Projeto: selecione o ID do projeto do Google Cloud.

        2. Rede: selecione sua rede no menu suspenso. Se você não tiver criado uma rede, consulte Criar e gerenciar redes VPC redes para saber como criar uma rede.

        3. Intervalo de IP: insira o intervalo de IP interno que pode ser atribuído às VMs em um intervalo alocado em uma rede com peering.

          É 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 máscara de sub-rede (192.0.2.0), enquanto os possíveis endereços de host variam de 192.0.2.0 a 192.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 com peering. Se nenhum valor for especificado para o endereço IP, ele será atribuído automaticamente a um intervalo na rede VPC pareada.

  5. Clique em Conectar host.

    Se a instância do data center do Bitbucket estiver em uma rede com peering, conecte o host pode levar vários minutos para concluir.

    Você será redirecionado para o painel Conectar repositório.

    Depois de criar uma conexão de host, seus tokens de acesso pessoais e o secret do webhook será armazenado com segurança no Secret Manager. É possível consultar e gerenciar os secrets no Secret Manager página.

gcloud

Para conectar o host do data center do Bitbucket ao Cloud Build usando os comandos gcloud, execute o gcloud alpha builds enterprise-config bitbucketserver create no seu terminal. Diferentemente de conectar seu host usando o console do Google Cloud, você vai precisar armazenar manualmente de acesso a tokens de acesso 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 do Configuração do data center do Bitbucket.
  • USERNAME é seu nome de usuário do data center do Bitbucket.
  • HOST_URI é o URI do host da sua instância do Bitbucket Data Center.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso da 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}. É possível especificar latest como a versão para usar a versão mais recente do secret. Isso se aplica a cada recurso armazenado com o Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION é o nome do recurso da token de acesso somente leitura armazenado no Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION é o nome do recurso da do secret do webhook armazenado no Secret Manager.
  • API_KEY é a chave da 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 no Data Center do Bitbucket em uma rede particular.

  • Opcional: PEERED_NETWORK_IP_RANGE é o IP interno. em que as VMs podem ser atribuídas dentro de um intervalo alocado em uma rede com peering.

  • SSL_CA_FILE é o caminho para um arquivo local que contém seu certificado SSL a ser usado nas solicitações ao data center do Bitbucket. 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 sua host usando o console do Google Cloud, você precisa armazenar manualmente acessar tokens de acesso 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 instância do data center do Bitbucket.
  • 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 da 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 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 do secret do webhook armazenado no Secret Manager.

  • Opcional: PEERED_NETWORK é a VPC. rede para fazer peering das instâncias do data center do Bitbucket no local.

    É possível especificar o intervalo usando a notação de roteamento 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 máscara de sub-rede (192.0.2.0), enquanto os possíveis endereços de host de 192.0.2.0 a 192.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 data center do Bitbucket no local.

Digite 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

Em que:

  • PROJECT_ID é o ID do projeto do Google Cloud.
  • 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 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/REGION/operations/OPERATION_ID

Em que:

  • PROJECT_NUMBER é o número do projeto do Google Cloud.
  • PROJECT_ID é o ID do projeto no Google Cloud.
  • REGION é a região associada à configuração do data center do Bitbucket.
  • OPERATION_ID é o ID da operação de criação da configuração do data center do Bitbucket.

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 data center do Bitbucket foi criada com sucesso, é possível vê-la no campo response.value. Caso contrário, consulte o campo error para conferir um relatório de erro detalhado.

A seguir