Mem-build image VM menggunakan Packer

Packer adalah alat open source untuk membuat image Virtual Machine (VM) yang identik untuk beberapa platform dari satu konfigurasi sumber. Halaman ini menjelaskan cara menggunakan Packer dan Cloud Build untuk membuat image VM yang akan digunakan di Compute Engine.

Sebelum memulai

Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memahami Packer. Selain itu:

  • Siapkan kode sumber Anda termasuk template Packer.
  • Jika Anda ingin menggunakan perintah gcloud di halaman ini, instal Google Cloud CLI.
  • Mengaktifkan API berikut:

    gcloud services enable sourcerepo.googleapis.com
    gcloud services enable compute.googleapis.com
    gcloud services enable servicemanagement.googleapis.com
    gcloud services enable storage-api.googleapis.com
    

Izin IAM yang diperlukan

Membuat image builder Packer

Cloud Build menyediakan image builder komunitas Packer yang dapat Anda gunakan untuk memanggil perintah packer di Cloud Build. Sebelum menggunakan builder ini dalam file konfigurasi Cloud Build, Anda harus mem-build image dan mengirimkannya ke Container Registry dalam project Anda:

  1. Clone repositori cloud-builders-community:

    git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
    
  2. Buka image builder Packer:

    cd cloud-builders-community/packer
    
  3. Kirim builder ke project Anda:

    gcloud builds submit .
    

Menggunakan builder Packer

  1. Pastikan Anda memiliki file packer.json beserta kode sumber.

  2. Di direktori root project, buat file konfigurasi build bernama cloudbuild.yaml atau cloudbuild.json.

  3. Dalam file konfigurasi build, tambahkan langkah build untuk memanggil perintah packer build:

    YAML

    steps:
    - name: 'gcr.io/[PROJECT_ID]/packer'
      args:
      - build
      - -var
      - image_name=[IMAGE_NAME]
      - -var
      - project_id=[PROJECT_ID]
      - -var
      - image_family=[IMAGE_FAMILY]
      - -var
      - image_zone=[IMAGE_ZONE]
      - packer.json
    

    JSON

    {
      "steps": [
       {
          "name": "gcr.io/[PROJECT_ID]/packer",
          "args": [
            "build",
            "-var",
            "image_name=[IMAGE_NAME]",
            "-var",
            "project_id=[PROJECT_ID]",
            "-var",
            "image_family=[IMAGE_FAMILY]",
            "-var",
            "image_zone=[IMAGE_ZONE]",
            "packer.json"
           ]
        }
       ]
    }
    

    Dengan keterangan:

    • [PROJECT_ID] adalah ID project Google Cloud Anda.
    • [IMAGE_NAME] adalah nama image VM yang Anda build.
    • [IMAGE_FAMILY] adalah kelompok image dari image VM.
    • [IMAGE_ZONE] adalah zona gambar.
  4. Mulai build menggunakan file konfigurasi build:

    gcloud builds submit --region=[REGION] --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
    

    Dengan keterangan:

    • [CONFIG_FILE_PATH] adalah jalur ke file konfigurasi build.
    • [SOURCE_DIRECTORY] adalah jalur atau URL ke kode sumber.
    • [REGION] adalah salah satu region build yang didukung.

    Jika Anda tidak menentukan [CONFIG_FILE_PATH] dan [SOURCE_DIRECTORY] dalam perintah gcloud builds submit, Cloud Build akan mengasumsikan bahwa file konfigurasi dan kode sumber berada di direktori kerja saat ini.

Setelah image di-build, Anda dapat melihatnya di halaman Image Compute Engine di konsol Google Cloud.

Langkah selanjutnya