Aracılığıyla paylaş


Azure Arc kullanarak VMware vCenter'da sanal makine oluşturma

Bu makalede, Azure portalından vCenter kaynaklarını kullanarak vm sağlama açıklanmaktadır.

Azure portalında bir VM oluşturma

Yöneticiniz bir VMware vCenter'ı Azure'a bağladıktan, Azure'daki VMware vCenter kaynaklarını temsil ettikten ve size bu kaynaklar üzerinde izinler sağladıktan sonra bir sanal makine oluşturacaksınız.

Önkoşullar

  • Arc VMware VM katkıda bulunan rolüne sahip olduğunuz bir Azure aboneliği ve kaynak grubu.
  • Arc Özel Bulut Kaynağı Kullanıcı Rolüne sahip olduğunuz kaynak havuzu/küme/konak.
  • Arc Özel Bulut Kaynağı Kullanıcı Rolünüz olan bir sanal makine şablonu kaynağı.
  • Arc Özel Bulut Kaynağı Kullanıcı Rolünüz olan bir sanal ağ kaynağı.

Azure portalında VM oluşturmak için şu adımları izleyin:

  1. Tarayıcınızdan Azure portal’a gidin. Sanal makineler göz atma görünümüne gidin. Azure ve Arc sanal makineleri için birleşik bir göz atma deneyimi göreceksiniz.

    Azure ve Arc sanal makineleri için birleşik göz atma deneyimini gösteren ekran görüntüsü.

  2. Ekle'yi ve ardından açılan listeden Azure Arc makinesi'ni seçin.

    Azure Arc sanal makinesi oluşturmaya yönelik Temel sekmesini gösteren ekran görüntüsü.

  3. VM'yi dağıtmak istediğiniz Abonelik ve Kaynak grubunu seçin.

  4. Sanal makine adını belirtin ve ardından yöneticinizin sizinle paylaştığı özel konumu seçin.

    Birden çok vm türü destekleniyorsa Sanal makine türü açılan listesindeN VMware'i seçin.

  5. VM'nin dağıtılacağı Kaynak havuzunu/kümeyi/konağı seçin.

  6. Depolama için kullanmak istediğiniz veri depolarını seçin.

  7. VM'yi oluşturacağınız Şablon'u seçin.

    İpucu

    CPU Çekirdekleri ve Bellek için şablon varsayılanlarını geçersiz kılabilirsiniz.

    Bir Windows şablonu seçtiyseniz, Yönetici hesabı için bir Kullanıcı Adı, Parola girin.

  8. (İsteğe bağlı) Şablonda yapılandırılan diskleri değiştirin. Örneğin, daha fazla disk ekleyebilir veya mevcut diskleri güncelleştirebilirsiniz. 6. adımda seçilen veri deposunda tüm diskler ve VM'ler yer alır.

  9. (İsteğe bağlı) Şablonda yapılandırılan ağ arabirimlerini değiştirin. Örneğin, ağ arabirimi (NIC) kartları ekleyebilir veya mevcut NIC'leri güncelleştirebilirsiniz. Ağ kaynağı için uygun izinlere sahip olmanız koşuluyla, bu NIC'nin bağlanacağı ağı da değiştirebilirsiniz.

  10. (İsteğe bağlı) Gerekirse VM kaynağına etiketler ekleyin.

  11. Tüm özellikleri gözden geçirdikten sonra Oluştur'u seçin. VM'nin oluşturulması birkaç dakika sürer.

Bu makalede, Bicep şablonu kullanarak vCenter kaynaklarını kullanarak vm sağlama açıklanmaktadır.

Bicep şablonunu kullanarak Arc VMware makinesi oluşturma

Arc VMware makinesi oluşturmak için aşağıdaki bicep şablonu kullanılabilir. Arc özellikli VMware kaynakları için kullanılabilir Azure Resource Manager (ARM), Bicep ve Terraform şablonlarının listesi aşağıdadır . Başka bir Arc işlemini tetikleyebilmek için ilgili ARM şablonunu Bicep şablonuna dönüştürün.

// 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

Bu makalede Terraform şablonu kullanarak vCenter kaynaklarını kullanarak vm sağlama açıklanmaktadır.

Terraform ile Arc VMware makinesi oluşturma

Önkoşullar

  • Azure Aboneliği: Etkin bir Azure aboneliğiniz olduğundan emin olun.
  • Terraform: Terraform'u makinenize yükleyin.
  • Azure CLI: Kaynakların kimliğini doğrulamak ve yönetmek için Azure CLI'yi yükleyin.

