Öğ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:
Visual Studio Code ve Resource Manager Araçları uzantısı. Bkz. Hızlı Başlangıç: Visual Studio Code ile ARM şablonları oluşturma.
Güvenliği artırmak istiyorsanız sanal makine yönetici hesabı için oluşturulmuş bir parola kullanın. PowerShell veya Bash'te aşağıdaki komutu çalıştırmak için Azure Cloud Shell kullanabilirsiniz:
openssl rand -base64 32
Daha fazla bilgi edinmek için komutunu çalıştırarak
man openssl rand
el ile açılan sayfayı açın.Azure Key Vault şifreleme anahtarları ve diğer gizli dizileri korumak üzere tasarlanmıştır. Daha fazla bilgi için bkz. Öğretici: Azure Key Vault ARM şablonu dağıtımınızla tümleştirme. Ayrıca parolanızı her üç ayda bir güncelleştirmenizi öneririz.
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).
Visual Studio Code'da DosyaAç Dosya'yı> seçin.
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
Dosyayı açmak için Aç'ı seçin. Şablon beş kaynak tanımlar:
Microsoft.Compute/virtualMachines.
Şablonu özelleştirmeden önce temel bilgilere ulaşmak yararlı olur.
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 fileUris
ve ş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.
Şablonda bulun
securityRules
.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:
Kaynakları temizleme
Dağıttığınız Azure kaynaklarına artık ihtiyacınız kalmadığında, kaynak grubunu silerek bunları temizleyin.
- Azure portal sol bölmede Kaynak grubu'na tıklayın.
- Ada göre filtrele kutusuna kaynak grubu adını girin.
- Kaynak grubu adını seçin. Kaynak grubunda altı kaynak görüntülenir.
- Ü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: