Crie uma associação a um anfitrião do Bitbucket Data Center

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.

    Enable the 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:

  1. Abra a página Repositórios na Google Cloud consola:

    Abra a página Repositórios

  2. Na parte superior da página, selecione o separador 1.ª geração.

  3. Clique em Associar anfitrião.

  4. 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:

    1. Região: selecione a região para a sua associação.

    2. Nome: introduza um nome para a ligação.

    3. 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.

    4. Google Cloud Chave da API: introduza a chave da API usada para autenticar as suas credenciais.

    5. 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.

    6. 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.

    7. Chave de acesso de leitura: introduza a chave de acesso pessoal da sua conta do Bitbucket Data Center com autorizações de leitura.

    8. 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.

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

      1. Internet pública: selecione esta opção se a sua instância for acessível através da Internet pública.

      2. Rede privada: selecione esta opção se a sua instância estiver alojada numa rede privada.

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

        2. 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.

        3. 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 de 192.0.2.0 a 192.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.

  5. 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 especificar latest 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 de 192.0.2.0 a 192.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?