Conéctate a un host de centro de datos de Bitbucket

.

En esta página, se explica cómo conectar un Centro de datos de Bitbucket host en Cloud Build.

Antes de comenzar

  • Habilita las API de Cloud Build, Secret Manager, and Compute Engine.

    Habilita las API

  • Ten preparado tu código fuente en un repositorio de Bitbucket Data Center.
  • Tener un Dockerfile o un Archivo de configuración de Cloud Build en tu repositorio de código fuente de Bitbucket Data Center.
  • Si no instalaste una instancia de Bitbucket Data Center, consulta Instala Bitbucket Data Center para obtener instrucciones.
  • Para usar los comandos de gcloud en esta página, instala Google Cloud CLI.

Conéctate a un host de centro de datos de Bitbucket

Console

Para conectar tu host de centro de datos de Bitbucket a Cloud Build con la consola de Google Cloud:

  1. Abre la página Repositories en la consola de Google Cloud:

    Abrir la página repositorios

  2. En la parte superior de la página, selecciona la pestaña 1st gen.

  3. Haz clic en Conectar host.

  4. Selecciona Centro de datos de Bitbucket en el menú desplegable.

    Verás el panel Conectar host.

    Ingresa la siguiente información para conectar tu Bitbucket de un centro de datos a Cloud Build:

    1. Región: Selecciona la región de tu conexión.

    2. Nombre: Ingresa un nombre para tu conexión.

    3. URL del host: La URL del host de tu instancia de Bitbucket Data Center. Por ejemplo, https://bbs.example-test.com:7990

    4. Clave de API de Google Cloud: Ingresa la clave de API que se usa para autenticar tu credenciales.

    5. Certificado de CA: Es tu certificado autofirmado. El certificado no debe supere los 10 KB y debe estar en formato PEM (.pem, .cer o .crt). Si dejas esta sección en blanco, Google Cloud usará un certificado del conjunto de certificados predeterminado.

    6. Nombre de usuario: El nombre de usuario de tu cuenta de Bitbucket Data Center. Esta cuenta debe tener acceso de administrador a los repositorios que desea conectarte a Cloud Build.

    7. Token de acceso de lectura: Ingresa el nombre personal de tu cuenta de Bitbucket Data Center token de acceso con permisos de lectura.

    8. Token de acceso de administrador: Ingresa tu cuenta de Bitbucket Data Center token de acceso personal con permisos de administrador en proyectos y de Cloud Storage.

    9. En Tipo de red, selecciona una de las siguientes opciones:

      1. Internet pública: Selecciona esta opción si tu instancia es accesible a través de la Internet pública.

      2. Red privada: Selecciona esta opción si tu instancia está alojada en una red privada.

        1. Proyecto: Selecciona tu ID del proyecto de Google Cloud.

        2. Red: Selecciona tu red en el menú desplegable. Si no crearon una red, consulta Crea y administra VPC redes para aprender a crear una red.

        3. Rango de IP: Ingresa el rango de IP internas que se pueden asignar a las VMs. dentro del rango asignado de una red de intercambio de tráfico.

          Puedes especificar el rango con la notación de enrutamiento de enrutamiento entre dominios sin clases (CIDR) con el formato STARTING_IP/SUBNET_PREFIX_SIZE. Por ejemplo, 192.0.2.0/24 tiene una longitud de prefijo de 24. Los primeros 24 bits del rango de IP se usan como máscara de subred (192.0.2.0), mientras que las direcciones de hosts posibles varían de 192.0.2.0 a 192.0.2.255.

          El valor de la longitud del prefijo no debe exceder /29. Si la respuesta es no se especifica un valor predeterminado para el rango, se asigna automáticamente un valor predeterminado de /24. Si no se especifica ningún valor para la longitud del prefijo, las direcciones IP se asignan automáticamente dentro de la red de VPC con intercambio de tráfico. Si no se especifica ningún valor para la IP dirección IP, se le asigna automáticamente un rango dentro de la red de VPC con intercambio de tráfico.

  5. Haz clic en Conectar host.

    Si tu instancia de Bitbucket Data Center se encuentra en una red con intercambio de tráfico, conectar el host puede tardar varios minutos en completarse.

    Se te redireccionará al panel Conectar repositorio.

    Después de crear una conexión con el host, tus tokens de acceso personales y el secreto de webhook se almacenará de forma segura en Secret Manager. Puedes ver y administrar tus secretos en la Secret Manager .

gcloud

Para conectar tu host de centro de datos de Bitbucket a Cloud Build usando comandos gcloud, debes ejecutar gcloud alpha builds enterprise-config bitbucketserver create en tu terminal. A diferencia de lo que ocurre con la conexión de tu host la consola de Google Cloud, deberás almacenar de forma manual tu el secreto de webhook y los tokens de acceso en Secret Manager antes de ejecutar el siguiente 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

Aquí:

  • BITBUCKET_DATA_CENTER_CONFIG_NAME es el nombre de tu configuración de Bitbucket Data Center.
  • USERNAME es tu nombre de usuario del centro de datos de Bitbucket.
  • HOST_URI es el URI del host de tu instancia de Bitbucket Data Center.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu de acceso de administrador almacenado en Secret Manager. El formato esperado para los Secrets almacenados en Secret Manager es projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Puedes especificar latest como tu versión para usar la versión más reciente de tu secreto. Esto se aplica a cada recurso almacenado en Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu de acceso de lectura almacenado en Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION es el nombre del recurso de tu del Secret de webhook almacenado en Secret Manager.
  • API_KEY es la clave de API de Google Cloud.
  • Opcional: PEERED_NETWORK es la red de VPC a la que te conectarás para las instancias locales de Bitbucket Data Center. Para obtener más información, consulta Compila repositorios de Bitbucket Data Center en una red privada.

  • Opcional: PEERED_NETWORK_IP_RANGE es la IP interna. al que se pueden asignar las VMs dentro del rango asignado de una red con intercambio de tráfico.

  • SSL_CA_FILE es la ruta a un archivo local que contiene tu certificado SSL para usarlo en solicitudes a Bitbucket Data Center. El certificado debe estar en formato PEM.

API

Para conectar tu host de centro de datos de Bitbucket a Cloud Build con la API, usa la siguiente plantilla de JSON. A diferencia de conectar tu con la consola de Google Cloud, debes almacenar de forma manual tu el secreto de webhook y los tokens de acceso en Secret Manager antes de llamar a la 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"
}

Aquí:

  • HOST_URI es el URI del host de tu instancia de Bitbucket Data Center.
  • USERNAME es tu nombre de usuario del centro de datos de Bitbucket.
  • API_KEY es la clave de API de Google Cloud.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu de acceso de administrador almacenado en Secret Manager. Tú debas otorgarle el rol de Secret Manager a tu la cuenta de servicio de Cloud Build service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com Para Para obtener más información, consulta Otorga el rol de Secret Manager a tu cuenta de servicio.

  • READ_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso. de tu token de acceso de lectura almacenado en Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION es el nombre del recurso de del Secret de webhook almacenado en Secret Manager.

  • Opcional: PEERED_NETWORK es la VPC. para intercambiar tráfico con tus instancias locales de Bitbucket Data Center.

    Puedes especificar el rango con el enrutamiento entre dominios sin clases (CIDR). notación de enrutamiento en el formato STARTING_IP/SUBNET_PREFIX_SIZE. Por ejemplo: 192.0.2.0/24 tiene una longitud de prefijo de 24. Los primeros 24 bits del rango de IP se usan como máscara de subred (192.0.2.0), mientras que las posibles direcciones de hosts rango de 192.0.2.0 a 192.0.2.225.

  • Opcional: PEERED_NETWORK_IP_RANGE es la IP interna. al que se pueden asignar las VMs dentro del rango asignado de una red con intercambio de tráfico.

  • Opcional: SSL_CERTIFICATE es el certificado SSL que se usa para las instancias locales de Bitbucket Data Center.

Ingresa el siguiente comando curl en la 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

Aquí:

  • PROJECT_ID es el ID del proyecto de Google Cloud.
  • REGION es la región asociada a tu configuración del centro de datos de Bitbucket.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME es el nombre de tu configuración de Bitbucket Data Center.

Si el proceso es satisfactorio, el cuerpo de la respuesta contiene una instancia nueva de Operation.

Ingresa el siguiente comando curl en la 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

Aquí:

  • PROJECT_NUMBER es el número de proyecto de Google Cloud.
  • PROJECT_ID es tu ID del proyecto de Cloud.
  • REGION es la región asociada a tu configuración del centro de datos de Bitbucket.
  • OPERATION_ID es el ID de tu operación de creación de configuración de Bitbucket Data Center.

Es posible que debas seguir ejecutando el comando de la API de GetOperation hasta que la respuesta contenga done: true, lo que indica que la operación se completó. Si la configuración del centro de datos de Bitbucket se creó correctamente, podrás verla en el campo response.value. De lo contrario, consulta el campo error para obtener un informe de errores detallado.

¿Qué sigue?