Membuat modul deployment Terraform untuk VM

Halaman ini menjelaskan cara membuat virtual machine (VM) dan modul deployment Terraform untuk VM.

Membuat Image VM berlisensi

  1. Untuk memastikan bahwa VM pengembangan tidak terpengaruh, buat salinan disk yang digunakan di VM dengan menjalankan perintah gcloud berikut:
    gcloud compute disks create CLONE_DISK \ --description="cloned disk" \ --source-disk=projects/PROJECT/zones/ZONE/disks/SOURCE_VM_DISK
  2. Buat clone VM. Untuk mengetahui informasinya, lihat Membuat VM yang serupa dengan VM yang ada.
  3. Di bagian Advanced options, lampirkan disk yang di-clone.
  4. Membuat VM.
  5. Pastikan server berjalan untuk VM ini. Skrip startup memastikan bahwa VM berjalan.
  6. Hentikan dan hapus layanan konektor di docker.
  7. Hapus direktori utama dan file lain yang tidak diperlukan untuk menjalankan server. Disk yang sama akan digunakan untuk membuat image VM dan akan dapat diakses oleh pelanggan nanti. VM ini hanya boleh memiliki library yang diperlukan untuk menjalankan layanan.
  8. Edit VM dan pilih aturan penghapusan ke Keep disk
  9. Menghapus VM ini.
  10. Untuk membuat image berlisensi, dapatkan lisensi dari portal produsen. Buka Producer Portal
  11. Buat produk Virtual Machine baru. Buka bagian Deployment Package dan salin lisensi VM.
  12. Untuk membuat image VM berlisensi, jalankan perintah berikut:
  13. gcloud compute images create VM_IMAGE_NAME \
     --project PUBLIC_PROJECT_NAME \
     --source-disk projects/DEV_PROJECT_NAME/zones/ZONE/disks/SOURCE_VM_DISK \
     --licenses LICENSE \
     --description VM_IMAGE_DESCRIPTION

    Untuk mengetahui informasi selengkapnya, lihat Mem-build VM.

Membuat modul deployment terraform

Marketplace menyediakan Alat Autogen untuk membuat modul terraform untuk deployment image VM di Marketplace.

Alat ini menggunakan Definisi proto Autogen untuk membuat deployment. Untuk informasi selengkapnya, lihat Contoh konfigurasi.

  1. Tambahkan detail solusi Anda:
  2. solutionInfo:
      name: 
      packagedSoftwareGroups:
        - type: SOFTWARE_GROUP_OS
          components:
            - name: Ubuntu
              version: 16.04 LTS
        - components:
            - name: Apache
              version: 2.4.23
  3. Untuk konektor, buat modul dengan VM. Masukkan nama project, nama image VM, dan label untuk image di project publik Anda.
  4. Gunakan n2d-standard-2 sebagai jenis mesin default dengan CPU minimum 2 dan RAM 8 Gb. N2d-standard optimal untuk server web dengan traffic sedang. VM default dapat ditetapkan dengan 2 core. Jika pelanggan mengharapkan traffic yang lebih tinggi, hal ini dapat diubah selama pembuatan VM dari Marketplace. Untuk mengetahui informasi tentang harga untuk berbagai jenis mesin, lihat Harga instance VM.
        machineType:
          # Check http://cloud.google.com/compute/docs/machine-types for all available types
          defaultMachineType:
            gceMachineType: n2d-standard-2
          # Minimum CPU and memory constraints for the machine type to run your solution properly
          minimum:
            cpu: 2
            ramGb: 8
  5. Gunakan pd-standard sebagai jenis disk default.
        bootDisk:
          diskType:
            defaultType: pd-standard
  6. Tambahkan skrip startup ke konfigurasi autogen. Buat string skrip startup dan tambahkan di bashScriptContent.
    gceStartupScript:
       bashScriptContent: 
  7. Tentukan kolom input yang akan diambil sebagai input dari pelanggan selama pembuatan VM.
        deployInput:
          sections:
            # The place int he Deployment Manager config that this section will appear. More details in deployment_package_autogen_spec.proto
            - placement: CUSTOM_TOP
              name: CONNECTOR_SETTINGS
              title: Connectors settings
              description: Connectors settings
              tooltip: Setting with which connector VM will be running
              # List of input fields that this section has
              fields:
                - required: false
                  name: TEST_DATA
                  title: Test Data
                  description: Test data
                  tooltip: random data for testing
                  string_box: {}
                - required: false
                  name: PORT
                  title: Port to run service
                  tooltip: Port to run connector service
                  string_box: {}
                - required: false
                  name: LOG_LEVEL
                  title: Log level
                  description: Log level for the web service. Allowed values are DEBUG, INFO, WARNING, ERROR. Default is INFO
                  string_box: {}

    Biarkan penempatan sebagai CUSTOM_TOP dan beri nama CONNECTOR_SETTINGS.

    Tentukan kolom, dan jenis input yang diperlukan untuk kolom tersebut. Dalam contoh ini, kolom Test Data dan Port to run service muncul untuk pelanggan konektor Marketplace.

  8. Tentukan item metadata Compute Engine. Saat menentukan metadata VM. Petakan nama kolom input ke kunci metadata.
        gce_metadata_items:
          - key: CONNECTOR_ENV_PORT
            value_from_deploy_input_field: PORT
          - key: CONNECTOR_ENV_TEST_DATA
            value_from_deploy_input_field: TEST_DATA
    - key: CONNECTOR_ENV_LOG_LEVEL
            value_from_deploy_input_field: LOG_LEVEL
  9. Tambahkan detail langkah yang akan ditampilkan kepada pelanggan setelah deployment.
        postDeploy:
          # List of suggested action items for users, after deployment is successful
          actionItems:
            - heading: Create the Private service attachment
              description: Now the connector service is running on the VM, please create the PSC service attachment to create the connection. Follow https://cloud.google.com/integration-connectors/docs/configure-psc for the detailed guide.
            - heading: Create the connection
              description: After creating the connectors endpoint attachment, use the endpoint attachment to create a connection to the partner connector.
  10. Untuk menyiapkan autogen, jalankan perintah berikut:
    alias autogen='docker run \
      --rm \
      --workdir /mounted \
      --mount type=bind,source="$(pwd)",target=/mounted \
      --user $(id -u):$(id -g) \
      gcr.io/cloud-Marketplace-tools/dm/autogen'
    
    autogen --help
  11. Untuk membuat modul terraform, jalankan perintah berikut:
    mkdir solution_folder
    
    autogen \
      --input_type YAML \
      --single_input example-config/solution.yaml \
      --output_type PACKAGE \
      --output solution_folder

    Folder solution_folder berisi modul terraform. Modul ini akan digunakan saat memublikasikan produk di Marketplace.

Langkah selanjutnya