Администратор облачных служб может создавать моментальные снимки дисков Google Cloud Platform (GCP) на основе подключаемого модуля и управлять ими в Automation Assembler.

Чтобы создать резервную копию диска, в облачных шаблонах можно использовать ресурс Моментальный снимок. Ресурс Моментальный снимок можно присоединить к диску любого типа. С помощью моментального снимка также можно создать экземпляр или диск. После создания моментального снимка его можно просмотреть, выполнив вход в консоль Google Cloud.

В следующем разделе приведены примеры облачных шаблонов для использования моментальных снимков.

Создание моментального снимка для загрузочного диска

В следующем облачном шаблоне показано, как создать моментальный снимок загрузочного диска, присоединенного к экземпляру. В этом примере используются помощник по вычислительным ресурсам, сетевой помощник, помощник по образам и помощник по конфигурации ресурсов.
formatVersion: 1
inputs: {}
resources:
  Allocations_Image_1:
    type: Allocations.Image
    properties:
      image: ubuntu
  Allocations_Network_1:
    type: Allocations.Network
    properties:
      networkType: existing
  Allocations_Compute_1:
    type: Allocations.Compute
    properties:
      accountType: gcp
  Allocations_Flavor_1:
    type: Allocations.Flavor
    properties:
      flavor: small
  mysql:
    type: Idem.GCP.COMPUTE.INSTANCE
    properties:
      name: mysql
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      project: ${resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project}
      network_interfaces:
        - name: nic0
          stack_type: IPV4_ONLY
          subnetwork: ${'/projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/regions/' + resource.Allocations_Compute_1.selectedRegion.id + '/subnetworks/' + resource.Allocations_Network_1.selectedSubnet.name}
      disks:
        - device_name: ${resource.mysql-boot-disk.name}
          source: ${resource.mysql-boot-disk.resource_id}
          boot: true
        - boot: false
          device_name: ${resource.mssql-attached-disk.name}
          source: ${resource.mssql-attached-disk.resource_id}
      machine_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName}
  mssql-attached-disk:
    type: Idem.GCP.COMPUTE.DISK
    properties:
      name: attached-disk
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      size_gb: 1
      project: ${resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project}
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.name}
      type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-extreme'}
  mysql-boot-disk:
    type: Idem.GCP.COMPUTE.DISK
    properties:
      name: mysql-boot-disk
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      size_gb: 12
      project: ${resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project}
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.name}
      type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-balanced'}
  mysql-disk-snapshot:
    type: Idem.GCP.COMPUTE.SNAPSHOT
    dependsOn: ''
    properties:
      name: mysql-boot-disk-snapshot
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      source_disk: ${resource.mysql-boot-disk.resource_id}

Для передачи resource_id из mysql-boot-disk в ресурс Моментальный снимок используются привязки.

Создание экземпляра на основе моментального снимка

В следующем облачном шаблоне показано, как создать экземпляр с помощью моментального снимка. В этом примере также используются помощник по вычислительным ресурсам, помощник по образам, сетевой помощник и помощник по конфигурации ресурсов.
atVersion: 1
inputs:
  disk-snapshot-Id:
    type: string
    title: Disk Snapshot Link id
resources:
  Allocations_Image_1:
    type: Allocations.Image
    properties:
      image: ubuntu
  Allocations_Network_1:
    type: Allocations.Network
    properties:
      networkType: existing
  Allocations_Compute_1:
    type: Allocations.Compute
    properties:
      accountType: gcp
  Allocations_Flavor_1:
    type: Allocations.Flavor
    properties:
      flavor: small
  mysql:
    type: Idem.GCP.COMPUTE.INSTANCE
    properties:
      name: mysql-from-snapshot
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      project: ${resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project}
      network_interfaces:
        - name: nic0
          stack_type: IPV4_ONLY
          subnetwork: ${'/projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/regions/' + resource.Allocations_Compute_1.selectedRegion.id + '/subnetworks/' + resource.Allocations_Network_1.selectedSubnet.name}
      disks:
        - device_name: ${resource.restored-disk.name}
          source: ${resource.restored-disk.resource_id}
          boot: true
      machine_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName}
  restored-disk:
    type: Idem.GCP.COMPUTE.DISK
    properties:
      name: restored
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      disk_name: restored-boot
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      source_snapshot: ${input.disk-snapshot-Id}
      boot: true

С помощью входных параметров можно разрешить пользователям вводить snapshot-Id для моментального снимка, который они хотят использовать для загрузочного диска.