Men-deploy infrastruktur menggunakan Infrastructure Manager

Halaman ini menjelaskan cara menggunakan Infrastructure Manager untuk menyediakan serangkaian resourceGoogle Cloud yang ditentukan dalam konfigurasi Terraform.

Untuk melihat pratinjau deployment tanpa menyediakan resource, lihat Melihat pratinjau deployment.

Anda dapat men-deploy ke beberapa project dan beberapa lokasi. Akun layanan memerlukan izin untuk resource dan project tempat resource di-deploy. Lihat Kontrol akses dengan IAM untuk mengetahui daftar izin.

Halaman ini mengasumsikan bahwa Anda sudah memahami Terraform. Untuk mengetahui detailnya, lihat Terraform dan Infra Manager.

Sebelum memulai

  1. Aktifkan Infra Manager.
  2. Pastikan Anda memiliki izin IAM yang diperlukan untuk membuat deployment: roles/config.admin.
  3. Pastikan Anda memiliki akun layanan dengan izin yang diperlukan. Untuk mengetahui detailnya, lihat Mengonfigurasi akun layanan.
  4. Identifikasi konfigurasi Terraform yang akan di-deploy. Pastikan konfigurasi Terraform ini mematuhi batasan. Secara khusus, pastikan konfigurasi tidak berisi data sensitif.
  5. Jika Anda ingin melihat pratinjau deployment sebelum mengonfigurasi resource, lihat Melihat pratinjau deployment.
  6. Konfirmasi kuota organisasi Anda untuk produk yang terkait dengan infrastruktur yang Anda inginkan. Anda mungkin akan mengalami error deployment jika infrastruktur yang Anda inginkan melebihi kuota organisasi untuk produk yang digunakan deployment Anda. Lihat kuota dan batas untuk mengetahui informasi selengkapnya.

  7. Infra Manager menggunakan Cloud Build untuk membuat, mengupdate, atau melihat pratinjau deployment. Pembuatan dan pembaruan deployment memiliki waktu tunggu dua jam, sedangkan pratinjau deployment memiliki waktu tunggu satu jam.

    Jika Anda mengelola beberapa resource dalam satu konfigurasi yang melebihi batas ini, Anda harus membagi konfigurasi menjadi beberapa deployment.

Memberikan izin khusus untuk konfigurasi

Untuk men-deploy resource Google Cloud yang ditentukan dalam konfigurasi Terraform, akun layanan yang Anda gunakan untuk memanggil Infra Manager memerlukan izin yang diperlukan dan khusus untuk resource yang Anda deploy.

Izin ini merupakan tambahan dari izin yang diperlukan untuk menggunakan layanan Infra Manager.

Untuk mengetahui detail tentang cara memberikan izin untuk resource Google Cloud dan memastikan Anda memiliki akses ke project yang diperlukan, lihat Mengonfigurasi akun layanan.

Menghubungkan repositori dan host Git pribadi Anda ke Cloud Build

Jika Anda men-deploy konfigurasi Terraform dari repositori Git pribadi, Anda perlu menghubungkan host dan repositori Git ke Cloud Build.

Membuat deployment menggunakan konfigurasi Terraform

Anda dapat menggunakan Infra Manager untuk men-deploy konfigurasi Terraform dengan beberapa cara:

  • Direkomendasikan: Gunakan Infra Manager di konsol Google Cloud untuk memilih sumber, melihat detail deployment, melihat pratinjau, dan men-deploy konfigurasi Terraform. Anda dapat menggunakan Infra Manager dari konsol Google Cloud untuk men-deploy dari bucket Cloud Storage dan repositori Git.
  • Gunakan Infra Manager di Google Cloud CLI untuk men-deploy konfigurasi Terraform dari:
    • Bucket Cloud Storage
    • Repositori Git
    • Direktori lokal

Lihat Modul dan blueprint Terraform untuk Google Cloud untuk mengetahui contoh dan template konfigurasi Terraform yang dapat Anda gunakan dengan Infra Manager.

Pilih tab dengan alur kerja yang Anda pilih untuk mengetahui informasi selengkapnya tentang cara membuat deployment.

Konsol

Bagian ini menjelaskan cara men-deploy konfigurasi Terraform menggunakan Infra Manager di konsol Google Cloud .

  1. Di konsol Google Cloud , buka halaman Infra Manager.

    Buka Infra Manager

  2. Klik Create untuk membuat deployment baru.
  3. Di halaman Deployment details, tetapkan parameter awal untuk deployment Anda.

    Ganti:

    • ID Deployment: Di kolom ID Deployment, masukkan nama deskriptif untuk deployment Anda. Lihat dokumentasi Nama deployment untuk mengetahui detail selengkapnya tentang batasan penamaan.
    • Region: Pilih wilayah yang didukung dari drop-down.
    • Terraform version: Pilih versi Terraform yang didukung dari drop-down. Daftar versi Terraform yang tersedia akan diisi secara otomatis berdasarkan Region yang Anda pilih. Secara default, versi paket gratis terbaru yang didukung (1.5.7) akan dipilih. Memilih versi berbayar (seperti 1.16.5) akan dikenai biaya deployment dan pengelolaan. Untuk mengetahui informasi selengkapnya, lihat Versi Terraform yang didukung.
    • Service account: Pilih akun layanan yang ada atau buat akun layanan baru. Infra Manager memvalidasi izin berdasarkan infrastruktur yang diuraikan dalam konfigurasi Terraform Anda secara otomatis. Lihat Mengonfigurasi akun layanan untuk mengetahui informasi selengkapnya tentang cara menggunakan akun layanan dan Infra Manager.
    • Source of Terraform configuration: Klik tombol untuk memilih Git atau Cloud Storage sebagai sumber untuk konfigurasi Terraform yang ingin Anda deploy.
      • Untuk Git, ganti:
        • Repositori Git: Berikan URL, cabang, atau tag repositori Git publik atau pribadi.
          Jika Anda menyediakan repositori Git pribadi, pastikan Anda telah menghubungkan host dan repositori ke Cloud Build.
        • Opsional: Direktori Git: Direktori dalam repositori Git yang memiliki konfigurasi Terraform.
        • Opsional: Referensi Git: Referensi Git konfigurasi. Jika Anda tidak menentukan referensi, cabang yang dikonfigurasi default repositori Git akan digunakan.
      • Untuk bucket Cloud Storage, ganti:
        • Source: Nama bucket penyimpanan tempat konfigurasi disimpan.

    Klik Lanjutkan.

  4. Di halaman Terraform details, gunakan kolom Key dan Value untuk mengisi daftar nilai input dalam konfigurasi Terraform Anda.

    Nilai dapat berupa nilai input apa pun dalam konfigurasi Terraform, termasuk nilai yang tidak ditentukan secara default. Jika semua nilai input Anda ditentukan secara default dalam konfigurasi Terraform, nilai ini bersifat opsional. Klik Lanjutkan.

  5. Di halaman Advanced details, tetapkan parameter opsional untuk deployment Anda.

    Ganti:

    • Label: Label dan anotasi adalah key-value pair teks bentuk bebas. Anda dapat menggunakannya untuk melampirkan informasi arbitrer yang terkait dengan resource. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Anotasi.
    • Worker pool: Resource worker pool tempat tugas Cloud Build akan dijalankan. Format worker pool adalah projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • Bucket Cloud Storage Artefak: Lokasi log dan artefak Cloud Build di Cloud Storage. Format jalurnya adalah gs://{bucket}/{folder}.
  6. Klik Create deployment untuk memulai deployment konfigurasi Terraform Anda. Di halaman Deployments, deployment Anda akan ditambahkan ke daftar beserta Status-nya.
  7. Untuk mengetahui detail selengkapnya tentang deployment, pilih deployment Anda untuk membuka halaman Deployment details.
  8. Berhasil! Anda telah men-deploy konfigurasi Terraform menggunakan Infra Manager.

gcloud CLI

