Como administrador de nube, puede aprovechar el complemento de Google Cloud Platform (GCP) para aprovisionar los recursos de instancias basadas en complementos a medida que crea la infraestructura. También puede utilizar las aplicaciones auxiliares de asignación para proporcionar lógica de asignación para las instancias.
Puede configurar fácilmente las instancias para que se adapten a sus necesidades de infraestructura mediante las propiedades de GCP más recientes. Por ejemplo, si desea evitar interrupciones en las instancias durante una actualización, puede utilizar la propiedad most_disruptive_allowed_action en la plantilla de nube durante el aprovisionamiento.
Después de implementar la instancia, puede ejecutar acciones del día 2 para administrar el recurso, como asociar discos adicionales al recurso.
Para obtener más información sobre los complementos y la asignación en VMware Aria Automation, consulte Diseños e implementaciones basados en complementos en Automation Assembler
Propiedades de instancia
Las siguientes propiedades son obligatorias para los recursos de instancias basadas en complementos.
Consulte la documentación de REST de Google Cloud para obtener una lista completa de las propiedades de la instancia. Las propiedades de recursos en la documentación de GCP se escriben en camelCase, mientras que las propiedades de recursos en Automation Assembler se escriben en "snake case".
name |
El nombre de la instancia. Consulte Convención de nomenclatura en la documentación de Google Cloud para conocer los requisitos de nomenclatura. |
zone |
La zona en la que se implementará la instancia. Consulte Regiones y zonas en la documentación de Google Cloud para obtener más información. |
account |
La cuenta de nube de GCP para las regiones de cuenta en las que el equipo implementa plantillas de nube. Consulte Crear una cuenta de nube de Google Cloud Platform en VMware Aria Automation para obtener más información. |
La siguiente sección contiene un ejemplo de plantilla de nube para aprovisionar instancias basadas en complementos en Automation Assembler.
Aprovisionar una instancia blindada con un recurso de disco independiente
La siguiente plantilla muestra cómo puede aprovisionar una instancia blindada mediante aplicaciones auxiliares de asignación. En este ejemplo, crea un disco y lo asocia al recurso de instancia blindada.
- Cree la cuenta de nube de GCP en Automation Assembler, cree un proyecto y agregue las zonas de nube.
En este ejemplo, la zona de nube es europe-central2.
- Configure la asignación de imagen para el proyecto.
La imagen elegida debe ser compatible con funciones de instancias blindadas.
- Configure la asignación de tipo para el proyecto.
En este ejemplo, el tipo
n1se asigna al tipo de máquina de GCP n1-standard-1. - Configure el perfil de red con la etiqueta
defaulten la misma zona de nube para asignarlo a la red de GCP predeterminada. - Si utiliza una clave de cifrado, debe crear el anillo de claves y la clave antes de implementar el blueprint. Esta plantilla de ejemplo utiliza un anillo de claves global. El identificador de clave se pasa como entrada a la plantilla. Consulte la documentación de Cloud Key Management Service de GCP para obtener más información.
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