Connettersi a un host Bitbucket Server

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina spiega come connettersi a un host Bitbucket Server a Cloud Build.

Prima di iniziare

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

    Abilita le API

Configurazione in corso…

Prima di connettere l'host Bitbucket Server, devi ottenere una chiave API per autenticare e accettare gli eventi in arrivo da Bitbucket Server. Inoltre, devi concedere le autorizzazioni IAM nel tuo progetto Google Cloud per creare i token di accesso personale in Bitbucket Server per creare webhook e recuperare i dati del repository.

Ottenere una chiave API

Per connettere l'host e autenticare gli eventi webhook in arrivo, è necessaria una chiave API.

Per ottenere una chiave API:

  1. Apri la pagina Credenziali nella console Google Cloud:

    Apri la pagina Credenziali

  2. Fai clic su Crea credenziali.

  3. Fai clic su Chiave API.

    Verrà visualizzata una finestra di dialogo con la chiave API creata. Prendi nota della tua chiave API.

  4. Se vuoi limitare la chiave per le applicazioni del prodotto, fai clic su Limita chiave per completare i passaggi aggiuntivi per proteggere la chiave. In caso contrario, fai clic su Chiudi.

    Per scoprire come limitare la chiave, consulta l'articolo Applicazione delle restrizioni relative alle chiavi API.

Autorizzazioni IAM obbligatorie

Per connettere l'host Bitbucket Server, concedi il ruolo Editor Cloud Build Editor (roles/cloudbuild.builds.editor) e Proprietario integrazioni Cloud Build (cloudbuild.integrations.owner) al tuo account utente.

Per aggiungere i ruoli richiesti al tuo account utente, consulta Configurazione dell'accesso alle risorse Cloud Build. Per scoprire di più sui ruoli IAM associati a Cloud Build, consulta Ruoli e autorizzazioni IAM.

Creazione di token di accesso personali

Devi creare due token di accesso personali in Bitbucket Server per eseguire le seguenti attività:

Questi token di accesso personali sono le autorizzazioni minime richieste. Potresti dover configurare autorizzazioni aggiuntive in Bitbucket Server secondo le tue esigenze. Ad esempio, puoi selezionare Account Bitbucket Server per accedere solo a un sottoinsieme dei repository nella tua istanza di Bitbucket Server per avere un controllo più granulare su ciò che è disponibile in Cloud Build.

Dopo aver creato i token di accesso personali, salva i valori dei token in modo sicuro per connetterti al repository Bitbucket Server.

Connessione a un host Bitbucket Server

Console

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

  1. Apri la pagina Gestisci repository nella console Google Cloud:

    Apri la pagina Gestisci repository

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

    Vedrai il riquadro Connetti host.

    Inserisci le informazioni seguenti per connettere l'istanza Bitbucket Server a Cloud Build:

    • Host url (URL host): l'URL dell'host dell'istanza Bitbucket Server. Ad esempio: https://bbs.example-test.com:7990.
    • Chiave API Google Cloud: la chiave API utilizzata per autenticare le credenziali.
    • [FACOLTATIVO] Certificato CA: il certificato autofirmato. Il certificato non deve superare i 10 kB e deve essere in formato PEM (.pem, .cer o .crt). Se questa sezione viene lasciata vuota, verrà utilizzato un insieme predefinito di certificati.

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

    • Token di accesso in lettura: il token di accesso personale del tuo account Bitbucket Server con autorizzazioni di lettura.

    • Token di accesso amministrativo: il token di accesso personale del tuo account Bitbucket Server con autorizzazioni di amministratore per progetti e repository.

    • [FACOLTATIVO] Progetto di rete: l'ID del progetto di rete per la tua rete on-premise.

    • [FACOLTATIVO] Nome rete: il nome della tua rete on-premise.

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

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

    Si aprirà il riquadro Connect Repository (Connetti repository).

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

gcloud

Per connettere l'host Bitbucket Server 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 tramite la console Google Cloud, dovrai archiviare manualmente i token di accesso personale e il secret webhook in Secret Manager prima di eseguire il comando seguente:

gcloud alpha builds enterprise-config bitbucketserver create
    --name=BITBUCKET_SERVER_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

Dove:

  • BITBUCKET_SERVER_CONFIG_NAME è il nome della configurazione di Bitbucket Server.
  • USERNAME è il tuo nome utente di Bitbucket Server.
  • HOST_URI è l'URI host della tua istanza Bitbucket Server.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa per il 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 secret. Questo vale per ciascuna risorsa archiviata in Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa per il token di accesso in lettura archiviato in Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION è il nome della 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 tue istanze Bitbucket Server on-premise.
  • SSL_CA_FILE è il percorso di un file locale contenente il certificato SSL da utilizzare per le richieste a Bitbucket Server. Il certificato deve essere in formato PEM.

API

Per connettere l'host Bitbucket Server a Cloud Build utilizzando l'API, usa il seguente modello JSON. A differenza della connessione dell'host che utilizza la console Google Cloud, devi archiviare manualmente i token di accesso personale e il secret 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",
      "sslCa": "SSL_CERTIFICATE"
  }

Dove:

  • HOST_URI è l'URI host della tua istanza Bitbucket Server.
  • USERNAME è il tuo nome utente di Bitbucket Server.
  • API_KEY è la chiave API di Google Cloud.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa per il token di accesso amministrativo archiviato in Secret Manager. Potresti dover concedere il ruolo di 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 Secret Manager al tuo account di servizio.

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

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

  • [Facoltativo] PEERED_NETWORK è la rete VPC verso cui eseguire il peering per le istanze Bitbucket Server on-premise.

  • [Facoltativo] SSL_CERTIFICATE è il certificato SSL utilizzato per le istanze Bitbucket Server on-premise.

Inserisci questo comando curl nel terminale:

  curl -X POST -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/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_SERVER_CONFIG_NAME -d @config.json

Dove:

  • PROJECT_NUMBER è il tuo numero di progetto Cloud.
  • PROJECT_ID è il tuo ID progetto Cloud.
  • BITBUCKET_SERVER_CONFIG_NAME è il nome della configurazione di Bitbucket Server.

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

Inserisci questo 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/global/operations/OPERATION_ID

Dove:

  • PROJECT_NUMBER è il tuo numero di progetto Cloud.
  • PROJECT_ID è il tuo ID progetto Cloud.
  • OPERATION_ID è l'ID dell'operazione di creazione della configurazione del server Bitbucket.

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

Passaggi successivi