Terraform kullanarak Arc VMware makinesi oluşturmak için bu adımları izleyin. Bu makalede aşağıdaki iki senaryo ele alınmıştır:

  1. vCenter envanterinde bulunan VM'ler için Azure işleminde etkinleştirme gerçekleştirin ve Arc aracılarını yükleyin.
  2. Şablonları, Kaynak havuzunu, Datastore'yu kullanarak yeni bir Arc VMware VM oluşturun ve Arc aracılarını yükleyin.

1. Senaryo

vCenter envanterinde bulunan VM'ler için Azure işleminde etkinleştirme gerçekleştirin ve Arc aracılarını yükleyin.

1. Adım: variables.tf dosyasında değişkenleri tanımlama

variables.tf adlı bir dosya oluşturun ve gerekli tüm değişkenleri tanımlayın.

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
}

2. Adım: Tfvars dosyası oluşturma

CreateVMwareVM.tfvars adlı bir dosya oluşturun ve değişkenler için örnek değerler sağlayın.

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 "

3. Adım: Yapılandırmayı değişkenleri kullanacak şekilde değiştirme

main.tf adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin.

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]
}

4. Adım: Terraform komutlarını çalıştırma

Terraform komutları sırasında .tfvars dosyasını geçirmek için -var-file bayrağını kullanın.

  1. Terraform'ı başlatın (henüz başlatılmadıysa): terraform init
  2. Yapılandırmayı doğrulayın: terraform validate -var-file="CreateVMwareVM.tfvars"
  3. Değişiklikleri planlayın: terraform plan -var-file="CreateVMwareVM.tfvars"
  4. Değişiklikleri uygulayın: terraform apply -var-file="CreateVMwareVM.tfvars"

Değişiklikleri uygulamak için evet yazarak istemi onaylayın.

En iyi yöntemler

  • Sürüm denetimini kullanma: Terraform yapılandırma dosyalarınızı zaman içinde değişiklikleri izlemek için sürüm denetimi (örneğin Git) altında tutun.
  • Planları dikkatle gözden geçirin: Değişiklikleri uygulamadan önce her zaman terraform planının çıkışını gözden geçirerek hangi değişikliklerin gerçekleştirileceğini anladığınızdan emin olun.
  • Durum yönetimi: Veri kaybını önlemek için Terraform durum dosyalarınızı düzenli olarak yedekleyin.

Bu adımları izleyerek Terraform kullanarak Azure'da HCRP ve Arc VMware VM'lerini etkili bir şekilde oluşturup yönetebilir ve oluşturulan VM'lere konuk aracıları yükleyebilirsiniz.

2. Senaryo

Şablonları, Kaynak havuzunu, Datastore'yu kullanarak yeni bir Arc VMware VM oluşturun ve Arc aracılarını yükleyin.

1. Adım: variables.tf dosyasında değişkenleri tanımlama

variables.tf adlı bir dosya oluşturun ve gerekli tüm değişkenleri tanımlayın.

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
}

2. Adım: tfvars dosyası oluşturma

CreateVMwareVM.tfvars adlı bir dosya oluşturun ve değişkenler için örnek değerler sağlayın.

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"

3. Adım: Yapılandırmayı değişkenleri kullanacak şekilde değiştirme

main.tf adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin.

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]
}

4. Adım: Terraform komutlarını çalıştırma

Terraform komutları sırasında .tfvars dosyasını geçirmek için -var-file bayrağını kullanın.

  1. Terraform'ı başlatın (henüz başlatılmadıysa): terraform init
  2. Yapılandırmayı doğrulayın: terraform validate -var-file="CreateVMwareVM.tfvars"
  3. Değişiklikleri planlayın: terraform plan -var-file="CreateVMwareVM.tfvars"
  4. Değişiklikleri uygulayın: terraform apply -var-file="CreateVMwareVM.tfvars"

Değişiklikleri uygulamak için evet yazarak istemi onaylayın.

En iyi yöntemler

  • Sürüm denetimini kullanma: Terraform yapılandırma dosyalarınızı zaman içinde değişiklikleri izlemek için sürüm denetimi (örneğin Git) altında tutun.
  • Planları dikkatle gözden geçirin: Değişiklikleri uygulamadan önce her zaman terraform planının çıkışını gözden geçirerek hangi değişikliklerin gerçekleştirileceğini anladığınızdan emin olun.
  • Durum yönetimi: Veri kaybını önlemek için Terraform durum dosyalarınızı düzenli olarak yedekleyin.

Sonraki adımlar

Azure'daki VMware VM'lerinde işlem gerçekleştirme.