Delen via


Een virtuele machine maken in VMware vCenter met behulp van Azure Arc

In dit artikel wordt beschreven hoe u een virtuele machine inricht met behulp van vCenter-resources vanuit de Azure-portal.

Een VM maken in Azure Portal

Zodra uw beheerder een VMware vCenter met Azure heeft verbonden, VMware vCenter-resources in Azure heeft vertegenwoordigd en u machtigingen hebt verleend voor deze resources, maakt u een virtuele machine.

Vereisten

  • Een Azure-abonnement en -resourcegroep met de rol inzender voor Arc VMware-VM's.
  • Een resourcegroep/cluster/host waarop u de gebruikersrol resource van Arc-privécloud hebt.
  • Een resource voor een virtuele-machinesjabloon waarvoor u de gebruikersrol resource van Arc-privécloud hebt.
  • Een virtuele netwerkresource waarvoor u de gebruikersrol arc-privécloudresource hebt.

Volg deze stappen om een VIRTUELE machine te maken in Azure Portal:

  1. Ga in een browser naar Azure Portal. Navigeer naar de bladerweergave van virtuele machines. U ziet een uniforme browse-ervaring voor virtuele Azure- en Arc-machines.

    Schermopname van de geïntegreerde browse-ervaring voor virtuele Azure- en Arc-machines.

  2. Selecteer Toevoegen en selecteer vervolgens Azure Arc-machine in de vervolgkeuzelijst.

    Schermopname van het tabblad Basic voor het maken van een virtuele Azure Arc-machine.

  3. Selecteer het abonnement en de resourcegroep waar u de VIRTUELE machine wilt implementeren.

  4. Geef de naam van de virtuele machine op en selecteer vervolgens een aangepaste locatie die uw beheerder met u heeft gedeeld.

    Als meerdere soorten VM's worden ondersteund, selecteert u VMware in de vervolgkeuzelijst Soort virtuele machine.

  5. Selecteer de resourcegroep/cluster/host waarin de VIRTUELE machine moet worden geïmplementeerd.

  6. Selecteer het gegevensarchief dat u wilt gebruiken voor opslag.

  7. Selecteer de sjabloon op basis waarvan u de virtuele machine gaat maken.

    Tip

    U kunt de standaardinstellingen van de sjabloon overschrijven voor CPU-kernen en geheugen.

    Als u een Windows-sjabloon hebt geselecteerd, geeft u een gebruikersnaam, wachtwoord op voor het beheerdersaccount.

  8. (Optioneel) Wijzig de schijven die in de sjabloon zijn geconfigureerd. U kunt bijvoorbeeld meer schijven toevoegen of bestaande schijven bijwerken. Alle schijven en VM's bevinden zich in het gegevensarchief dat in stap 6 is geselecteerd.

  9. (Optioneel) Wijzig de netwerkinterfaces die in de sjabloon zijn geconfigureerd. U kunt bijvoorbeeld NIC-kaarten (network interface) toevoegen of bestaande NIC's bijwerken. U kunt ook het netwerk wijzigen waaraan deze NIC wordt gekoppeld, mits u over de juiste machtigingen voor de netwerkresource beschikt.

  10. (Optioneel) Voeg indien nodig tags toe aan de VM-resource.

  11. Selecteer Maken nadat u alle eigenschappen hebt bekeken. Het duurt enkele minuten om de virtuele machine te maken.

In dit artikel wordt beschreven hoe u een virtuele machine inricht met behulp van vCenter-resources met behulp van een Bicep-sjabloon.

Een Arc VMware-machine maken met bicep-sjabloon

De volgende bicep-sjabloon kan worden gebruikt om een Arc VMware-machine te maken. Hier volgt de lijst met beschikbare Azure Resource Manager-, Bicep- en Terraform-sjablonen voor VMware-resources met Arc. Als u een andere Arc-bewerking wilt activeren, converteert u de bijbehorende ARM-sjabloon naar bicep-sjabloon.

// Parameters
param vmName string = 'contoso-vm'
param vmAdminPassword string = 'examplepassword!#'
param vCenterId string = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-rg/providers/Microsoft.ConnectedVMwarevSphere/vcenters/contoso-vcenter'
param templateId string = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-rg/providers/Microsoft.ConnectedVMwarevSphere/VirtualMachineTemplates/contoso-template-win22'
param resourcePoolId string = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-rg/providers/Microsoft.ConnectedVMwarevSphere/ResourcePools/contoso-respool'
param datastoreId string = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-rg/providers/Microsoft.ConnectedVMwarevSphere/Datastores/contoso-datastore'
param networkId string = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-rg/providers/Microsoft.ConnectedVMwarevSphere/VirtualNetworks/contoso-network'
param extendedLocation object = {
  type: 'customLocation'
  name: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-rg/providers/Microsoft.ExtendedLocation/customLocations/contoso-customlocation'
}
param ipSettings object = {
  allocationMethod: 'static'
  gateway: ['172.24.XXX.1']
  ipAddress: '172.24.XXX.105'
  subnetMask: '255.255.255.0'
  dnsServers: ['172.24.XXX.9']
}

