Connettiti a un host Bitbucket Data Center

Questa pagina spiega come connettere un host Bitbucket Data Center a Cloud Build.

Prima di iniziare

  • Enable the Cloud Build, Secret Manager, and Compute Engine APIs.

    Enable the APIs

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

Connettiti a un host Bitbucket Data Center

Console

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

  1. Apri la pagina Repositori nella console Google Cloud :

    Apri la pagina Repositori

  2. Nella parte superiore della pagina, seleziona la scheda 1ª gen..

  3. Fai clic su Connetti host.

  4. Seleziona Bitbucket Data Center dal menu a discesa.

    Viene visualizzato il riquadro Collega host.

    Inserisci le seguenti informazioni per connettere l'istanza Bitbucket Data Center 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 della tua 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 le dimensioni di 10 KB e deve essere in formato PEM (.pem, .cer o .crt). Se lasci vuota questa sezione, Google Cloud utilizza un certificato dall'insieme predefinito di certificati.

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

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

    8. Token di accesso amministrativo: inserisci il token di accesso personale del tuo account Bitbucket Data Center con autorizzazioni amministrative su progetti e repository.

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

      1. Rete 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 l'ID progetto Google Cloud .

        2. Rete: seleziona la tua emittente dal menu a discesa. Se non hai creato una rete, consulta Creare e gestire reti VPC per scoprire come crearne una.

        3. Intervallo IP: inserisci l'intervallo IP interno a cui possono essere assegnate le VM all'interno dell'intervallo allocato di una rete in coppia.

          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 i possibili indirizzi host vanno da 192.0.2.0 a 192.0.2.255.

          Il valore della lunghezza del prefisso non deve superare /29. Se non viene specificato alcun valore per l'intervallo, viene assegnato automaticamente un valore predefinito di /24. Se non viene specificato alcun valore per la lunghezza del prefisso, gli indirizzi IP vengono assegnati automaticamente all'interno della rete VPC accoppiata. Se non viene specificato alcun valore per l'indirizzo IP, a quest'ultimo viene assegnato automaticamente un intervallo all'interno della rete VPC con peering.

  5. Fai clic su Connetti host.

    Se l'istanza di Bitbucket Data Center si trova su una rete in cui sono presenti più peer, la connessione all'host potrebbe richiedere diversi minuti.

    Verrà visualizzato il riquadro Connetti repository.

    Dopo aver creato una connessione all'host, i token di accesso personale e il secret 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 di Bitbucket Data Center a Cloud Build utilizzando i comandi gcloud, devi eseguire il comando gcloud alpha builds enterprise-config bitbucketserver create nel terminale. A differenza della connessione dell'host utilizzando la consoleGoogle Cloud , dovrai memorizzare manualmente i token di accesso personali e il segreto webhook in Secret Manager prima di eseguire il seguente 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

Dove:

  • BITBUCKET_DATA_CENTER_CONFIG_NAME è il nome della configurazione di Bitbucket Data Center.
  • USERNAME è il tuo nome utente di Bitbucket Data Center.
  • HOST_URI è l'URI host della tua istanza Bitbucket Data Center.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del tuo 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 per utilizzare la versione più recente del segreto. Questo vale per ogni risorsa archiviata in Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del tuo token di accesso in lettura archiviato in Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION è il nome della risorsa del secret dell'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 on-premise di Bitbucket Data Center. Per scoprire di più, consulta Creare repository da Bitbucket Data Center in una rete privata.

  • (Facoltativo) PEERED_NETWORK_IP_RANGE è l'intervallo IP interno a cui è possibile assegnare le VM all'interno dell'intervallo allocato di una rete in coppia.

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

API

Per connettere l'host di Bitbucket Data Center a Cloud Build utilizzando l'API, utilizza il seguente modello JSON. A differenza della connessione dell'hosting tramite la console Google Cloud , devi memorizzare manualmente i token di accesso personali e il segreto 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 Bitbucket Data Center.
  • USERNAME è il tuo nome utente di Bitbucket Data Center.
  • API_KEY è la chiave API di Google Cloud .
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa del tuo token di accesso amministrativo archiviato in Secret Manager. Potresti dover concedere il ruolo Funzione di accesso ai secret di Secret Manager all'agente di servizio Cloud Build,service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Per approfondire, consulta Concedere il ruolo 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 della risorsa del secret webhook archiviato in Secret Manager.

  • (Facoltativo) PEERED_NETWORK è la rete VPC con cui eseguire il peering per le istanze on-premise di Bitbucket Data Center.

    Puoi specificare l'intervallo utilizzando la notazione di routing Classless Inter-Domain Routing (CIDR) 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 i possibili indirizzi host vanno da 192.0.2.0 a 192.0.2.225.

  • (Facoltativo) PEERED_NETWORK_IP_RANGE è l'intervallo IP interno a cui è possibile assegnare le VM all'interno dell'intervallo allocato di una rete in coppia.

  • (Facoltativo) SSL_CERTIFICATE è il certificato SSL utilizzato per le istanze di Bitbucket Data Center on-premise.

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 progetto del tuo Google Cloud .
  • REGION è la regione associata alla configurazione di Bitbucket Data Center.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME è il nome della configurazione di Bitbucket Data Center.

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 del tuo progetto Google Cloud .
  • PROJECT_ID è l'ID progetto Google Cloud .
  • REGION è la regione associata alla configurazione di Bitbucket Data Center.
  • OPERATION_ID è l'ID dell'operazione di creazione della configurazione di Bitbucket Data Center.

Potresti dover continuare a eseguire il comando dell'API GetOperation finché la risposta non contiene done: true, che indica che l'operazione è stata completata. Se la configurazione di Bitbucket Data Center viene creata correttamente, puoi visualizzarla nel campo response.value. In caso contrario, consulta il campo error per un report dettagliato sugli errori.

Passaggi successivi