Connetti a un host Bitbucket Data Center

Questa pagina spiega come connettere un host di data center Bitbucket a Cloud Build.

Prima di iniziare

  • Abilita le API Cloud Build, Secret Manager, and Compute Engine.

    Abilita le API

  • Tieni a portata di mano il codice sorgente in un repository Bitbucket Data Center.
  • Avere un Dockerfile o un file di configurazione di Cloud Build nel repository di origine di Bitbucket Data Center.
  • Se non hai installato un'istanza di Bitbucket Data Center, consulta Installare Bitbucket Data Center per le istruzioni.
  • Per utilizzare i comandi gcloud in questa pagina, installa Google Cloud CLI.

Connetti a un host Bitbucket Data Center

Console

Per connettere l'host Bitbucket Data Center a Cloud Build utilizzando la console Google Cloud:

  1. Apri la pagina Repositories nella console Google Cloud:

    Apri la pagina Repository

  2. Nella parte superiore della pagina, seleziona la scheda 1a generazione.

  3. Fai clic su Connect Host (Connetti host).

  4. Seleziona Bitbucket Data Center dal menu a discesa.

    Verrà visualizzato il riquadro Connetti l'host.

    Inserisci le informazioni seguenti per connettere la tua istanza di Data Center Bitbucket a Cloud Build:

    1. Regione: seleziona la regione per la connessione.

    2. Nome: inserisci un nome per la connessione.

    3. URL host: l'URL host dell'istanza Bitbucket Data Center. Ad esempio, https://bbs.example-test.com:7990.

    4. Chiave API Google Cloud: inserisci la chiave API utilizzata per autenticare le tue credenziali.

    5. Certificato CA: il tuo certificato autofirmato. Il certificato non deve superare i 10 kB e deve essere in formato PEM (.pem, .cer o .crt). Se lasci vuota questa sezione, Google Cloud utilizza un certificato incluso nell'insieme di certificati predefinito.

    6. Nome utente: il nome utente del tuo account Bitbucket Data Center. Questo account deve disporre dell'accesso amministrativo ai repository che vuoi connettere a Cloud Build.

    7. Token di accesso in lettura: inserisci il token di accesso personale dell'account Bitbucket Data Center con autorizzazioni di lettura.

    8. Token di accesso amministrativo: inserisci il token di accesso personale dell'account Bitbucket Data Center con le autorizzazioni di amministratore su progetti e repository.

    9. In Tipo di rete, seleziona una delle seguenti opzioni:

      1. Internet pubblica: seleziona questa opzione se l'istanza è accessibile tramite la rete internet pubblica.

      2. Rete privata: seleziona questa opzione se l'istanza è ospitata su una rete privata.

        1. Progetto: seleziona il tuo ID progetto Google Cloud.

        2. Rete: seleziona la tua rete dal menu a discesa. Se non hai creato una rete, consulta Creazione e gestione delle reti VPC per scoprire come creare una rete.

        3. Intervallo IP: inserisci l'intervallo IP interno che può essere assegnato alle VM all'interno dell'intervallo allocato di una rete in peering.

          Puoi specificare l'intervallo utilizzando la notazione di routing CIDR (Classless Inter-Domain Routing) nel formato STARTING_IP/SUBNET_PREFIX_SIZE. Ad esempio, 192.0.2.0/24 ha una lunghezza del prefisso di 24. I primi 24 bit dell'intervallo IP vengono utilizzati come subnet mask (192.0.2.0), mentre gli indirizzi host possibili sono compresi nell'intervallo 192.0.2.0-192.0.2.255.

          Il valore della lunghezza del prefisso non deve essere superiore a /29. Se non viene specificato alcun valore per l'intervallo, viene assegnato automaticamente un valore predefinito pari a /24. Se non viene specificato alcun valore per la lunghezza del prefisso, gli indirizzi IP vengono assegnati automaticamente all'interno della rete VPC in peering. Se non viene specificato alcun valore per l'indirizzo IP, all'indirizzo IP viene assegnato automaticamente un intervallo all'interno della rete VPC in peering.

  5. Fai clic su Connect Host (Connetti host).

    Se l'istanza del data center di Bitbucket si trova su una rete in peering, il completamento della connessione dell'host potrebbe richiedere diversi minuti.

    Si aprirà il riquadro Connetti repository.

    Dopo aver creato una connessione host, i token di accesso personali e il secret del webhook verranno archiviati in modo sicuro in Secret Manager. Puoi visualizzare e gestire i tuoi secret nella pagina Secret Manager.

gcloud