resource contosoMachine 'Microsoft.HybridCompute/machines@2023-10-03-preview' = {
  name: vmName
  location:'westeurope'
  kind:'VMware'
  properties:{}
  tags: {
    foo: 'bar'
  }
}

resource vm 'Microsoft.ConnectedVMwarevSphere/virtualMachineInstances@2023-12-01' = {
  name: 'default'
  scope: contosoMachine
  extendedLocation: extendedLocation
  properties: {
    hardwareProfile: {
      memorySizeMB: 4096
      numCPUs: 2
    }
    osProfile: {
      computerName: vmName
      adminPassword: vmAdminPassword
    }
    placementProfile: {
      resourcePoolId: resourcePoolId
      datastoreId: datastoreId
    }
    infrastructureProfile: {
      templateId: templateId
      vCenterId: vCenterId
    }
    networkProfile: {
      networkInterfaces: [
        {
          nicType: 'vmxnet3'
          ipSettings: ipSettings
          networkId: networkId
          name: 'VLAN103NIC'
          powerOnBoot: 'enabled'
        }
      ]
    }
  }
}

// Outputs
output vmId string = vm.id

In dit artikel wordt beschreven hoe u een virtuele machine inricht met behulp van vCenter-resources met behulp van een Terraform-sjabloon.

Een Arc VMware-machine maken met Terraform

Vereisten

  • Azure-abonnement: zorg ervoor dat u een actief Azure-abonnement hebt.
  • Terraform: Installeer Terraform op uw computer.
  • Azure CLI: Azure CLI installeren om resources te verifiëren en te beheren.

Volg deze stappen om een Arc VMware-machine te maken met behulp van Terraform. In dit artikel worden de volgende twee scenario's behandeld:

  1. Voor VM's die zijn gedetecteerd in de vCenter-inventaris, schakelt u de azure-bewerking in en installeert u Arc-agents.
  2. Maak een nieuwe Arc VMware-VM met behulp van sjablonen, resourcegroep, gegevensopslag en installeer Arc-agents.

Scenario 1

Voor VM's die zijn gedetecteerd in de vCenter-inventaris, schakelt u de azure-bewerking in en installeert u Arc-agents.

Stap 1: Variabelen definiëren in een variables.tf-bestand

Maak een bestand met de naam variables.tf en definieer alle benodigde variabelen.

variable "subscription_id" {
  description = "The subscription ID for the Azure account."
  type        = string
}

variable "resource_group_name" {
  description = "The name of the resource group."
  type        = string
}

variable "location" {
  description = "The location/region where the resources will be created."
  type        = string
}

variable "machine_name" {
  description = "The name of the machine."
  type        = string
}

variable "inventory_item_id" {
  description = "The ID of the Inventory Item for the VM."
  type        = string
}

variable "custom_location_id" {
  description = "The ID of the custom location."
  type        = string
}

variable "vm_username" {
  description = "The admin username for the VM."
  type        = string
}

variable "vm_password" {
  description = "The admin password for the VM."
  type        = string
}

variable "resource_group_name" {
  description = "The name of the resource group."
  type        = string
}

variable "location" {
  description = "The location/region where the resources will be created."
  type        = string
}

variable "machine_name" {
  description = "The name of the machine."
  type        = string
}

variable "vm_username" {
  description = "The admin username for the VM."
  type        = string
}

variable "vm_password" {
  description = "The admin password for the VM."
  type        = string
}

variable "inventory_id" {
  description = "The Inventory ID for the VM."
  type        = string
}

variable "vcenter_id" {
  description = "The ID of the vCenter."
  type        = string
}

variable "custom_location_id" {
  description = "The ID of the custom location."
  type        = string
}

Stap 2: een tfvars-bestand maken

Maak een bestand met de naam CreateVMwareVM.tfvars en geef voorbeeldwaarden op voor de variabelen.

subscription_id      = "your-subscription-id"
resource_group_name  = "your-resource-group"
location             = "eastus"
machine_name         = "test_machine0001"
inventory_item_id    = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ConnectedVMwarevSphere/VCenters/your-vcenter-id/InventoryItems/your-inventory-item-id"
custom_location_id   = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ExtendedLocation/customLocations/your-custom-location-id"
vm_username          = "Administrator"
vm_password          = " The admin password for the VM "

Stap 3: de configuratie wijzigen voor het gebruik van variabelen

