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
n1
delle caratteristiche viene mappato al tipo di macchina GCP n1-standard-1. - Configurare il profilo di rete con il tag
default
nella 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 properties: {} Allocations_Network_1: type: Allocations.Network properties: networkType: existing constraints: - tag: default Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: n1 Allocations_Image_1: type: Allocations.Image properties: image: centos-7-shielded BOOT_DISK: type: Idem.GCP.COMPUTE.DISK 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 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