Como administrador de nuvem, você pode aproveitar o plug-in do Microsoft Azure para provisionar máquinas virtuais 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 VMs.
Você pode configurar facilmente suas VMs para dar suporte às suas necessidades de infraestrutura usando as propriedades mais recentes do Azure. Por exemplo, se você quiser ativar o diagnóstico de inicialização para sua VM, poderá usar a propriedade boot_diagnostics
no seu modelo de nuvem.
- Iniciar
- Desligar
- Reiniciar
- Desalocar
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 VM
As propriedades a seguir são necessárias para VMs do Azure baseadas em plug-in.
Propriedade | Descrição |
---|---|
name |
O nome específico do plug-in para o recurso. Você pode usar o mesmo valor para a propriedade |
virtual_machine_name |
O nome da VM no portal do Azure. Os recursos do Azure que você implanta com o Automation Assembler devem estar em conformidade com as regras e restrições de nomenclatura do Azure. Caso contrário, a implantação falhará. Consulte Restrições de nomenclatura de recursos para obter mais informações. |
account |
A conta de nuvem do Microsoft Azure para regiões de conta nas quais sua equipe implanta modelos de nuvem. Consulte Criar uma conta de nuvem do Microsoft Azure no VMware Aria Automation para obter mais informações. |
location |
O local onde a VM será implantada. |
resource_group_name |
O nome do grupo de recursos. Você deve criar o grupo de recursos no portal do Azure. |
Provisionar uma VM do Azure com um disco de dados
O modelo a seguir mostra como você pode provisionar uma máquina virtual usando auxiliares de alocação. Neste exemplo, você cria uma VM com um disco de dados anexado.
Antes de implantar esse modelo, conclua as seguintes etapas:
- Crie sua conta de nuvem do Microsoft Azure no Automation Assembler, crie um projeto e adicione suas zonas de nuvem.
- Crie um grupo de recursos por meio do portal do Azure.
- Crie uma interface de rede no grupo de recursos no portal do Azure. A interface de rede deve estar na região que você usará para implantar sua VM do Azure.
formatVersion: 1 inputs: UUID: type: string title: UUID resources: Allocations_Compute_1: type: Allocations.Compute properties: {} Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: medium Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Cloud_Azure_ResourceGroup_1: type: Cloud.Azure.ResourceGroup properties: name: e2e-a8n-RG-${input.UUID} useExisting: false Idem_NETWORK: type: Idem.AZURE.NETWORK.VIRTUAL_NETWORKS properties: name: e2e-a8n-idem-virtual-net-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} address_space: - 10.0.0.0/24 subnets: - name: ${resource.Idem_NETWORK.name} address_prefix: 10.0.0.0/24 resource_group_name: ${resource.Cloud_Azure_ResourceGroup_1.resourceName} virtual_network_name: ${resource.Idem_NETWORK.name} Idem_NETWORK_INTERFACE: type: Idem.AZURE.NETWORK.NETWORK_INTERFACES properties: name: e2e-a8n-idem-net-interface-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} ip_configurations: - primary: true name: ipconfig2 private_ip_address: 10.0.0.13 private_ip_address_allocation: Static private_ip_address_version: IPv4 subnet_id: ${'/subscriptions/' + resource.Idem_NETWORK.subscription_id + '/resourceGroups/' + resource.Idem_NETWORK.resource_group_name + '/providers/Microsoft.Network/virtualNetworks/' + resource.Idem_NETWORK.name + '/subnets/' + resource.Idem_NETWORK.subnets[0].name} resource_group_name: ${resource.Idem_NETWORK.resource_group_name} network_interface_name: ${resource.Idem_NETWORK_INTERFACE.name} Idem_DATA_DISK: type: Idem.AZURE.COMPUTE.DISKS properties: name: e2e-a8n-idem-data-disk-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} resource_group_name: ${resource.Idem_NETWORK.resource_group_name} disk_name: ${resource.Idem_DATA_DISK.name} disk_size_gb: 10 creation_data: create_option: Empty encryption: disk_encryption_set_id: ${'/subscriptions/' + resource.Idem_NETWORK.subscription_id + '/resourceGroups/DND-static-RG-for-automation/providers/Microsoft.Compute/diskEncryptionSets/DND-e2e-a8n-disk-encryption'} type: EncryptionAtRestWithCustomerKey Idem_VM: type: Idem.AZURE.COMPUTE.VIRTUAL_MACHINES properties: name: e2e-a8n-idem-vm-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} resource_group_name: ${resource.Idem_NETWORK.resource_group_name} virtual_machine_name: ${resource.Idem_VM.name} network_interface_ids: - ${resource.Idem_NETWORK_INTERFACE.resource_id} os_profile: admin_username: my-admin-username computer_name: machine-name admin_password: admin virtual_machine_size: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} storage_image_reference: image_sku: ${split(resource.Allocations_Image_1.selectedImageId, ':')[2]} image_publisher: ${split(resource.Allocations_Image_1.selectedImageId, ':')[0]} image_version: ${split(resource.Allocations_Image_1.selectedImageId, ':')[3]} image_offer: ${split(resource.Allocations_Image_1.selectedImageId, ':')[1]} storage_os_disk: storage_account_type: Standard_LRS disk_name: e2e-a8n-idem-os-disk-${input.UUID} disk_caching: ReadWrite disk_size_in_GB: 30 disk_create_option: FromImage disk_delete_option: Delete storage_data_disks: - disk_id: ${resource.Idem_DATA_DISK.resource_id} disk_logical_unit_number: 3 disk_create_option: Attach disk_delete_option: Delete disk_size_in_GB: 10 disk_name: ${resource.Idem_DATA_DISK.disk_name} Cloud_Service_Azure_SQL_Server_1: type: Cloud.Service.Azure.SQL.Server properties: name: e2e-a8n-db-server-puca-${input.UUID} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} version: '' administrator_login: [email protected] resource_group_name: ${resource.Cloud_Azure_ResourceGroup_1.resourceName} administrator_login_password: admin Idem_AZURE_SQL_DATABASE_DATABASES_1: type: Idem.AZURE.SQL_DATABASE.DATABASES properties: name: e2e-a8n-idem-sql-db-${input.UUID} database_name: e2e-a8n-idem-sql-db-${input.UUID} server_name: ${resource.Cloud_Service_Azure_SQL_Server_1.name} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} tags: tag-key: tag-value sku: name: GP_Gen5 tier: GeneralPurpose family: Gen5 capacity: 2 requested_backup_storage_redundancy: Local resource_group_name: ${resource.Idem_NETWORK.resource_group_name} read_scale: Disabled Idem_AZURE_STORAGE_RESOURCE_PROVIDER_STORAGE_ACCOUNTS_1: type: Idem.AZURE.STORAGE_RESOURCE_PROVIDER.STORAGE_ACCOUNTS dependsOn: - Idem_NETWORK properties: name: e2ea8nidemstacct${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} sku_name: Standard_LRS account_name: e2ea8nidemstacct${input.UUID} resource_group_name: ${resource.Cloud_Azure_ResourceGroup_1.resourceName} identity: type: UserAssigned user_assigned_identities: /subscriptions/svpvln45-brk0-mzca-7yxh-dla7h19zxyn3/resourceGroups/DND-static-RG-for-automation/providers/Microsoft.ManagedIdentity/userAssignedIdentities/DND-user-assigned-managed-identity: {} encryption_service: encryption_key_source: Microsoft.Keyvault blob_encryption_key_type: Account file_encryption_key_type: Account customer_managed_key: key_name: DND-e2e-a8n-key key_vault_uri: https://dnd-e2e-a8n-key-vault.vault.azure.net/ key_version: '' user_assigned_identity_id: ${'/subscriptions/' + resource.Idem_NETWORK.subscription_id + '/resourceGroups/DND-static-RG-for-automation/providers/Microsoft.ManagedIdentity/userAssignedIdentities/DND-user-assigned-managed-identity'} immutability_policy: allow_protected_append_writes: true period_since_creation_in_days: 5 state: Unlocked
Se quiser anexar discos adicionais à VM, você poderá atualizar o blueprint para o recurso da VM e adicionar o novo disco de dados à propriedade storage_data_disks
.
Provisionar uma VM do Azure usando cloud-init
Os modelos a seguir mostram como você pode provisionar uma VM do Azure usando cloud-init.
Primeiro, defina o código cloud-init como uma entrada no modelo de nuvem e use o valor na propriedade custom_data
. A propriedade custom_data
aceita apenas uma cadeia de caracteres codificada em base64; portanto, você converte os dados personalizados usando a função base64_encoded
.
inputs: init-data: type: string default: | some multiline maxLength: 9999
resources: Idem_AZURE_COMPUTE_VIRTUAL_MACHINES_1: type: Idem.AZURE.COMPUTE.VIRTUAL_MACHINES properties: ... os_profile: ... custom_data: ${base64_encode(input.init-data)}