Per connettere l'host Bitbucket Data Center a Cloud Build utilizzando i comandi gcloud, devi eseguire il comando gcloud alpha builds enterprise-config bitbucketserver create nel tuo terminale. A differenza della connessione dell'host tramite la console Google Cloud, dovrai archiviare manualmente i token di accesso personali e il secret del webhook in Secret Manager prima di eseguire il comando seguente:

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

Dove:

  • BITBUCKET_DATA_CENTER_CONFIG_NAME è il nome della configurazione del tuo data center Bitbucket.
  • USERNAME è il tuo nome utente Bitbucket Data Center.
  • HOST_URI è l'URI host della tua istanza Data Center Bitbucket.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del token di accesso amministrativo archiviato in Secret Manager. Il formato previsto per i secret archiviati in Secret Manager è projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Puoi specificare latest come versione in modo da utilizzare la versione più recente del secret. Questo vale per ogni risorsa archiviata in Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del token di accesso in lettura archiviato in Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION è il nome risorsa del tuo secret webhook archiviato in Secret Manager.
  • API_KEY è la chiave API di Google Cloud.
  • Facoltativo: PEERED_NETWORK è la rete VPC a cui connetterti per le istanze del data center Bitbucket on-premise. Per saperne di più, consulta Creare repository da Bitbucket Data Center in una rete privata.

  • Facoltativo: PEERED_NETWORK_IP_RANGE è l'intervallo IP interno a cui possono essere assegnate le VM all'interno dell'intervallo allocato di una rete in peering.

  • SSL_CA_FILE è il percorso di un file locale contenente il certificato SSL da utilizzare per le richieste a Bitbucket Data Center. Il certificato deve essere in formato PEM.

API

Per connettere l'host Bitbucket Data Center a Cloud Build utilizzando l'API, utilizza il seguente modello JSON. A differenza della connessione dell'host mediante la console Google Cloud, devi archiviare manualmente i token di accesso personali e il secret del webhook in Secret Manager prima di chiamare l'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"
}

Dove:

  • HOST_URI è l'URI host della tua istanza Data Center Bitbucket.
  • USERNAME è il tuo nome utente Bitbucket Data Center.
  • API_KEY è la chiave API di Google Cloud.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del token di accesso amministrativo archiviato in Secret Manager. Potresti dover concedere il ruolo Secret Manager al tuo account di servizio Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Per scoprire di più, consulta Concedere il ruolo di Secret Manager all'account di servizio.

  • READ_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del token di accesso in lettura archiviato in Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION è il nome risorsa del tuo secret webhook archiviato in Secret Manager.

  • Facoltativo: PEERED_NETWORK è la rete VPC con cui eseguire il peering per le istanze di data center Bitbucket on-premise.

    Puoi specificare l'intervallo utilizzando la notazione di routing CIDR (Classless Inter-Domain Routing) nel formato STARTING_IP/SUBNET_PREFIX_SIZE. Ad esempio, 192.0.2.0/24 ha una lunghezza del prefisso di 24. I primi 24 bit dell'intervallo IP vengono utilizzati come subnet mask (192.0.2.0), mentre gli indirizzi host possibili sono compresi tra 192.0.2.0 e 192.0.2.225.

  • Facoltativo: PEERED_NETWORK_IP_RANGE è l'intervallo IP interno a cui possono essere assegnate le VM all'interno dell'intervallo allocato di una rete in peering.

  • Facoltativo: SSL_CERTIFICATE è il certificato SSL utilizzato per le istanze on-premise del data center Bitbucket.

Inserisci il seguente comando curl nel terminale:

  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

Dove:

  • PROJECT_ID è l'ID del tuo progetto Google Cloud.
  • REGION è la regione associata alla configurazione del data center Bitbucket.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME è il nome della configurazione del tuo data center Bitbucket.

In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation appena creata.

Inserisci il seguente comando curl nel terminale:

  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

Dove:

  • PROJECT_NUMBER è il numero di progetto Google Cloud.
  • PROJECT_ID è l'ID del tuo progetto Google Cloud.
  • REGION è la regione associata alla configurazione del data center Bitbucket.
  • OPERATION_ID è l'ID dell'operazione di creazione della configurazione di Bitbucket Data Center.

Potresti dover continuare a eseguire il comando API GetOperation fino a quando la risposta non contiene done: true, a indicare che l'operazione è stata completata. Se la configurazione del data center di Bitbucket è stata creata, puoi visualizzarla nel campo response.value. In caso contrario, controlla il campo error per un report dettagliato sugli errori.

Passaggi successivi