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
n1
se asigna al tipo de máquina de GCP n1-standard-1. - Configure el perfil de red con la etiqueta
default
en 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