Bagian ini menjelaskan cara men-deploy konfigurasi Terraform yang disimpan di bucket Cloud Storage. Bucket penyimpanan memungkinkan Anda mengontrol akses ke konfigurasi.

  1. Pastikan konfigurasi Terraform berada di bucket Cloud Storage. Lihat Mengupload konfigurasi ke bucket penyimpanan untuk mengetahui detail selengkapnya.
  2. Jika bucket penyimpanan berada dalam project yang berbeda dengan project tempat Anda menjalankan Infra Manager, Anda harus memastikan bahwa akun layanan Infra Manager memiliki izin baca untuk bucket tersebut. Lihat Mengonfigurasi akun layanan untuk mengetahui detail selengkapnya.

    Jika bucket penyimpanan berada dalam project yang sama dengan Infra Manager, izin baca ke bucket sudah diaktifkan.

  3. Men-deploy konfigurasi Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Ganti:
  • PROJECT_ID: project ID tempat Infra Manager berjalan.
  • LOCATION: lokasi tempat Infra Manager berjalan. Lihat Lokasi Infra Manager untuk mengetahui daftar lokasi yang valid.
  • DEPLOYMENT_ID: ID deployment yang Anda tentukan. Lihat Nama deployment untuk mengetahui detail tentang batasan pada ID deployment.
  • SERVICE_ACCOUNT_PROJECT_ID adalah project ID akun layanan. Biasanya, project ini sama dengan project tempat Infra Manager berjalan.
  • SERVICE_ACCOUNT: nama akun layanan yang Anda gunakan untuk memanggil Infra Manager.
  • BUCKET_NAME: nama bucket penyimpanan tempat konfigurasi disimpan.
  • OBJECT_NAME: nama objek file konfigurasi. Objek ini dapat berupa direktori atau file zip, tetapi bukan file Terraform. Jika menggunakan pembuatan versi objek, Anda juga dapat menentukan nomor pembuatan objek. Untuk mengetahui detail selengkapnya, lihat Menggunakan objek berversi.

    Jika bucket penyimpanan adalah jalur root konfigurasi Terraform, OBJECT_NAME bersifat opsional.

  • Opsional: QUOTA_VALIDATION: nilai yang menentukan apakah validasi kuota untuk resource dalam file konfigurasi Terraform diaktifkan atau diterapkan saat Anda membuat deployment. Nilai yang memungkinkan mencakup:
    • ENABLED: Mengaktifkan validasi kuota komputasi untuk resource dalam file konfigurasi Terraform. Memberikan visibilitas pada resource dengan kuota yang tidak memadai.
    • ENFORCED: Menerapkan validasi kuota sehingga deployment Anda akan gagal jika kuota yang tersedia tidak mencukupi untuk infrastruktur yang ditentukan dalam file konfigurasi Terraform Anda.

    Jika QUOTA_VALIDATION tidak ditentukan, validasi kuota pada file konfigurasi Terraform akan dinonaktifkan. Ini adalah nilai defaultnya. Validasi kuota berlaku pada resource Google Cloud terbatas. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

  • INPUT_1_NAME dan INPUT_2_NAME: nilai input apa pun dalam konfigurasi Terraform, termasuk yang tidak ditentukan secara default. Misalnya, Anda dapat menentukan project tempat Anda men-deploy resource sebagai project_id=my-project.

    Jika semua nilai input ditentukan secara default dalam konfigurasi, flag ini bersifat opsional.

  • Opsional:TERRAFORM_VERSION: versi Terraform untuk Infra Manager yang akan digunakan untuk membuat deployment. Lihat versi Terraform yang didukung untuk mengetahui daftar versi yang didukung. Jika Anda menghapus flag opsional ini, versi paket gratis Terraform terbaru yang didukung (1.5.7) akan digunakan secara default. Untuk menggunakan versi berbayar (seperti 1.16.5), Anda harus menentukan versinya secara eksplisit.
  • Opsional: ANNOTATION_KEY dan ANNOTATION_VALUE mewakili key-value pair teks bentuk bebas yang dapat dilampirkan ke deployment Infra Manager Anda. Untuk mengetahui informasi selengkapnya tentang penggunaan dan batasan anotasi dan label, lihat Anotasi dan label.
  • Opsional: PROVIDER_SOURCE: Menentukan penyedia Terraform yang digunakan deployment untuk Google Cloud . Tetapkan ke SERVICE_MAINTAINED untuk menggunakan penyedia Terraform yang dikelola Infra Manager. Hapus kolom ini untuk menggunakan penyedia Terraform yang dikelola HashiCorp. Untuk mengetahui informasi selengkapnya, lihat Menggunakan penyedia Terraform untuk Google Cloud.

