Men-deploy infrastruktur menggunakan Infrastructure Manager

Halaman ini menjelaskan cara menggunakan Infrastructure Manager untuk menyediakan kumpulan 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 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.

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 yang 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 Git pribadi dan host ke Cloud Build

Jika men-deploy konfigurasi Terraform dari repositori Git pribadi, Anda harus 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, repositori Git, dan dari direktori lokal.
  • 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 konfigurasi Terraform template 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 Detail deployment, tetapkan parameter awal untuk deployment Anda.

    Ganti:

    • Deployment ID: Di kolom Deployment ID, masukkan nama deskriptif untuk deployment Anda. Lihat dokumentasi Nama deployment untuk mengetahui detail selengkapnya tentang batasan penamaan.
    • Region: Pilih wilayah yang didukung dari menu drop-down.
    • Versi Terraform: Pilih versi Terraform yang didukung dari menu drop-down. Daftar versi Terraform yang tersedia diisi secara otomatis berdasarkan Region yang Anda pilih.
    • Akun layanan: Pilih akun layanan yang ada atau buat akun 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.
    • Sumber konfigurasi Terraform: 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 memberikan 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 Cloud Storage bucket, ganti:
        • Source: Nama bucket penyimpanan tempat konfigurasi disimpan.

    Klik Lanjutkan.

  4. Di halaman Detail Terraform , gunakan kolom Kunci dan Nilai untuk mengisi daftar nilai input dalam konfigurasi Terraform Anda.

    Nilainya 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 Detail lanjutan, tetapkan parameter opsional untuk deployment Anda.

    Ganti:

    • Label: Label dan anotasi adalah pasangan nilai kunci dari teks bentuk bebas. Anda dapat menggunakannya untuk melampirkan informasi arbitrer yang terkait dengan resource. Untuk informasi selengkapnya, lihat dokumentasi Anotasi.
    • Kumpulan pekerja: Resource kumpulan pekerja tempat tugas Cloud Build akan dijalankan. Format kumpulan pekerja 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 Buat deployment untuk memulai deployment konfigurasi Terraform Anda. Di halaman Deployment, deployment Anda akan ditambahkan ke daftar beserta Status-nya.
  7. Untuk mengetahui detail selengkapnya tentang deployment, pilih deployment untuk membuka halaman Detail deployment.
  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 di 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. 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 \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
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 dengan versi.

    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 tidak ada kuota yang memadai untuk infrastruktur yang ditentukan dalam file konfigurasi Terraform.

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

  • INPUT_1_NAME dan INPUT_2_NAME: nilai input apa pun dalam konfigurasi Terraform, termasuk nilai 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 tanda opsional ini, Terraform versi terbaru yang didukung akan digunakan.
  • 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.

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. 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 \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
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 konfigurasi. Referensi bersifat opsional. Jika Anda tidak menentukan referensi, cabang yang dikonfigurasi default 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 tidak ada kuota yang memadai untuk infrastruktur yang ditentukan dalam file konfigurasi Terraform.

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

  • INPUT_1_NAME dan INPUT_2_NAME: nilai input apa pun dalam konfigurasi Terraform, termasuk nilai 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 tanda opsional ini, Terraform versi terbaru yang didukung akan digunakan.
  • 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.

gcloud CLI

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

  1. Jika menggunakan Cloud Shell, Anda perlu mengupload konfigurasi ke Cloud Shell. Untuk mengetahui detailnya, lihat Mengelola file dengan Cloud Shell.
  2. 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 \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
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 tidak ada kuota yang memadai untuk infrastruktur yang ditentukan dalam file konfigurasi Terraform.

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

  • INPUT_1_NAME dan INPUT_2_NAME: nilai input apa pun dalam konfigurasi Terraform, termasuk nilai 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, Terraform versi terbaru yang didukung akan digunakan.
  • Opsional: ANNOTATION_KEY dan ANNOTATION_VALUE mewakili pasangan nilai kunci 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.

Langkah selanjutnya