L'amministratore del cloud può utilizzare il plug-in Google Cloud Platform (GCP) per eseguire il provisioning delle risorse delle istanze basati su plug-in durante la creazione dell'infrastruttura. È inoltre possibile utilizzare gli helper di allocazione per specificare la logica di allocazione per le risorse delle istanze.
È possibile configurare facilmente le istanze per supportare le esigenze dell'infrastruttura utilizzando le proprietà di GCP più recenti. Ad esempio, se si desidera evitare interruzioni delle attività delle istanze durante un aggiornamento, è possibile utilizzare la proprietà most_disruptive_allowed_action nel modello cloud durante il provisioning.
Dopo aver distribuito l'istanza, è possibile eseguire azioni giorno 2 per gestire la risorsa, ad esempio collegare dischi aggiuntivi alla risorsa.
Per ulteriori informazioni sui plug-in e sull'allocazione in VMware Aria Automation, vedere Progettazioni e distribuzioni basate su plug-in in Automation Assembler
Proprietà delle istanze
Per le risorse delle istanze basate su plug-in, sono necessarie le proprietà seguenti.
Per un elenco completo delle proprietà delle istanze, vedere la documentazione di Google Cloud REST. Le proprietà delle risorse nella documentazione di GCP sono scritte in camelCase, mentre le proprietà delle risorse in Automation Assembler sono scritte in snake case.
name |
Il nome dell'istanza. Per informazioni sui requisiti di denominazione, vedere Convenzione di denominazione nella documentazione di Google Cloud. |
zone |
La zona in cui verrà distribuita l'istanza di. Per ulteriori informazioni, vedere Regioni e zone nella documentazione di Google Cloud. |
account |
Account cloud di GCP per le regioni dell'account in cui il team distribuisce i modelli cloud. Per ulteriori informazioni, vedere Creazione di un account cloud di Google Cloud Platform in VMware Aria Automation. |
La sezione seguente contiene un modello cloud di esempio per il provisioning delle istanze basate su plug-in in Automation Assembler.
Provisioning di un'istanza schermata con una risorsa disco separata
Il modello seguente illustra come eseguire il provisioning di un'istanza schermata utilizzando gli helper di allocazione. In questo esempio, si crea un disco, che viene collegato alla risorsa delle istanze protetta.
- Creare l'account cloud di GCP in Automation Assembler, creare un progetto e aggiungere le zone cloud.
In questo esempio, la zona cloud è europe-central2.
- Configurare la mappatura dell'immagine per il progetto.
L'immagine scelta deve supportare le funzionalità di istanza schermate.
- Configurare la mappatura delle caratteristiche per il progetto.
In questo esempio, il valore
n1delle caratteristiche viene mappato al tipo di macchina GCP n1-standard-1. - Configurare il profilo di rete con il tag
defaultnella stessa zona cloud per mappare alla rete GCP predefinita. - Se si utilizza una chiave di crittografia, è necessario creare l'anello della chiave e la chiave prima di distribuire il blueprint. Questo modello di esempio utilizza un anello della chiave globale. L'ID della chiave viene passato come input al modello. Per ulteriori informazioni, consultare documentazione di Cloud Key Management Service 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