gcloud CLI

Bagian ini menjelaskan cara menggunakan konfigurasi Terraform yang disimpan di repositori Git.

  1. Pastikan Anda telah menginstal Git.
  2. Jika konfigurasi Terraform Anda disimpan di repositori Git pribadi, pastikan host dan repositori Git Anda terhubung ke Cloud Build.
  3. Men-deploy konfigurasi Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Ganti:
  • PROJECT_ID: project ID tempat Infra Manager berjalan.
  • LOCATION: lokasi tempat Infra Manager berjalan. Lihat Lokasi Infra Manager untuk mengetahui daftar lokasi yang valid.
  • DEPLOYMENT_ID: ID deployment yang Anda tentukan. Lihat Nama deployment untuk mengetahui detail tentang batasan pada ID deployment.
  • SERVICE_ACCOUNT_PROJECT_ID adalah project ID akun layanan. Biasanya, project ini sama dengan project tempat Infra Manager berjalan.
  • SERVICE_ACCOUNT: nama akun layanan yang Anda gunakan untuk memanggil Infra Manager.
  • GIT_REPO: repositori Git.
  • DIRECTORY: direktori yang memiliki konfigurasi Terraform.
  • Opsional: REF: referensi Git dari konfigurasi. Referensi bersifat opsional. Jika Anda tidak menentukan referensi, cabang yang dikonfigurasi secara default di repositori Git akan digunakan.
  • Opsional: QUOTA_VALIDATION: nilai yang menentukan apakah validasi kuota untuk resource dalam file konfigurasi Terraform diaktifkan atau diterapkan saat Anda membuat deployment. Nilai yang memungkinkan mencakup:
    • ENABLED: Mengaktifkan validasi kuota komputasi untuk resource dalam file konfigurasi Terraform. Memberikan visibilitas pada resource dengan kuota yang tidak memadai.
    • ENFORCED: Menerapkan validasi kuota sehingga deployment Anda akan gagal jika kuota yang tersedia tidak mencukupi untuk infrastruktur yang ditentukan dalam file konfigurasi Terraform Anda.

    Jika QUOTA_VALIDATION tidak ditentukan, validasi kuota pada file konfigurasi Terraform akan dinonaktifkan. Ini adalah nilai defaultnya. Validasi kuota berlaku pada resource Google Cloud terbatas. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

  • INPUT_1_NAME dan INPUT_2_NAME: nilai input apa pun dalam konfigurasi Terraform, termasuk yang tidak ditentukan secara default. Misalnya, Anda dapat menentukan project tempat Anda men-deploy resource sebagai project_id=my-project.

    Jika semua nilai input ditentukan secara default dalam konfigurasi, flag ini bersifat opsional.

  • Opsional:TERRAFORM_VERSION: versi Terraform untuk Infra Manager yang akan digunakan untuk membuat deployment. Lihat versi Terraform yang didukung untuk mengetahui daftar versi yang didukung. Jika Anda menghapus flag opsional ini, versi paket gratis Terraform terbaru yang didukung (1.5.7) akan digunakan secara default. Untuk menggunakan versi berbayar (seperti 1.16.5), Anda harus menentukan versinya secara eksplisit.
  • Opsional: ANNOTATION_KEY dan ANNOTATION_VALUE mewakili key-value pair teks bentuk bebas yang dapat dilampirkan ke deployment Infra Manager Anda. Untuk mengetahui informasi selengkapnya tentang penggunaan dan batasan anotasi dan label, lihat Anotasi dan label.
  • Opsional: PROVIDER_SOURCE: Menentukan penyedia Terraform yang digunakan deployment untuk Google Cloud . Tetapkan ke SERVICE_MAINTAINED untuk menggunakan penyedia Terraform yang dikelola Infra Manager. Hapus kolom ini untuk menggunakan penyedia Terraform yang dikelola HashiCorp. Untuk mengetahui informasi selengkapnya, lihat Menggunakan penyedia Terraform untuk Google Cloud.

