Cette page explique comment connecter un Bitbucket Data Center à Cloud Build.
Avant de commencer
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Préparez votre code source dans un dépôt du centre de données Bitbucket.
- Disposer d'un
Dockerfile
ou d'un Fichier de configuration Cloud Build dans dans le dépôt source de votre centre de données Bitbucket. - Si vous n'avez pas installé d'instance Bitbucket Data Center, Installez Bitbucket Data Center pour savoir comment procéder.
Pour utiliser les commandes
gcloud
sur cette page, installez Google Cloud CLI.
Se connecter à un hôte de centre de données Bitbucket
Console
Connecter l'hôte de votre centre de données Bitbucket à Cloud Build à l'aide de la console Google Cloud:
Ouvrez la page Dépôts dans la console Google Cloud:
En haut de la page, sélectionnez l'onglet 1re génération.
Cliquez sur Connecter un hôte.
Sélectionnez Bitbucket Data Center dans le menu déroulant.
Le panneau Connecter un hôte s'affiche.
Saisissez les informations suivantes pour associer votre Bitbucket d'une instance de centre de données à Cloud Build:
Région: sélectionnez la région de votre connexion.
Name (Nom) : saisissez le nom de votre connexion.
Host url (URL de l'hôte) : URL d'hôte de votre instance de centre de données Bitbucket. Exemple :
https://bbs.example-test.com:7990
.Google Cloud API key (Clé API Google Cloud) : saisissez la clé API utilisée pour authentifier votre identifiants de connexion.
Certificat CA: votre certificat autosigné. Votre certificat ne doit pas dépasse 10 Ko et doit être au format PEM (
.pem
,.cer
ou.crt
). Si vous laissez cette section vide, Google Cloud utilise un certificat provenant de l'ensemble de certificats par défaut.Username (Nom d'utilisateur) : nom d'utilisateur de votre compte Bitbucket Data Center. Ce compte vous devez disposer d'un accès administrateur aux dépôts que vous souhaitez se connecter à Cloud Build.
Read access token (Jeton d'accès en lecture) : indiquez l'identifiant personnel de votre compte Bitbucket Data Center. un jeton d'accès avec autorisations de lecture.
Jeton d'accès administrateur: indiquez votre compte de centre de données Bitbucket. un jeton d'accès personnel disposant d'autorisations d'administrateur sur les projets des dépôts.
Sous Type de réseau, sélectionnez l'une des options suivantes:
Internet public: sélectionnez cette option si votre instance est accessibles via l'Internet public.
Réseau privé: sélectionnez cette option si votre instance est hébergée. sur un réseau privé.
Project (Projet) : sélectionnez l'ID de votre projet Google Cloud.
Réseau: sélectionnez votre réseau dans le menu déroulant. Si vous n'avez pas créé de réseau, consultez la section Créer et gérer des réseaux pour apprendre à créer un réseau.
Plage d'adresses IP: saisissez la plage d'adresses IP internes pouvant être attribuées aux VM. dans la plage allouée d'un réseau appairé.
Vous pouvez spécifier la plage à l'aide du format de routage CIDR (Classless Inter-Domain Routing) au format
STARTING_IP/SUBNET_PREFIX_SIZE
. Par exemple,192.0.2.0/24
a une longueur de préfixe de 24. Les 24 premiers bits de la plage d'adresses IP servent de masque de sous-réseau (192.0.2.0
), tandis que les adresses des hôtes possibles vont de192.0.2.0
à192.0.2.255
.La valeur de votre longueur de préfixe ne doit pas dépasser
/29
. Si non est spécifiée pour la plage, la valeur par défaut/24
est automatiquement attribuée. Si aucune valeur n'est spécifiée pour la longueur de préfixe, les adresses IP sont automatiquement attribuées au sein du réseau VPC appairé. Si aucune valeur n'est spécifiée pour l'adresse IP l'adresse IP se voit automatiquement attribuer une plage au sein du réseau VPC appairé.
Cliquez sur Connecter un hôte.
Si votre instance Bitbucket Data Center se trouve sur un réseau appairé, vous devez vous connecter votre hôte peut prendre plusieurs minutes.
Vous êtes alors redirigé vers le panneau Connecter un dépôt.
Une fois la connexion hôte créée, vos jetons d'accès personnels et le secret du webhook sera stocké de manière sécurisée dans Secret Manager. Vous pouvez consulter et gérer vos secrets Secret Manager .
gcloud
Connecter l'hôte de votre centre de données Bitbucket à Cloud Build
à l'aide des commandes gcloud
, vous devez exécuter
gcloud alpha builds enterprise-config bitbucketserver create
dans votre terminal. Contrairement à la connexion de votre hôte à l'aide du
dans la console Google Cloud, vous devez stocker manuellement
les jetons d'accès et le secret du webhook dans Secret Manager avant d'exécuter la commande suivante:
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
Où :
- BITBUCKET_DATA_CENTER_CONFIG_NAME est le nom de votre Configuration du centre de données Bitbucket.
- USERNAME est votre nom d'utilisateur Bitbucket Data Center.
- HOST_URI est l'URI d'hôte de votre instance Bitbucket Data Center.
- ADMIN_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre
d'accès administrateur stocké dans Secret Manager. La
format attendu pour les secrets stockés dans Secret Manager
est
projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}
. Vous pouvez spécifierlatest
comme version pour utiliser la dernière version de votre secret. Cela s'applique à chaque ressource stockée Secret Manager.
- READ_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre d'accès en lecture stocké dans Secret Manager.
- WEBHOOK_SECRET_SECRET_VERSION est le nom de ressource de votre du secret de votre webhook stocké dans Secret Manager.
- API_KEY est la clé API Google Cloud.
Facultatif: PEERED_NETWORK est le réseau VPC auquel vous connecter pour vos instances de centre de données Bitbucket sur site. Pour en savoir plus, consultez Créer des dépôts à partir d'un centre de données Bitbucket dans un réseau privé.
Facultatif: PEERED_NETWORK_IP_RANGE correspond à l'adresse IP interne. à laquelle les VM peuvent être attribuées dans la plage allouée d'un réseau appairé.
SSL_CA_FILE est le chemin d'accès à un fichier local contenant votre certificat SSL à utiliser pour les requêtes au centre de données Bitbucket. Le certificat doit être au format PEM.
API
Connecter l'hôte de votre centre de données Bitbucket à Cloud Build à l'aide de l'API, utilisez le modèle JSON suivant. Contrairement à l'association de votre à l'aide de la console Google Cloud, vous devez stocker manuellement les jetons d'accès et le secret du webhook dans Secret Manager avant d'appeler 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"
}
Où :
- HOST_URI est l'URI d'hôte de votre instance Bitbucket Data Center.
- USERNAME est votre nom d'utilisateur Bitbucket Data Center.
- API_KEY est la clé API Google Cloud.
ADMIN_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre d'accès administrateur stocké dans Secret Manager. Toi vous devrez peut-être attribuer le rôle Secret Manager compte de service Cloud Build,
service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com
À Pour en savoir plus, consultez la section Attribuer le rôle Secret Manager compte de service Google.READ_ACCESS_TOKEN_SECRET_VERSION est le nom de la ressource. de votre jeton d'accès en lecture stocké dans Secret Manager.
WEBHOOK_SECRET_SECRET_VERSION est le nom de ressource de du secret du webhook stocké dans Secret Manager.
Facultatif: PEERED_NETWORK correspond au VPC d'appairage pour vos instances de centre de données Bitbucket sur site.
Vous pouvez spécifier la plage à l'aide du routage CIDR (Classless Inter-Domain Routing). au format
STARTING_IP/SUBNET_PREFIX_SIZE
. Par exemple : La longueur de préfixe de192.0.2.0/24
est de 24. Les 24 premiers bits de la plage d'adresses IP sont utilisés comme masque de sous-réseau (192.0.2.0
), tandis que les adresses des hôtes possibles compris entre192.0.2.0
et192.0.2.225
.Facultatif: PEERED_NETWORK_IP_RANGE correspond à l'adresse IP interne. à laquelle les VM peuvent être attribuées dans la plage allouée d'un réseau appairé.
Facultatif: SSL_CERTIFICATE est le certificat SSL utilisé pour vos instances de centre de données Bitbucket sur site.
Saisissez la commande curl
suivante dans votre 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
Où :
- PROJECT_ID est l'ID de votre projet Google Cloud.
- REGION est la région associée à votre configuration de centre de données Bitbucket.
- BITBUCKET_DATA_CENTER_CONFIG_NAME est le nom de votre configuration de centre de données Bitbucket.
Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation.
Saisissez la commande curl
suivante dans votre 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
Où :
- PROJECT_NUMBER est le numéro de votre projet Google Cloud.
- PROJECT_ID correspond à votre ID de projet Google Cloud.
- REGION est la région associée à votre configuration de centre de données Bitbucket.
- OPERATION_ID est l'ID de l'opération de création de la configuration de votre centre de données Bitbucket.
Vous devrez peut-être continuer à exécuter la commande de l'API GetOperation jusqu'à ce que la réponse contienne done: true
, qui indique que l'opération est terminée. Si la configuration du centre de données Bitbucket a bien été créée, vous pouvez la voir dans le champ response.value
. Sinon, consultez le champ error
pour obtenir un rapport d'erreurs détaillé.
Étape suivante
- Découvrez comment connecter un dépôt de centre de données Bitbucket.
- Découvrez comment effectuer des déploiements bleu-vert sur Compute Engine.