Als Cloud-Administrator können Sie das Microsoft Azure-Plug-In nutzen, um beim Aufbau Ihrer Infrastruktur Plug-In-basierte virtuelle Maschinen bereitzustellen. Sie können auch Hilfsprogramme für die Zuteilung verwenden, um Zuteilungslogik für Ihre VMs bereitzustellen.

Sie können Ihre VMs zur Unterstützung Ihrer Infrastrukturanforderungen problemlos mithilfe der aktuellen Azure-Eigenschaften konfigurieren. Wenn Sie beispielsweise die Startdiagnose für Ihre VM aktivieren möchten, können Sie die Eigenschaft boot_diagnostics in Ihrer Cloud-Vorlage verwenden.

Sie können auch die folgenden Tag-2-Vorgänge für Azure-VMs ausführen:
  • Starten
  • Ausschalten
  • Neu starten
  • Zuteilung aufheben
Weitere Informationen finden Sie unter Welche Aktionen kann ich in Automation Assembler-Bereitstellungen oder unterstützten Ressourcen ausführen?

Weitere Informationen zu Plug-Ins und Zuteilungen in VMware Aria Automation finden Sie unter Plug-In-basierte Designs und Bereitstellungen in Automation Assembler

VM-Eigenschaften

Die folgenden Eigenschaften sind für Plug-In-basierte Azure-VMs erforderlich.

Eigenschaft Beschreibung
name Der Plug-In-spezifische Name für die Ressource.

Sie können denselben Wert für die Eigenschaft virtual_machine_name verwenden.

virtual_machine_name Der Name der VM im Azure-Portal.

Die Azure-Ressourcen, die Sie mit Automation Assembler bereitstellen, müssen den für Azure geltenden Benennungsregeln und -einschränkungen entsprechen. Andernfalls schlägt die Bereitstellung fehl. Weitere Informationen finden Sie unter Benennungsregeln und -einschränkungen für Azure-Ressourcen.

account Das Microsoft Azure-Cloud-Konto für Kontoregionen, in denen Ihr Team Cloud-Vorlagen bereitstellt.

Weitere Informationen finden Sie unter Erstellen eines Microsoft Azure-Cloud-Kontos in VMware Aria Automation.

location Der Speicherort, an dem die VM bereitgestellt wird.
resource_group_name Der Name der Ressourcengruppe.

Sie müssen die Ressourcengruppe in Ihrem Azure-Portal erstellen.

Bereitstellen einer Azure-VM mit einer Datenfestplatte

Die folgende Vorlage zeigt, wie Sie eine virtuelle Maschine mithilfe von Hilfsprogrammen für die Zuteilung bereitstellen können. In diesem Beispiel erstellen Sie eine VM mit einer angehängten Datenfestplatte.

Führen Sie die folgenden Schritte aus, bevor Sie diese Vorlage bereitstellen:

  1. Erstellen Sie Ihr Microsoft Azure-Cloud-Konto in Automation Assembler, erstellen Sie ein Projekt und fügen Sie Ihre Cloud-Zonen hinzu.
  2. Erstellen Sie die Ressourcengruppe über das Azure-Portal.
  3. Erstellen Sie eine Netzwerkschnittstelle in der Ressourcengruppe im Azure-Portal. Die Netzwerkschnittstelle muss sich in der Region befinden, die Sie zum Bereitstellen Ihrer Azure-VM verwenden werden.
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

Wenn Sie weitere Festplatten an die VM anhängen möchten, können Sie den Blueprint für die VM-Ressource aktualisieren und die neue Datenfestplatte in der Eigenschaft storage_data_disks hinzufügen.

Bereitstellen einer Azure-VM mithilfe von cloud-init

In den folgenden Vorlagen wird dargestellt, wie Sie eine Azure-VM mithilfe von cloud-init bereitstellen können.

Zuerst definieren Sie den cloud-init-Code als Eingabe in der Cloud-Vorlage und verwenden den Wert in der Eigenschaft custom_data. Die Eigenschaft custom_data akzeptiert nur base64-codierte Zeichenfolgen. Daher konvertieren Sie die benutzerdefinierten Daten mithilfe der Funktion base64_encoded.

Das folgende Codebeispiel zeigt, wie Sie den cloud-init-Code als Eingabe definieren würden:
inputs:
  init-data:
    type: string
    default: |
      some
      multiline
      
    maxLength: 9999
Das folgende Codebeispiel zeigt, wie die benutzerdefinierten Daten in Base64 konvertiert werden:
resources:
  Idem_AZURE_COMPUTE_VIRTUAL_MACHINES_1:
    type: Idem.AZURE.COMPUTE.VIRTUAL_MACHINES
    properties:
      ...
      os_profile:
        ...
        custom_data: ${base64_encode(input.init-data)}