Google-Cloud-Platform

GCP 部署管理器:在哪裡可以找到正確創建 YAML 配置和模板文件的參考指南?

  • April 8, 2021

我應客戶的要求開始使用Google云部署管理器,使用 YAML 配置文件,但我找不到任何地方如何映射https://cloud.google.com/deployment-manager/docs/configuration中顯示的參考/supported-resource-types我實際使用的。

特別是,我需要在創建時將現有的外部彈性 IP 附加到實​​例,但我無法在任何地方找到這樣做的配置文件架構(即,就像在https://eksctl.xmleksctl找到的配置文件架構文件一樣) io/用法/模式/):

resources:
- type: compute.v1.instance
 name: nextcloud-vm
 properties:
   natIP: nextcloud-vm
   # The properties of the resource depend on the type of resource. For a list
   # of properties, see the API reference for the resource.
   zone: us-west1-a
   # Replace martin-dev-391362 with your project ID
   machineType: https://www.googleapis.com/compute/v1/projects/martin-dev-391362/zones/us-west1-a/machineTypes/n2-standard-4
   disks:
   - deviceName: boot
     type: PERSISTENT
     boot: true
     autoDelete: true
     initializeParams:
       # See a full list of image families at https://cloud.google.com/compute/docs/images#os-compute-support
       # The format of the sourceImage URL is: https://www.googleapis.com/compute/v1/projects/[IMAGE_PROJECT]/global/images/family/[FAMILY_NAME]
       sourceImage: https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/family/ubuntu-2004-lts
       diskSizeGb: 20
   # Replace martin-dev-391362 with your project ID
   networkInterfaces:
   - network: https://www.googleapis.com/compute/v1/projects/martin-dev-391362/global/networks/default
     # Access Config required to give the instance a public IP address
     accessConfigs:
     - name: nextcloud-vm
       type: ONE_TO_ONE_NAT

上面的程式碼不起作用,因為它嘗試使用該名稱創建一個新的 IP 地址,而不是使用已經存在的彈性 IP 地址。問題是我在任何地方都找不到正確的符號:)

如果有人能指出正確的方向,我將不勝感激,因為解決這個很小的問題只是冰山一角,因為我將與 Deployment Manager 進行大量工作,因此我需要全面了解如何使用它。

您可以按照下面的 yaml 作為參考,只需替換mystatic為您在 VPC 網路上保留的外部 IP 的名稱。但是,當您刪除部署時,它也會將您的靜態 IP作為部署的一部分刪除。

resources:
- name: mystatic
 type: compute.v1.address
 properties:
   region: us-central1
 
- name: vm-created-by-deployment-manager
 type: compute.v1.instance
 properties:
   zone: us-central1-a
   machineType: zones/us-central1-a/machineTypes/n1-standard-1
   disks:
   - deviceName: boot
     type: PERSISTENT
     boot: true
     autoDelete: true
     initializeParams:
       sourceImage: projects/debian-cloud/global/images/family/debian-10
   networkInterfaces:
   - network: global/networks/default
     accessConfigs:
     - name: External NAT
       type: ONE_TO_ONE_NAT
       natIP: $(ref.mystatic.address)

您需要查看Compute API Reference以獲取可在案例中使用的屬性列表。

引用自:https://serverfault.com/questions/1059673