gcloud CLI

Bagian ini menjelaskan cara menggunakan konfigurasi Terraform yang disimpan di komputer lokal Anda.

  1. Jika menggunakan Cloud Shell, Anda harus mengupload konfigurasi ke Cloud Shell. Untuk mengetahui detailnya, lihat Mengelola file dengan Cloud Shell.
  2. Men-deploy konfigurasi Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Ganti:
  • PROJECT_ID: project ID tempat Infra Manager berjalan.
  • LOCATION: lokasi tempat Infra Manager berjalan. Lihat Lokasi Infra Manager untuk mengetahui daftar lokasi yang valid.
  • DEPLOYMENT_ID: ID deployment yang Anda tentukan. Lihat Nama deployment untuk mengetahui detail tentang batasan pada ID deployment.
  • SERVICE_ACCOUNT_PROJECT_ID adalah project ID akun layanan. Biasanya, project ini sama dengan project tempat Infra Manager berjalan.
  • SERVICE_ACCOUNT: nama akun layanan yang Anda gunakan untuk memanggil Infra Manager.
  • LOCAL_DIRECTORY: direktori lokal yang menyimpan konfigurasi Terraform. Jika Anda menggunakan Cloud Shell, ini adalah direktori di Cloud Shell tempat konfigurasi disimpan.
  • Opsional: QUOTA_VALIDATION: nilai yang menentukan apakah validasi kuota untuk resource dalam file konfigurasi Terraform diaktifkan atau diterapkan saat Anda membuat deployment. Nilai yang memungkinkan mencakup:
    • ENABLED: Mengaktifkan validasi kuota komputasi untuk resource dalam file konfigurasi Terraform. Memberikan visibilitas pada resource dengan kuota yang tidak memadai.
    • ENFORCED: Menerapkan validasi kuota sehingga deployment Anda akan gagal jika kuota yang tersedia tidak mencukupi untuk infrastruktur yang ditentukan dalam file konfigurasi Terraform Anda.

    Jika QUOTA_VALIDATION tidak ditentukan, validasi kuota pada file konfigurasi Terraform akan dinonaktifkan. Ini adalah nilai defaultnya. Validasi kuota berlaku pada resource Google Cloud terbatas. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

  • INPUT_1_NAME dan INPUT_2_NAME: nilai input apa pun dalam konfigurasi Terraform, termasuk yang tidak ditentukan secara default. Misalnya, Anda dapat menentukan project tempat Anda men-deploy resource sebagai project_id=my-project.

    Jika semua nilai input ditentukan secara default dalam konfigurasi, flag ini bersifat opsional.

  • Opsional:TERRAFORM_VERSION: versi Terraform untuk Infra Manager yang akan digunakan untuk membuat deployment. Lihat versi Terraform yang didukung untuk mengetahui daftar versi yang didukung. Jika Anda menghapus flag opsional ini, versi paket gratis Terraform terbaru yang didukung (1.5.7) akan digunakan secara default. Untuk menggunakan versi berbayar (seperti 1.16.5), Anda harus menentukan versinya secara eksplisit.
  • Opsional: ANNOTATION_KEY dan ANNOTATION_VALUE mewakili key-value pair teks bentuk bebas yang dapat dilampirkan ke deployment Infra Manager Anda. Untuk mengetahui informasi selengkapnya tentang penggunaan dan batasan anotasi dan label, lihat Anotasi dan label.
  • Opsional: PROVIDER_SOURCE: Menentukan penyedia Terraform yang digunakan deployment untuk Google Cloud . Tetapkan ke SERVICE_MAINTAINED untuk menggunakan penyedia Terraform yang dikelola Infra Manager. Hapus kolom ini untuk menggunakan penyedia Terraform yang dikelola HashiCorp. Untuk mengetahui informasi selengkapnya, lihat Menggunakan penyedia Terraform untuk Google Cloud.

Langkah berikutnya