Configuração de instâncias do EC2 baseadas em plug-in no
VMware Aria Automation

Como administrador de nuvem, você pode aproveitar o plug-in do Amazon Web Services (AWS) para provisionar instâncias do EC2 baseadas em plug-ins à medida que cria sua infraestrutura. Você também pode usar auxiliares de alocação para fornecer lógica de alocação para suas instâncias do.
Você pode configurar facilmente suas instâncias do EC2 para oferecer suporte às suas necessidades de infraestrutura usando as propriedades mais recentes da AWS. Por exemplo, se você quiser recuperar automaticamente uma instância se uma verificação de status falhar, poderá usar a propriedade
auto_recovery_enabled
no seu modelo durante o provisionamento.
Para saber mais sobre plug-ins e alocação no
VMware Aria Automation
, consulte Plug-in based designs and deployments in Automation Assembler.

Propriedades da instância do EC2

As propriedades a seguir são necessárias para recursos de instância do EC2 baseados em plug-in.
Propriedade
Descrição
name
O nome da instância.
region
A região em que a instância do será implantada.
account
A conta de nuvem da AWS para a qual sua equipe implanta modelos. Para obter mais informações, consulte Criar uma conta de nuvem do Amazon Web Services no VMware Aria Automation.
image_id
O ID da AMI a ser usada para a instância do.
A seção a seguir contém modelos de exemplo para o provisionamento de instâncias do EC2.

Provisionando uma instância de EC2 simples

O modelo a seguir mostra como você pode provisionar uma instância do EC2 com valores estaticamente configurados para todas as suas propriedades.
formatVersion: 1 inputs: {} resources: Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: my-instance-1 region: us-east-1 account: AWS image_id: ami-0aa7d40eeae50c9a9 availability_zone: us-east-1a instance_type: t2.small subnet_id: subnet-07d2c529b6336bd0e

Provisionamento de uma instância do EC2 com auxiliares de alocação

O modelo a seguir mostra como você pode provisionar uma instância do EC2 com vários auxiliares de alocação.
You can use helpers in a one-to-many configuration, where one helper provides allocation logic, such as zone placement, for several resources. You then further customize the resources according to their full list of properties as defined by the cloud provider and supported by the associated plug-in.
Neste exemplo, você usa um auxiliar de processamento, um auxiliar de tipo, um auxiliar de imagem e um auxiliar de rede.
formatVersion: 1 inputs: instance_name: type: string resources: Allocations_Compute_1: type: Allocations.Compute properties: constraints: - tag: env:dev Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: small Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Network_1: type: Allocations.Network properties: networkType: existing constraints: - tag: alternative-net Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: ${input.instance_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} image_id: ${resource.Allocations_Image_1.selectedImageId} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} instance_type: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} subnet_id: ${resource.Allocations_Network_1.selectedSubnet.id}

Provisionando uma instância EC2 com um volume da AWS

O modelo a seguir mostra como você pode provisionar uma instância do EC2 com um volume anexado. Neste exemplo, você provisiona duas instâncias baseadas em plug-in e um volume do AWS baseado em plug-in. O volume do AWS é anexado a uma das instâncias do e é criptografado com uma chave clássica do KMS.
O volume da AWS e a chave do KMS fazem referência aos mesmos auxiliares de alocação por meio do uso de associações de propriedade. Usar associações de propriedade garante que seus recursos sejam provisionados na conta e na região corretas.
formatVersion: 1 inputs: instance_name: type: string instance2_name: type: string volume_name: type: string resources: Allocations_Compute_1: type: Allocations.Compute properties: constraints: - tag: env:dev Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: small Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Network_1: type: Allocations.Network properties: networkType: existing constraints: - tag: alternative-net Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: ${input.instance_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} image_id: ${resource.Allocations_Image_1.selectedImageId} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} instance_type: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} subnet_id: ${resource.Allocations_Network_1.selectedSubnet.id} Idem_AWS_EC2_INSTANCE_2: type: Idem.AWS.EC2.INSTANCE properties: name: ${input.instance2_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} image_id: ${resource.Allocations_Image_1.selectedImageId} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} instance_type: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} subnet_id: ${resource.Allocations_Network_1.selectedSubnet.id} block_device_mappings: - volume_id: ${resource.Idem_AWS_EC2_VOLUME_1.resource_id} device_name: /dev/sdb Idem_AWS_EC2_VOLUME_1: type: Idem.AWS.EC2.VOLUME properties: name: ${input.volume_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} size: 10 volume_type: io2 iops: 100 encrypted: true kms_key_id: ${resource.Cloud_Service_AWS_KMS_Key_1.key_id} Cloud_Service_AWS_KMS_Key_1: type: Cloud.Service.AWS.KMS.Key properties: region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}