Maak een bestand met de naam main.tf en voeg de volgende code in.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 3.0"
    }
    azapi = {
      source  = "azure/azapi"
      version = ">= 1.0.0"
    }
  }
}

# Configure the AzureRM provider with the subscription ID
provider "azurerm" {
  features {}
  subscription_id = var.subscription_id
}

# Configure the AzAPI provider with the subscription ID
provider "azapi" {
  subscription_id = var.subscription_id
}

# Retrieve the resource group details
data "azurerm_resource_group" "example" {
  name = var.resource_group_name
}

# Create a VMware machine resource in Azure
resource "azapi_resource" "test_machine0001" {
  schema_validation_enabled = false
  parent_id = data.azurerm_resource_group.example.id
  type = "Microsoft.HybridCompute/machines@2023-06-20-preview"
  name = var.machine_name
  location = data.azurerm_resource_group.example.location
  body = jsonencode({
      kind = "VMware"
      identity = {
        type = "SystemAssigned"
      }
  })
}

# Create a Virtual Machine instance using the VMware machine and Inventory Item ID
resource "azapi_resource" "test_inventory_vm0001" {
  schema_validation_enabled = false
  type = "Microsoft.ConnectedVMwarevSphere/VirtualMachineInstances@2023-10-01"
  name = "default"
  parent_id = azapi_resource.test_machine0001.id
  body = jsonencode({
      properties = {
          infrastructureProfile = {
            inventoryItemId = var.inventory_item_id
          }
      }
      extendedLocation = {
        type = "CustomLocation"
        name = var.custom_location_id
      }
  })
  depends_on = [azapi_resource.test_machine0001]
}

# Install Arc agent on the VM
resource "azapi_resource" "guestAgent" {
  type      = "Microsoft.ConnectedVMwarevSphere/virtualMachineInstances/guestAgents@2023-10-01"
  parent_id = azapi_resource.test_inventory_vm0001.id
  name      = "default"
  body = jsonencode({
    properties = {
      credentials = {
        username = var.vm_username
        password = var.vm_password
      }
      provisioningAction = "install"
    }
  })
  schema_validation_enabled = false
  ignore_missing_property   = false
  depends_on = [azapi_resource.test_inventory_vm0001]
}

Stap 4: Terraform-opdrachten uitvoeren

Gebruik de vlag -var-file om het .tfvars-bestand door te geven tijdens Terraform-opdrachten.

  1. Terraform initialiseren (als dit nog niet is geïnitialiseerd): terraform init
  2. Valideer de configuratie: terraform validate -var-file="CreateVMwareVM.tfvars"
  3. Plan de wijzigingen: terraform plan -var-file="CreateVMwareVM.tfvars"
  4. Pas de wijzigingen toe: terraform apply -var-file="CreateVMwareVM.tfvars"

Bevestig de prompt door ja in te voeren om de wijzigingen toe te passen.

Aanbevolen procedures

  • Versiebeheer gebruiken: Houd uw Terraform-configuratiebestanden onder versiebeheer (bijvoorbeeld Git) om wijzigingen in de loop van de tijd bij te houden.
  • Plan zorgvuldig controleren: Controleer altijd de uitvoer van het Terraform-plan voordat u wijzigingen toepast om ervoor te zorgen dat u begrijpt welke wijzigingen er worden aangebracht.
  • Statusbeheer: maak regelmatig een back-up van uw Terraform-statusbestanden om gegevensverlies te voorkomen.

Door deze stappen te volgen, kunt u effectief HCRP- en Arc VMware-VM's in Azure maken en beheren met behulp van Terraform en gastagents installeren op de gemaakte VM's.

Scenario 2

Maak een nieuwe Arc VMware-VM met behulp van sjablonen, resourcegroep, gegevensopslag en installeer Arc-agents.

Stap 1: Variabelen definiëren in een variables.tf-bestand

Maak een bestand met de naam variables.tf en definieer alle benodigde variabelen.

variable "subscription_id" {
  description = "The subscription ID for the Azure account."
  type        = string
}

variable "resource_group_name" {
  description = "The name of the resource group."
  type        = string
}

variable "location" {
  description = "The location/region where the resources will be created."
  type        = string
}

variable "machine_name" {
  description = "The name of the machine."
  type        = string
}

variable "vm_username" {
  description = "The admin username for the VM."
  type        = string
}

variable "vm_password" {
  description = "The admin password for the VM."
  type        = string
}

variable "template_id" {
  description = "The ID of the VM template."
  type        = string
}

variable "vcenter_id" {
  description = "The ID of the vCenter."
  type        = string
}

variable "resource_pool_id" {
  description = "The ID of the resource pool."
  type        = string
}

