In questa pagina viene spiegato come connettersi a un host Bitbucket Server in Cloud Build.
Prima di iniziare
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Se non hai installato un'istanza Bitbucket Server, consulta Per ulteriori istruzioni, consulta la guida all'installazione di Bitbucket Server.
Configurazione
Prima di connettere l'host Bitbucket Server, devi ottenere un Chiave API per autenticare e accettare gli eventi in entrata da Bitbucket Server. Inoltre, devi concedere ai ruoli IAM autorizzazioni nel tuo progetto Google Cloud per creare un accesso personale in Bitbucket Server per creare webhook e recuperare il repository e i dati di Google Cloud.
Ottenere una chiave API
Per connettere l'host e autenticare gli eventi webhook in arrivo, ti serve una chiave API.
Per ottenere una chiave API:
Apri la pagina Credenziali nella console Google Cloud:
Fai clic su Crea credenziali.
Fai clic su Chiave API.
Verrà visualizzata una finestra di dialogo con la chiave API creata. Prendi nota chiave API.
Se vuoi limitare la chiave per le applicazioni del prodotto, fai clic su Limita chiave per completare ulteriori passaggi per proteggere la chiave. In caso contrario, fai clic su Chiudi.
Per scoprire come limitare la chiave, consulta Applicazione di restrizioni relative alle chiavi API.
Autorizzazioni IAM richieste
Per connettere l'host Bitbucket Server, concedi la classe
Editor Cloud Build (roles/cloudbuild.builds.editor
)
ruolo e il ruolo
Ruolo Proprietario integrazioni Cloud Build (cloudbuild.integrations.owner
)
al tuo account utente.
Per aggiungere i ruoli richiesti al tuo account utente, vedi Configurazione dell'accesso alle risorse Cloud Build. Per saperne di più sui ruoli IAM associati Cloud Build, consulta Ruoli e autorizzazioni IAM.
Creazione di token di accesso personali
Devi creare due token di accesso personale in Bitbucket Server di eseguire le seguenti attività:
- Creazione di webhook: crea un token di accesso personale con accesso amministrativo.
- Recupera i dati del repository: crea un token di accesso personale con Accesso in lettura. Facoltativamente, puoi creare un token Ha accesso sia in lettura che in scrittura.
Questi token di accesso personale sono le autorizzazioni minime richieste. Potresti dover configurare autorizzazioni aggiuntive in Bitbucket Server in base alle esigenze. Ad esempio, puoi selezionare Account Bitbucket Server per avere accesso solo a un sottoinsieme di repository nell'istanza Bitbucket Server per consentire 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:
Apri la pagina Repositories (Repositoi) nella console Google Cloud:
Nella parte superiore della pagina, seleziona la scheda 1a gen..
Fai clic su Connetti host.
Seleziona Bitbucket Server dal menu a discesa.
Viene visualizzato il riquadro Collega host.
Inserisci le seguenti informazioni per connettere il tuo Bitbucket Istanza server su Cloud Build:
Regione: seleziona la regione per la connessione.
Nome: inserisci un nome per la connessione.
URL host: l'URL dell'host della tua istanza Bitbucket Server. Ad esempio:
https://bbs.example-test.com:7990
.Chiave API Google Cloud: la chiave API utilizzata per l'autenticazione e credenziali.
Certificato CA: il tuo certificato autofirmato. Il certificato non deve superano i 10 kB e devono essere in formato PEM (
.pem
,.cer
o.crt
). Se questa sezione viene lasciata vuota, viene utilizzato un insieme predefinito di certificati.Nome utente. Il nome utente del tuo account Bitbucket Server. Questo account devono avere accesso amministrativo ai repository che vuoi per la connessione a Cloud Build.
Read access token (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 su progetti e repository.
In Tipo di rete, seleziona una delle seguenti opzioni:
Internet pubblica: seleziona questa opzione se l'istanza è accessibili tramite la rete internet pubblica.
Rete privata: seleziona questa opzione se la tua istanza è ospitata su una rete privata.
Progetto: seleziona il tuo ID progetto Google Cloud.
Rete: seleziona la tua emittente dal menu a discesa. Se non hanno creato una rete, consulta Creare e gestire VPC reti per imparare a creare una rete.
Intervallo IP: inserisci l'intervallo IP interno che può essere assegnato alle VM nell'intervallo allocato a 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 caratteri. I primi 24 bit dell'intervallo IP vengono utilizzati come subnet mask (192.0.2.0
), mentre i possibili indirizzi host vanno da192.0.2.0
a192.0.2.255
.Il valore della lunghezza del prefisso non deve superare
/29
. In caso contrario 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 in peering. 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.
Fai clic su Connetti host.
Se la tua istanza Bitbucket Server si trova su una rete in peering, la connessione il completamento dell'operazione potrebbe richiedere diversi minuti.
Si aprirà il riquadro Connetti repository.
Dopo aver creato una connessione host, i token di accesso personali e Il secret webhook verrà archiviato in modo sicuro in Secret Manager. Puoi visualizzare e gestire i tuoi secret nella Secret Manager .
gcloud
Per connettere l'host Bitbucket Server a Cloud Build
usando i comandi gcloud
, devi eseguire
gcloud alpha builds enterprise-config bitbucketserver create
nel terminale. A differenza di quando colleghi l'host tramite
nella console Google Cloud, dovrai archiviare manualmente i tuoi
token di accesso e secret webhook in Secret Manager prima di eseguire il seguente comando:
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 \
--peered-network-ip-range=PEERED_NETWORK_IP_RANGE \
--ssl-ca-file=SSL_CA_FILE
Dove:
- BITBUCKET_SERVER_CONFIG_NAME è il nome del tuo Configurazione di Bitbucket Server.
- USERNAME è il tuo nome utente di Bitbucket Server.
- HOST_URI è l'URI dell'host della tua istanza Bitbucket Server.
- ADMIN_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa
di accesso amministrativo archiviato in Secret Manager. La
formato previsto per i secret archiviati in Secret Manager
è
projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}
. Puoi specificarelatest
come versione per utilizzare l'ultima versione di il tuo segreto. Questo vale per ogni risorsa archiviata tramite Secret Manager.
- READ_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa 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. Per saperne di più, consulta Creare repository da Bitbucket Server 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 che contiene il tuo 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 con l'API, usa il seguente modello JSON. A differenza di quanto accade con il collegamento utilizzando la console Google Cloud, dovrai archiviare manualmente i tuoi token di accesso e 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",
"peeredNetworkIpRange": "PEERED_NETWORK_IP_RANGE",
"sslCa": "SSL_CERTIFICATE"
}
Dove:
- HOST_URI è l'URI dell'host della tua istanza Bitbucket Server.
- USERNAME è il tuo nome utente Bitbucket Server.
- 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
. A per saperne di più, consulta Concessione del ruolo di Secret Manager ai tuoi dell'account di servizio.READ_ACCESS_TOKEN_SECRET_VERSION è il nome della risorsa 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 con cui stabilire il peering per le tue istanze Bitbucket Server on-premise.
Puoi specificare l'intervallo utilizzando il Classless Inter-Domain Routing (CIDR) notazione di routing nel formato
STARTING_IP/SUBNET_PREFIX_SIZE
. Ad esempio:192.0.2.0/24
ha una lunghezza del prefisso di 24 caratteri. I primi 24 bit dell'intervallo IP vengono utilizzati come subnet mask (192.0.2.0
), mentre i possibili indirizzi host vanno da192.0.2.0
a192.0.2.225
.[Facoltativo] PEERED_NETWORK_IP_RANGE è l'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 di 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/REGION/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_SERVER_CONFIG_NAME -d @config.json
Dove:
- PROJECT_NUMBER è il numero del tuo progetto Cloud.
- PROJECT_ID è il tuo ID progetto Cloud.
- REGION è la regione associata alla configurazione di Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME è il nome della configurazione di Bitbucket Server.
In caso di esito positivo, il corpo della risposta contiene un'istanza dell'Operazione 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 Cloud.
- PROJECT_ID è il tuo ID progetto Cloud.
- REGION è la regione associata alla configurazione di Bitbucket Server.
- OPERATION_ID è l'ID dell'operazione di creazione della configurazione di Bitbucket Server.
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, puoi visualizzarla nel campo response.value
. In caso contrario, consulta il campo error
per un report dettagliato sugli errori.
Passaggi successivi
- Scopri come connettere un repository Bitbucket Server.
- Scopri come eseguire deployment blu/verde su Compute Engine.