Membuat Deployment menggunakan gcloud atau API

Halaman ini menjelaskan cara membuat deployment. Deployment adalah instansiasi kumpulan resource yang ditentukan dalam konfigurasi. Anda memberikan konfigurasi yang valid dalam permintaan untuk membuat deployment. Deployment dapat berisi sejumlah resource, di berbagai Google Cloud layanan. Saat Anda membuat deployment, Deployment Manager akan membuat semua resource yang dijelaskan di API masing-masing Google Cloud .

Sebelum memulai

  • Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line `gcloud`.
  • Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
  • Buat konfigurasi.

Membuat deployment

Saat membuat deployment, Anda membuat resource Deployment yang berisi kumpulan resource. Setiap resource ditentukan secara eksplisit dalam konfigurasi yang Anda berikan dalam permintaan.

gcloud

Dengan Google Cloud CLI, gunakan perintah deployments create:

gcloud deployment-manager deployments create my-first-deployment \
    --config vm.yaml

Flag --config adalah jalur relatif ke file konfigurasi YAML Anda.

Secara default, jika konfigurasi Anda menyertakan resource yang sudah ada di project Anda, resource tersebut akan diperoleh oleh deployment, dan dapat dikelola menggunakan deployment. Jika tidak ingin mendapatkan resource, Anda harus menggunakan opsi --create-policy, seperti dalam perintah gcloud beta berikut:

gcloud beta deployment-manager deployments create my-first-deployment \
    --config vm.yaml --create-policy CREATE

Untuk mengetahui informasi tentang kebijakan yang dapat Anda gunakan saat membuat deployment, lihat Menetapkan kebijakan untuk membuat resource.

Jika deployment berhasil dibuat, Anda bisa mendapatkan deskripsi deployment:

gcloud deployment-manager deployments describe my-first-deployment

API

Di API, buat insert() permintaan dengan konfigurasi yang disediakan secara inline, di isi permintaan:

POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments

{
 "name": "example-config-with-templates",
 "target": {
  "config": {
   "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
  }
 }
}

Jika mengimpor template, Anda juga harus menyediakan template tersebut sebagai bagian dari isi permintaan. Misalnya, permintaan API berikut memiliki target yang mengimpor satu template, yang diberi nama vm_template.jinja:

POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments

{
 "name": "my-example-config-with-templates-2",
 "target": {
  "config": {
    "content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n  type: vm_template.jinja"
  },
  "imports": [
   {
    "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
    "name": "vm_template.jinja"
   }
  ]
 }
}

Menetapkan kebijakan untuk membuat resource

Saat Anda membuat deployment baru, jika resource yang ingin Anda buat sudah ada di project Anda, resource tersebut akan diperoleh oleh deployment. Dalam kasus seperti itu, Deployment Manager tidak membuat resource baru. Jika tidak ingin mendapatkan resource yang ada, Anda harus menggunakan kebijakan CREATE untuk deployment Anda.

Anda dapat menggunakan kebijakan berikut untuk membuat resource:

  • CREATE_OR_ACQUIRE - [Default] Deployment Manager mendapatkan resource yang ada di project, atau membuat resource jika tidak ada. Untuk mendapatkan resource, Deployment Manager akan memeriksa konfigurasi Anda untuk mengetahui properti resource yang ingin Anda buat. Jika ada resource yang ada dengan properti yang sama, Deployment Manager akan mendapatkan resource tersebut sebagai bagian dari deployment Anda.

    Properti yang diperiksa oleh Deployment Manager bergantung pada jenis resource yang Anda buat, dan mungkin mencakup:

    • name resource
    • type resource
    • zone atau region resource, jika berlaku

    Properti adalah bagian dari URL untuk permintaan API GET untuk resource. Untuk melihat properti yang digunakan Deployment Manager untuk mendapatkan resource, lihat dokumentasi API untuk metode GET resource. Misalnya, untuk instance Compute Engine, URL permintaan untuk instances.get metode mencakup resourceId (name dalam konfigurasi Anda), zone, dan project.

  • CREATE - Deployment Manager membuat resource yang tidak ada. Jika salah satu resource dalam konfigurasi Anda sudah ada di project, deployment akan gagal.

  • ACQUIRE - Deployment Manager mendapatkan resource yang sudah ada, menggunakan kriteria yang sama dengan CREATE_OR_ACQUIRE.

    Gunakan kebijakan ACQUIRE jika Anda memiliki sejumlah resource yang sudah ada di project Anda, dan ingin mengelolanya bersama-sama, sebagai satu deployment.

    Dalam template atau konfigurasi, Anda harus memberikan properti yang diperlukan untuk resource ini seolah-olah Anda membuatnya. Jika salah satu resource dalam konfigurasi Anda tidak ada di project, deployment akan gagal.

Mencantumkan deployment

Lihat daftar deployment Anda di konsol Google Cloud console, API, atau Google Cloud CLI.

Konsol

Buka halaman Deployments di Google Cloud konsol.

gcloud

Dengan Google Cloud CLI, gunakan subperintah deployments list:

gcloud deployment-manager deployments list

API

Di API, buat permintaan GET kosong ke koleksi Deployments:

GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments

Langkah berikutnya