variable "datastore_id" {
  description = "The ID of the datastore."
  type        = string
}

variable "custom_location_id" {
  description = "The ID of the custom location."
  type        = string
}

Stap 2: Tfvars-bestand maken

Maak een bestand met de naam CreateVMwareVM.tfvars en geef voorbeeldwaarden op voor de variabelen.

subscription_id      = "your-subscription-id"
resource_group_name  = "your-resource-group"
location             = "eastus"
machine_name         = "test_machine0002"
vm_username          = "Administrator"
vm_password          = "*********"
template_id          = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ConnectedVMwarevSphere/virtualmachinetemplates/your-template-id"
vcenter_id           = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ConnectedVMwarevSphere/VCenters/your-vcenter-id"
resource_pool_id     = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ConnectedVMwarevSphere/resourcepools/your-resource-pool-id"
datastore_id         = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ConnectedVMwarevSphere/datastores/your-datastore-id"
custom_location_id   = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.ExtendedLocation/customLocations/your-custom-location-id"

Stap 3: de configuratie wijzigen voor het gebruik van variabelen

Maak een bestand met de naam main.tf en voeg de volgende code in.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 3.0"
    }
    azapi = {
      source  = "azure/azapi"
      version = ">= 1.0.0"
    }
  }
}

# Configure the AzureRM provider with the subscription ID
provider "azurerm" {
  features {}
  subscription_id = var.subscription_id
}

# Configure the AzAPI provider with the subscription ID
provider "azapi" {
  subscription_id = var.subscription_id
}

# Retrieve the resource group details
data "azurerm_resource_group" "example" {
  name = var.resource_group_name
}

# Create a VMware machine resource in Azure
resource "azapi_resource" "test_machine0002" {
  schema_validation_enabled = false
  parent_id = data.azurerm_resource_group.example.id
  type = "Microsoft.HybridCompute/machines@2023-06-20-preview"
  name = var.machine_name
  location = data.azurerm_resource_group.example.location
  body = jsonencode({
      kind = "VMware"
      identity = {
        type = "SystemAssigned"
      }
  })
}

# Create a Virtual Machine instance using the VMware machine created above
resource "azapi_resource" "test_vm0002" {
  schema_validation_enabled = false
  type = "Microsoft.ConnectedVMwarevSphere/VirtualMachineInstances@2023-10-01"
  name = "default"
  parent_id = azapi_resource.test_machine0002.id
  body = jsonencode({
      properties = {
          infrastructureProfile = {
            templateId = var.template_id
            vCenterId = var.vcenter_id
          }

          placementProfile = {
            resourcePoolId = var.resource_pool_id
            datastoreId = var.datastore_id
          }

          osProfile = {
            adminPassword = var.vm_password
          }
      }
      extendedLocation = {
        type = "CustomLocation"
        name = var.custom_location_id
      }
  })
  depends_on = [azapi_resource.test_machine0002]
}

# Create a guest agent for the VM instance
resource "azapi_resource" "guestAgent" {
  type      = "Microsoft.ConnectedVMwarevSphere/virtualMachineInstances/guestAgents@2023-10-01"
  parent_id = azapi_resource.test_vm0002.id
  name      = "default"
  body = jsonencode({
    properties = {
      credentials = {
        username = var.vm_username
        password = var.vm_password
      }
      provisioningAction = "install"
    }
  })
  schema_validation_enabled = false
  ignore_missing_property   = false
  depends_on = [azapi_resource.test_vm0002]
}

Stap 4: Terraform-opdrachten uitvoeren

Gebruik de vlag -var-file om het .tfvars-bestand door te geven tijdens Terraform-opdrachten.

  1. Terraform initialiseren (als dit nog niet is geïnitialiseerd): terraform init
  2. Valideer de configuratie: terraform validate -var-file="CreateVMwareVM.tfvars"
  3. Plan de wijzigingen: terraform plan -var-file="CreateVMwareVM.tfvars"
  4. Pas de wijzigingen toe: terraform apply -var-file="CreateVMwareVM.tfvars"

Bevestig de prompt door ja in te voeren om de wijzigingen toe te passen.

Aanbevolen procedures

  • Versiebeheer gebruiken: Houd uw Terraform-configuratiebestanden onder versiebeheer (bijvoorbeeld Git) om wijzigingen in de loop van de tijd bij te houden.
  • Plan zorgvuldig controleren: Controleer altijd de uitvoer van het Terraform-plan voordat u wijzigingen toepast om ervoor te zorgen dat u begrijpt welke wijzigingen er worden aangebracht.
  • Statusbeheer: maak regelmatig een back-up van uw Terraform-statusbestanden om gegevensverlies te voorkomen.

Volgende stappen

Voer bewerkingen uit op VMware-VM's in Azure.