В ходе создания инфраструктуры администратор облачных служб может использовать подключаемый модуль Google Cloud Platform (GCP) для подготовки ресурсов экземпляра на основе подключаемого модуля. Для предоставления логики выделения своим экземплярам можно использовать помощники выделения.
Чтобы экземпляры обеспечивали потребности инфраструктуры, их можно легко настроить с помощью новых свойств GCP. Например, если нужно предотвратить сбои в работе экземпляров во время обновления, можно использовать свойство most_disruptive_allowed_action
в облачном шаблоне во время подготовки.
После развертывания экземпляра для управления ресурсом, например присоединения дополнительных дисков к этому ресурсу, можно выполнять действия по регулярному обслуживанию.
Дополнительные сведения о подключаемых модулях и выделении в VMware Aria Automation см. в разделе Проекты и развертывания на основе подключаемого модуля в Automation Assembler
Свойства экземпляра
Для ресурсов экземпляра на основе подключаемого модуля обязательными являются следующие свойства.
Полный список свойств экземпляра см. в документации по Google Cloud REST. Свойства ресурсов в документации по GCP записываются с помощью стиля camelCase, в то время как свойства ресурса в Automation Assembler записываются в стиле snake case.
name |
Имя экземпляра. Требования к именованию см. в разделе Соглашение об именовании в документации по Google Cloud. |
zone |
Зона, в которой будет развернут экземпляр. Дополнительные сведения см. в разделе Регионы и зоны в документации по Google Cloud. |
account |
Облачная учетная запись GCP для регионов учетной записи, в которых ваша рабочая группа развертывает облачные шаблоны. Дополнительные сведения см. в разделе Создание облачной учетной записи Google Cloud Platform в VMware Aria Automation. |
В следующем разделе приведен пример облачного шаблона для подготовки экземпляров на основе подключаемого модуля в Automation Assembler.
Подготовка экранированного экземпляра с отдельным дисковым ресурсом
В следующем шаблоне представлен способ подготовки экранированного экземпляра с помощью помощников выделения. В этом примере выполняется создание диска и его подключение к ресурсу экранированного экземпляра.
- Создайте облачную учетную запись GCP в Automation Assembler, создайте проект и добавьте облачные зоны.
В данном примере имя облачной зоны — europe-central2.
- Настройте сопоставление образов для проекта.
Выбранный образ должен поддерживать экранированные экземпляры.
- Настройте сопоставление конфигураций ресурсов для проекта.
В этом примере конфигурация ресурсов
n1
сопоставляется с типом виртуальной машины n1-standard-1 GCP. - Настройте профиль сети с тегом
default
в той же облачной зоне для сопоставления с сетью GCP по умолчанию. - Если используется ключ шифрования, то перед развертыванием схемы элементов необходимо создать связку ключей и ключ. В этом примере шаблона используется глобальная связка ключей. Идентификатор ключа передается в качестве входных данных в шаблон. Дополнительные сведения см. в документации по службе управления ключами для облака GCP.
formatVersion: 1 inputs: name: type: string title: VM name kms_key_name: type: string title: Full key name description: 'Example format for a global key ring: projects/<project>/locations/global/keyRings/<ring>/cryptoKeys/<key>' resources: Allocations_Compute_1: type: Allocations.Compute metadata: layoutPosition: - 0 - 0 properties: {} Allocations_Network_1: type: Allocations.Network metadata: layoutPosition: - 0 - 1 properties: networkType: existing constraints: - tag: default Allocations_Flavor_1: type: Allocations.Flavor metadata: layoutPosition: - 0 - 2 properties: flavor: n1 Allocations_Image_1: type: Allocations.Image metadata: layoutPosition: - 0 - 3 properties: image: centos-7-shielded BOOT_DISK: type: Idem.GCP.COMPUTE.DISK metadata: layoutPosition: - 1 - 1 properties: name: idem-disk-${input.name}-boot account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} type_: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-balanced'} size_gb: 20 source_image: ${resource.Allocations_Image_1.selectedImageId} disk_encryption_key: kms_key_name: ${input.kms_key_name} Idem_GCP_COMPUTE_INSTANCE_1: type: Idem.GCP.COMPUTE.INSTANCE metadata: layoutPosition: - 2 - 2 properties: name: ${input.name} zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} can_ip_forward: false machine_type: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName } shielded_instance_config: enable_integrity_monitoring: true enable_secure_boot: true enable_vtpm: true network_interfaces: - access_configs: - kind: compute#accessConfig name: External NAT network_tier: PREMIUM set_public_ptr: false type_: ONE_TO_ONE_NAT kind: compute#networkInterface 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: - auto_delete: false boot: true device_name: ${resource.BOOT_DISK.name} source: ${resource.BOOT_DISK.resource_id} mode: READ_WRITE type_: PERSISTENT - auto_delete: false boot: false device_name: idem-disk-${input.name}-additional initialize_params: disk_size_gb: 15 disk_type: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-balanced'} disk_encryption_key: kms_key_name: ${input.kms_key_name} mode: READ_WRITE type_: PERSISTENT scheduling: automatic_restart: true on_host_maintenance: MIGRATE preemptible: false provisioning_model: STANDARD deletion_protection: false