Öğretici: ARM şablonlarıyla sanal makine uzantılarını dağıtma

Azure VM'lerinde dağıtım sonrası yapılandırma ve otomasyon görevleri gerçekleştirme amacıyla Azure sanal makine uzantılarını kullanmayı öğrenin. Azure VM'leri ile kullanabileceğiniz birçok farklı VM uzantısı vardır. Bu öğreticide, Bir Azure Resource Manager şablonundan (ARM şablonu) Bir Windows VM'de PowerShell betiği çalıştırmak için bir Özel Betik uzantısı dağıtacaksınız. Bu betik, VM'ye Web Sunucusu yükler.

Bu öğretici aşağıdaki görevleri kapsar:

  • PowerShell betiğini hazırlama
  • Hızlı başlangıç şablonunu açma
  • Şablonu düzenleme
  • Şablonu dağıtma

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

Bu makaleyi tamamlamak için gerekenler:

PowerShell betiğini hazırlama

Satır içi PowerShell betiği veya betik dosyası kullanabilirsiniz. Bu öğreticide betik dosyasının nasıl kullanılacağı gösterilmektedir. Aşağıdaki içeriğe sahip bir PowerShell betiği GitHub'dan paylaşılır:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Dosyayı kendi konumunuza yayımlamayı seçerseniz, öğreticinin fileUri devamında şablondaki öğesini güncelleştirin.

Hızlı başlangıç şablonunu açma

Azure Hızlı Başlangıç Şablonları, ARM şablonları için bir depodur. Sıfırdan bir şablon oluşturmak yerine örnek bir şablon bulabilir ve bunu özelleştirebilirsiniz. Bu öğreticide kullanılan şablonun adı: Deploy a simple Windows VM (Basit bir Windows sanal makinesi dağıtma).

  1. Visual Studio Code'da DosyaAç Dosya'yı> seçin.

  2. Dosya adı kutusuna aşağıdaki URL'yi yapıştırın:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Dosyayı açmak için Aç'ı seçin. Şablon beş kaynak tanımlar:

  4. Dosya>Farklı Kaydet'i seçerek dosyanın bir kopyasını azuredeploy.json adıyla yerel bilgisayarınıza kaydedin.

Şablonu düzenleme

Aşağıdaki içeriği kullanarak var olan şablona bir sanal makine uzantısı kaynağı ekleyin:

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "apiVersion": "2021-04-01",
  "name": "[format('{0}/{1}', variables('vmName'), 'InstallWebServer')]",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[format('Microsoft.Compute/virtualMachines/{0}',variables('vmName'))]"
  ],
  "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.7",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/tutorial-vm-extension/installWebServer.ps1"
      ],
      "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File installWebServer.ps1"
    }
  }
}

Bu kaynak tanımı hakkında daha fazla bilgi için uzantı başvurusuna bakın. Önemli öğeler şunlardır:

  • name: Uzantı kaynağı sanal makine nesnesinin alt kaynağı olduğundan, adın sanal makine adı ön ekini içermesi gerekir. Bkz. Alt kaynaklar için ad ve tür ayarlama.
  • dependsOn: Sanal makineyi oluşturduktan sonra uzantı kaynağını oluşturun.
  • fileUris: Betik dosyalarının depolandığı konumlar. Sağlanan konumu kullanmamayı seçerseniz, değerleri güncelleştirmeniz gerekir.
  • commandToExecute: Bu komut betiği çağırır.

Satır içi betik kullanmak için öğesini kaldırın fileUrisve şu şekilde güncelleştirin commandToExecute :

powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)

Bu satır içi betik ,iisstart.html içeriğini de güncelleştirir.

Web sunucusuna erişebilmek için HTTP bağlantı noktasını da açmanız gerekir.

  1. Şablonda bulun securityRules .

  2. Default-allow-3389'un yanına aşağıdaki kuralı ekleyin.

    {
      "name": "AllowHTTPInBound",
      "properties": {
        "priority": 1010,
        "access": "Allow",
        "direction": "Inbound",
        "destinationPortRange": "80",
        "protocol": "Tcp",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "*"
      }
    }
    

Şablonu dağıtma

Dağıtım yordamı için Öğretici: Bağımlı kaynaklarla ARM şablonları oluşturma'nınŞablonu dağıtma bölümüne bakın. Sanal makine yöneticisi hesabı için oluşturulmuş bir parola kullanmanızı öneririz. Bu makalenin Önkoşullar bölümüne bakın.

vm'nin genel IP adresini almak için Cloud Shell aşağıdaki komutu çalıştırın:

(Get-AzPublicIpAddress -ResourceGroupName $resourceGroupName).IpAddress

IP adresini bir Web tarayıcısına yapıştırın. Varsayılan Internet Information Services (IIS) karşılama sayfası açılır:

Internet Information Services karşılama sayfasının ekran görüntüsü.

Kaynakları temizleme

Dağıttığınız Azure kaynaklarına artık ihtiyacınız kalmadığında, kaynak grubunu silerek bunları temizleyin.

  1. Azure portal sol bölmede Kaynak grubu'na tıklayın.
  2. Ada göre filtrele kutusuna kaynak grubu adını girin.
  3. Kaynak grubu adını seçin. Kaynak grubunda altı kaynak görüntülenir.
  4. Üstteki menüde Kaynak grubunu sil'i seçin.

Sonraki adımlar

Bu öğreticide bir sanal makine ve bir sanal makine uzantısı dağıttınız. Uzantı, sanal makineye IIS web sunucusunu yükledi. BACPAC dosyasını içeri aktarmak için Azure SQL Veritabanı uzantısını kullanmayı öğrenmek için bkz: