Menghubungkan ke host Pusat Data Bitbucket

Halaman ini menjelaskan cara menghubungkan host Bitbucket Data Center ke Cloud Build. Menghubungkan ke host Bitbucket Data Center mengintegrasikan repositori Bitbucket Data Center Anda dengan Cloud Build. Dengan cara ini, Anda dapat mengonfigurasi pemicu build untuk membangun repositori dari Pusat Data Bitbucket dan membangun repositori dari Pusat Data Bitbucket di jaringan pribadi.

Sebelum memulai

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Izin IAM yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk terhubung ke host Bitbucket Data Center Anda, minta administrator untuk memberi Anda peran IAM berikut di akun pengguna Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Jika instance Pusat Data Bitbucket Anda dihosting di jaringan pribadi, lihat Membangun repositori dari Pusat Data Bitbucket di jaringan pribadi untuk mempelajari peran IAM tambahan yang diperlukan untuk mengonfigurasi koneksi host.

Membuat token akses pribadi

Sebelum membuat koneksi host untuk instance Pusat Data Bitbucket, buat token akses pribadi di Pusat Data Bitbucket dengan melakukan hal berikut:

  1. Login ke instance Bitbucket Data Center Anda.

  2. Ikuti petunjuk untuk membuat token akses HTTP untuk akun pengguna Anda.

    1. Buat token akses dengan cakupan admin repositori untuk digunakan saat menghubungkan dan memutuskan hubungan repositori.

    2. Buat token akses dengan cakupan repository read untuk memastikan repositori Cloud Build dapat mengakses kode sumber di repositori.

  3. Simpan nilai token Anda dengan aman. Anda akan menggunakannya untuk menghubungkan ke repositori Bitbucket Data Center.

Menghubungkan ke host Pusat Data Bitbucket

Konsol

Untuk menghubungkan host Bitbucket Data Center ke Cloud Build menggunakan konsol Google Cloud :

  1. Buka halaman Repositori di Google Cloud konsol:

    Buka halaman Repositori

  2. Di bagian atas halaman, pilih tab Generasi ke-1.

  3. Klik Hubungkan Host.

  4. Pilih Bitbucket Data Center dari menu drop-down.

    Anda akan melihat panel Hubungkan host.

    Masukkan informasi berikut untuk menghubungkan instance Pusat Data Bitbucket ke Cloud Build:

    1. Region: Pilih region untuk koneksi Anda.

    2. Name: Masukkan nama untuk koneksi Anda.

    3. URL host: URL host instance Pusat Data Bitbucket Anda. Contoh, https://bbs.example-test.com:7990.

    4. Google Cloud Kunci API: Masukkan kunci API yang digunakan untuk mengautentikasi kredensial Anda.

    5. Sertifikat CA: Sertifikat yang ditandatangani sendiri. Ukuran sertifikat Anda tidak boleh lebih dari 10 KB dan harus dalam format PEM (.pem, .cer,atau .crt). Jika Anda mengosongkan bagian ini, Google Cloud akan menggunakan sertifikat dari kumpulan sertifikat default.

    6. Nama pengguna: Nama pengguna akun Bitbucket Data Center Anda. Akun ini harus memiliki akses admin ke repositori yang ingin Anda hubungkan dengan Cloud Build.

    7. Token akses baca: Masukkan token akses pribadi akun Bitbucket Data Center Anda dengan izin baca.

    8. Token akses admin: Masukkan token akses pribadi akun Bitbucket Data Center Anda dengan izin admin di project dan repositori.

    9. Di bagian Network type, pilih salah satu opsi berikut:

      1. Internet publik: Pilih opsi ini jika instance Anda dapat diakses menggunakan internet publik.

      2. Jaringan pribadi: Pilih opsi ini jika instance Anda dihosting di jaringan pribadi.

        1. Project: Pilih project ID Google Cloud Anda.

        2. Jaringan: Pilih jaringan Anda dari menu drop-down. Jika Anda belum membuat jaringan, lihat Membuat dan mengelola jaringan VPC untuk mempelajari cara membuat jaringan.

        3. Rentang IP: Masukkan rentang IP internal yang dapat ditetapkan ke VM dalam rentang yang dialokasikan di jaringan yang di-peering.

          Anda dapat menentukan rentang menggunakan notasi pemilihan rute Classless Inter-Domain Routing (CIDR) dalam format STARTING_IP/SUBNET_PREFIX_SIZE. Misalnya, 192.0.2.0/24 memiliki panjang awalan 24. 24 bit pertama rentang IP digunakan sebagai subnet mask (192.0.2.0), sedangkan kemungkinan alamat host berkisar dari 192.0.2.0 hingga 192.0.2.255.

          Nilai panjang awalan tidak boleh melebihi /29. Jika tidak ada nilai yang ditentukan untuk rentang, nilai default /24 akan otomatis ditetapkan. Jika tidak ada nilai yang ditentukan untuk panjang awalan, alamat IP akan otomatis ditetapkan dalam jaringan VPC yang di-peering. Jika tidak ada nilai yang ditentukan untuk alamat IP, alamat IP akan otomatis diberi rentang dalam jaringan VPC yang di-peering.

  5. Klik Hubungkan Host.

    Jika instance Pusat Data Bitbucket Anda berada di jaringan yang di-peering, menghubungkan host Anda mungkin memerlukan waktu beberapa menit hingga selesai.

    Anda akan dialihkan ke panel Connect Repository.

    Setelah membuat koneksi host, token akses pribadi dan secret webhook Anda akan disimpan dengan aman di Secret Manager. Anda dapat melihat dan mengelola secret di halaman Secret Manager.

gcloud

Untuk menghubungkan host Pusat Data Bitbucket ke Cloud Build menggunakan perintah gcloud, Anda harus menjalankan perintah gcloud alpha builds enterprise-config bitbucket-data-center create di terminal. Tidak seperti menghubungkan host menggunakan konsolGoogle Cloud , Anda harus menyimpan token akses pribadi dan rahasia webhook secara manual di Secret Manager sebelum menjalankan perintah berikut:

gcloud alpha builds enterprise-config bitbucket-data-center create
    --name=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

Dengan:

  • CONFIG_NAME adalah nama konfigurasi Bitbucket Data Center Anda.
  • USERNAME adalah nama pengguna Pusat Data Bitbucket Anda.
  • HOST_URI adalah URI host instance Pusat Data Bitbucket Anda.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION adalah nama resource token akses admin Anda yang disimpan di Secret Manager. Format yang diharapkan untuk secret yang disimpan di Secret Manager adalah projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Anda dapat menentukan latest sebagai versi yang akan digunakan untuk menggunakan versi terbaru dari secret Anda. Hal ini berlaku untuk setiap resource yang disimpan di Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION adalah nama resource token akses baca Anda yang disimpan di Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION adalah nama resource dari secret webhook Anda yang disimpan di Secret Manager.
  • API_KEY adalah kunci API Google Cloud .
  • Opsional: PEERED_NETWORK adalah jaringan VPC yang akan dihubungkan untuk instance Bitbucket Data Center lokal Anda. Untuk mempelajari lebih lanjut, lihat Membangun repositori dari Pusat Data Bitbucket di jaringan pribadi.

  • Opsional: PEERED_NETWORK_IP_RANGE adalah rentang IP internal yang dapat ditetapkan ke VM dalam rentang yang dialokasikan jaringan yang di-peering.

  • SSL_CA_FILE adalah jalur ke file lokal yang berisi sertifikat SSL Anda untuk digunakan dalam permintaan ke Bitbucket Data Center. Sertifikat harus dalam format PEM.

API

Untuk menghubungkan host Bitbucket Data Center ke Cloud Build menggunakan API, gunakan template JSON berikut. Tidak seperti menghubungkan host menggunakan konsol Google Cloud , Anda harus menyimpan token akses pribadi dan rahasia webhook secara manual di Secret Manager sebelum memanggil 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"
}

Dengan:

  • HOST_URI adalah URI host instance Pusat Data Bitbucket Anda.
  • USERNAME adalah nama pengguna Pusat Data Bitbucket Anda.
  • API_KEY adalah kunci API Google Cloud .
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION adalah nama resource token akses admin Anda yang disimpan di Secret Manager. Anda mungkin perlu memberikan peran Secret Manager Secret Accessor ke agen layanan Cloud Build Anda, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Untuk mempelajari lebih lanjut, lihat Memberikan peran Secret Manager ke akun layanan Anda.

  • READ_ACCESS_TOKEN_SECRET_VERSION adalah nama resource token akses baca Anda yang disimpan di Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION adalah nama resource secret webhook Anda yang disimpan di Secret Manager.

  • Opsional: PEERED_NETWORK adalah jaringan VPC yang akan di-peering untuk instance Bitbucket Data Center lokal Anda.

    Anda dapat menentukan rentang menggunakan notasi perutean Classless Inter-Domain Routing (CIDR) dalam format STARTING_IP/SUBNET_PREFIX_SIZE. Misalnya, 192.0.2.0/24 memiliki panjang awalan 24. 24 bit pertama rentang IP digunakan sebagai subnet mask (192.0.2.0), sedangkan kemungkinan alamat host berkisar dari 192.0.2.0 hingga 192.0.2.225.

  • Opsional: PEERED_NETWORK_IP_RANGE adalah rentang IP internal yang dapat ditetapkan ke VM dalam rentang yang dialokasikan jaringan yang di-peering.

  • Opsional: SSL_CERTIFICATE adalah sertifikat SSL yang digunakan untuk instance Bitbucket Data Center lokal Anda.

Masukkan perintah curl berikut di terminal Anda:

  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=CONFIG_NAME -d @config.json

Dengan:

  • PROJECT_ID adalah Google Cloud project ID Anda.
  • REGION adalah wilayah yang terkait dengan konfigurasi Pusat Data Bitbucket Anda.
  • CONFIG_NAME adalah nama konfigurasi Pusat Data Bitbucket Anda.

Jika berhasil, isi respons memuat instance Operation yang baru dibuat.

Masukkan perintah curl berikut di terminal Anda:

  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

Dengan:

  • PROJECT_NUMBER adalah nomor project Google Cloud Anda.
  • PROJECT_ID adalah Google Cloud project ID Anda.
  • REGION adalah wilayah yang terkait dengan konfigurasi Pusat Data Bitbucket Anda.
  • OPERATION_ID adalah ID operasi pembuatan konfigurasi Pusat Data Bitbucket Anda.

Anda mungkin perlu terus menjalankan perintah GetOperation API hingga respons berisi done: true, yang menunjukkan bahwa operasi telah selesai. Jika konfigurasi Bitbucket Data Center berhasil dibuat, Anda dapat melihat konfigurasi di kolom response.value. Jika tidak, lihat kolom error untuk laporan error mendetail.

Mengganti token akses Pusat Data Bitbucket yang lama atau sudah tidak berlaku

Jika token akses Pusat Data Bitbucket Anda berakhir, koneksi host Cloud Build Anda akan terputus dari repositori Pusat Data Bitbucket-nya. Akibatnya, Anda akan melihat error dalam situasi berikut:

  • Saat Anda mencoba menautkan koneksi Cloud Build repositori Bitbucket Data Center, pesan Failed to fetch repositories to link. Check that Cloud Build is still authorized to access data from the selected connection akan muncul.

  • Di halaman Pemicu, saat Anda mengklik Jalankan, halaman Jalankan pemicu akan terbuka dan menampilkan pesan Failed to list branches. You can still enter one manually

Untuk mengganti token lama atau yang sudah habis masa berlakunya untuk koneksi Anda, lakukan hal berikut:

  1. Temukan rahasia yang terkait dengan koneksi host Anda:

    1. Jalankan perintah berikut:

      gcloud builds connections describe CONNECTION_PATH --region=REGION
      

      Dengan:

      • CONNECTION_PATH adalah jalur koneksi host Bitbucket Data Center Anda di Cloud Build, dalam format projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME.
      • REGION adalah region untuk koneksi Anda.
    2. Di output perintah, cari nilai kolom token pengguna Anda. readAuthorizerCredential.userTokenSecretVersion menampilkan nama Secret Manager untuk token Read, dan authorizerCredential.userTokenSecretVersion menampilkan nama Secret Manager untuk token Admin. Nama ini disimpan sebagai secret di Secret Manager.

  2. Ganti setiap token akses di Pusat Data Bitbucket:

    1. Buka repositori Pusat Data Bitbucket yang terhubung ke koneksi host Cloud Build Anda.

    2. Ikuti petunjuk dalam dokumentasi Bitbucket untuk mengganti token akses. Saat Anda merotasi token, Bitbucket Data Center akan membuat token baru dengan kredensial baru dan membatalkan validasi token versi sebelumnya. Token yang dirotasi memiliki izin dan cakupan yang sama dengan token asli.

    3. Salin ID token yang dirotasi.

  3. Buat versi rahasia baru untuk setiap token:

    1. Buka halaman Secret Manager di konsol Google Cloud :

      Buka halaman Secret Manager

    2. Untuk setiap token yang Anda ganti, temukan nama rahasia yang Anda identifikasi di Langkah 1, lalu klik Actions, kemudian klik Add new version.

    3. Di jendela Add new version, masukkan ID token yang dirotasi, lalu klik Add new version.

Untuk mengetahui informasi selengkapnya, lihat Token akses dan Meningkatkan keamanan di Bitbucket: Memperkenalkan masa berlaku untuk token akses dalam dokumentasi Bitbucket Data Center.

Langkah berikutnya