Como administrador de nuvem, você pode aproveitar o plug-in do Google Cloud Platform (GCP) para provisionar recursos de instância baseados em plug-in à medida que você cria sua infraestrutura. Você também pode usar auxiliares de alocação para fornecer lógica de alocação para suas instâncias.
Você pode configurar facilmente suas instâncias para oferecer suporte às suas necessidades de infraestrutura usando as propriedades mais recentes do GCP. Por exemplo, se você quiser evitar interrupções em suas instâncias durante uma atualização, poderá usar a propriedade most_disruptive_allowed_action
no seu modelo de nuvem durante o provisionamento.
Depois de implantar sua instância, você pode executar ações de dia 2 para gerenciar o recurso, como anexar discos adicionais ao recurso.
Para saber mais sobre plug-ins e alocação no VMware Aria Automation, consulte Designs e implantações baseados em plug-in no Automation Assembler
Propriedades da instância
As propriedades a seguir são necessárias para recursos de instância baseados em plug-in.
Consulte a documentação REST do Google Cloud para obter uma lista completa das propriedades da instância. As propriedades de recursos na documentação do GCP são escritas em camelCase, em que, como propriedades de recursos no Automation Assembler são escritas em snake case.
name |
O nome da instância. Consulte a Convenção de nomenclatura na documentação do Google Cloud para obter os requisitos de nomenclatura. |
zone |
A zona na qual a instância do será implantada. Consulte Regiões e zonas na documentação do Google Cloud para obter mais informações. |
account |
A conta de nuvem do GCP para regiões de conta nas quais sua equipe implanta modelos de nuvem. Consulte Criar uma conta de nuvem do Google Cloud Platform no VMware Aria Automation para obter mais informações. |
A seção a seguir contém um exemplo de modelo de nuvem para o provisionamento de instâncias baseadas em plug-in no Automation Assembler.
Provisionando uma instância protegida com um recurso de disco separado
O modelo a seguir mostra como você pode provisionar uma instância protegida usando auxiliares de alocação. Esse exemplo, você cria um disco e o anexa ao recurso de instância protegido.
- Crie sua conta de nuvem do GCP no Automation Assembler, crie um projeto e adicione suas zonas de nuvem.
Este exemplo, a zona de nuvem éurope-central2.
- Configure o mapeamento de imagem para o projeto.
A imagem escolhe deve oferecer suporte a recursos de instância protegidos.
- Configure o mapeamento de tipo para o projeto.
Nesse exemplo, o tipo
n1
mapeia para o tipo de máquina n1-standard-1 do GCP. - Configure seu perfil de rede com a tag
default
na mesma zona de nuvem para mapear para a rede padrão do GCP. - Se você estiver usando uma chave de criptografia, deverá criar o anel de chave e a chave antes de implantar o blueprint. Este modelo de exemplo usa um anel de chaves global. A ID da chave é transmitida como uma entrada para o modelo. Consulte a documentação do GCP Cloud Key Management Service para obter mais informações.
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