Alıştırma - Kaynak dağıtım sırasını denetleme
Bu bölümde öncelikle birkaç basit kurulum görevi gerçekleştireceksiniz. Visual Studio Code'da terminal oturumuyla ücretsiz Azure korumalı alan ortamı tarafından sağlanan Azure aboneliğine bağlanacaksınız. Bu sayede Azure'a göndereceğiniz komutlar için kimlik doğrulaması gerçekleştirebileceksiniz.
Ardından bir Linux sanal makinesi sağlayan basit bir ARM şablonu çalıştıracaksınız. Dağıtım tamamlandıktan sonra sanal makinenin çalıştığını ve bağlantı kurulabildiğini doğrulayacaksınız.
Sanal makinelerle çalışmak sık gerçekleştirilen bir görev olsa da bir sanal makine kaynağının oluşturulabilmesi için öncelikle ağ ve depolama bileşenlerinin oluşturulması gerektiğini keşfedeceksiniz. Yapısının dependsOn
kaynakların sağlandığı sırayı ayarlamanıza nasıl olanak sağladığını görürsünüz.
Kurulum
Burada Visual Studio Code'u açıp bir PowerShell oturumu oluşturacak ve ücretsiz Azure korumalı alan ortamı tarafından sağlanan Azure aboneliğine bağlanacaksınız.
Bu kurulum görevlerini bu modül için yalnızca bir kez gerçekleştirmeniz gerekir. Oturumunuz kapatılır veya bağlantınız kesilirse sonraki alıştırmalarda yine bu adımlara başvurabilirsiniz.
Visual Studio Code'da PowerShell'i açma
Visual Studio Code'u açın.
Terminal menüsünü kullanarak bir terminal penceresi açın.
Terminal penceresinin sağındaki açılan menüde pwsh görünüyorsa, çalışacağınız doğru kabuğa sahipsiniz demektir ve sonraki bölüme atlayabilirsiniz.
Aksi takdirde, açılan menüyü seçin ve Varsayılan Kabuğu Seç seçeneğini belirtin.
pwsh seçeneğini belirleyin.
Kabuk olarak pwsh ile yeni bir terminal oluşturmak için terminalde + öğesini seçin.
Azure'da oturum açma
Hesabınızda oturum açmak için
Connect-AzAccount
komutunu çalıştırın.Connect-AzAccount
Bir tarayıcı penceresi açılır.
Korumalı alanı etkinleştirmek için kullandığınız hesabı seçin ve sorulduğunda tarayıcı penceresini kapatın.
Etkin aboneliği ayarlama
Korumalı alan aboneliğinin kimliğini almak için
Get-AzSubscription
komutunu çalıştırın.Get-AzSubscription
Concierge Subscription
öğesini bulun ve ikinci sütunu kopyalayın. cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0 gibi görünecektir.Etkin aboneliğinizi, Concierge Aboneliği olarak değiştirmek için
Set-AzContext
komutunu çalıştırın.Dekont
{Your subscription ID} yerine bir önceki komutla elde ettiğiniz Concierge Aboneliği kimliğini yazmayı unutmayın.
$subscription = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $subscription
Varsayılan kaynak grubunu ayarlama
Normalde bir Azure CLI komutu çalıştırdığınızda kaynak grubunu belirtmeniz gerekir.
Korumalı alanda sizin için varsayılan bir kaynak grubu oluşturulmuştur. Azure CLI komutlarını daha kolay takip edebilmeniz için bu aşamada varsayılan kaynak grubunu ayarlayacaksınız.
Varsayılan kaynak grubunu ayarlamak için Set-AzDefault
cmdlet'ini çalıştırın.
Set-AzDefault -ResourceGroupName <rgn>resource group name</rgn>
Dekont
Normalde Azure kaynağı dağıtmak için PowerShell'i kullandığınızda kaynak grubu adını belirtmeniz gerekir. Dağıtımınızın bağlamını Set-AzDefault
kullanarak ayarladığınızdan bu gereksinimi atlamış oluyorsunuz.
Tipik bir sanal makine dağıtımının bileşenleri
Dağıttığınız bir sanal makinenin çalışması için onunla birlikte dağıtılması gereken birçok farklı kaynak olduğunu unutmayın.
Aşağıda genellikle bir sanal makine ile birlikte dağıtılması gereken kaynak türleri özetlenmiştir:
- Microsoft.Storage/storageAccounts. Depolama hesabı, işletim sistemi ve dosyalar için disk alanı sağlar.
- Microsoft.Network/publicIPAddresses. Genel IP adresi, sanal makineye internet üzerinden bağlanmanızı sağlar.
- Microsoft.Network/networkSecurityGroups. Ağ güvenlik grubu, sanal ağınızla ilgili gelen ve giden trafiği işlemeye yönelik kurallar içerir.
- Microsoft.Network/virtualNetworks. Sanal makinenizin bir sanal ağa yerleştirilmesi gerekir. Bu kaynak için öncesinde ağ güvenlik grubunun dağıtılması gerekir.
- Microsoft.Network/networkInterfaces. Bu kaynak iki farklı kaynağa bağımlıdır: genel IP adresi ve sanal ağ.
- Microsoft.Compute/virtualMachines. Sanal makine, dağıtmak istediğiniz birincil kaynaktır. İki farklı kaynağa bağımlıdır: depolama hesabı ve ağ arabirimleri.
Bir Linux sanal makinesi dağıtma
Burada sizin için sunulan GitHub deposundan bir ARM şablonu indireceksiniz. Şablon bir Linux sanal makinesi ile onu çalıştırmak için gerekli olan tüm kaynakları sağlar.
ARM şablonunu indirmek için aşağıdaki
curl
komutunu çalıştırın:curl -O 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json'
ConvertTo-SecureString
cmdlet’ini çalıştırın ve sonuçları$secure
adlı bir PowerShell değişkenine atayın:$secure = "insecurepassword123!" | ConvertTo-SecureString -AsPlainText -Force
Artık bir sonraki aşamada dağıtım betiğini geçirebileceğiniz şifrelenmiş bir parola sürümüne sahipsiniz.
Şablonu dağıtmak için
New-AzResourceGroupDeployment
komutunu çalıştırın:New-AzResourceGroupDeployment ` -TemplateFile "./azuredeploy.json" ` -adminUsername "azureuser" ` -vmName "vm1" ` -adminPasswordOrKey $secure
Komutun çalıştırılması birkaç dakika sürebilir. Komut çalışırken isterseniz ayrı bir tarayıcı sekmesinde ARM şablonunu inceleyebilirsiniz.
Kaynak bağımlılıklarını görmek için
dependsOn
anahtarını aratın. Örneğin sanal makine kaynağı, ağ arabirimine bağımlıdır:"type": "Microsoft.Compute/virtualMachines", "apiVersion": "2020-06-01", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]" ],
Dağıtımı doğrulama
Sanal makinenin sağlandığını ve SSH üzerinden bağlantı kurulabildiğini doğrulayın. Yapmak için:
SSH ile sanal makineye bağlanmak için
Invoke-Expression
komutunu çalıştırın:Invoke-Expression (Get-AzResourceGroupDeployment -Name azuredeploy -ResourceGroupName <rgn>your resource group</rgn>).outputs.sshCommand.value
İstendiğinde bağlanmaya devam etmek için girin
yes
. Ardından yönetici parolasınıinsecurepassword123!
girin.Önemli
Normal kullanımda parolaları güvenli bir şekilde saklamanız gerekir. Parolalardan daha güvenli olan ortak anahtar kimlik doğrulamasını da kullanabilirsiniz.
Sanal makineye SSH bağlantısı kurmak için
hostname
komutunu çalıştırarak sanal makinenin ana bilgisayar adını yazdırın:hostname
VM'nin iç ana bilgisayar adını görürsünüz:
vm1
vm1
exit
komutunu çalıştırarak SSH oturumunu kapatın.exit
Tebrikler, ARM şablonu kullanarak Linux sanal makinesi dağıtma adımını başarıyla tamamladınız. Sanal makine, bağımlı kaynaklar içeren yaygın bir kaynak türüdür.
Kurulum
Burada Visual Studio Code'u açıp bir terminal oturumu oluşturacak ve ücretsiz Azure korumalı alan ortamı tarafından sağlanan Azure aboneliğine bağlanacaksınız.
Bu kurulum görevlerini bu modül için yalnızca bir kez gerçekleştirmeniz gerekir. Oturumunuz kapatılır veya bağlantınız kesilirse sonraki alıştırmalarda yine bu adımlara başvurabilirsiniz.
Visual Studio Code'da kabuk açma
Visual Studio Code'u açın.
Terminal menüsünü kullanarak bir terminal penceresi açın.
Açılan menüde tercih ettiğiniz kabuk (bash veya zsh gibi) görünüyorsa bir sonraki bölüme geçebilirsiniz.
Aksi takdirde, açılan menüyü seçin ve Varsayılan Kabuğu Seç seçeneğini belirtin.
İstediğiniz kabuk türünü seçin.
Seçtiğiniz kabuk türüyle yeni bir terminal oluşturmak için terminalde + öğesini seçin.
Azure'da oturum açma
Terminalden
az login
komutunu çalıştırın:az login
Bir tarayıcı penceresi açılır.
Korumalı alanı etkinleştirmek için kullandığınız hesabı seçin ve sorulduğunda tarayıcı penceresini kapatın.
Etkin aboneliği ayarlama
Azure korumalı alanı ortamını etkin aboneliğiniz olarak ayarlamak için aşağıdaki az account set
komutunu çalıştırın:
az account set -s "Concierge Subscription"
Dekont
Komut başarısız olursa az account list --refresh --all
komutunu ve ardından yeniden az account set
komutunu çalıştırın.
Varsayılan kaynak grubunu ayarlama
Normalde bir Azure CLI komutu çalıştırdığınızda kaynak grubunu belirtmeniz gerekir.
Korumalı alanda sizin için varsayılan bir kaynak grubu oluşturulmuştur. Azure CLI komutlarını daha kolay takip edebilmeniz için bu aşamada varsayılan kaynak grubunu ayarlayacaksınız.
Varsayılan kaynak grubunu ayarlamak için aşağıdaki az configure
komutunu çalıştırın:
az configure --defaults group=<rgn>resource group name</rgn>
Tipik bir sanal makine dağıtımının bileşenleri
Dağıttığınız bir sanal makinenin çalışması için onunla birlikte dağıtılması gereken birçok farklı kaynak olduğunu unutmayın.
Aşağıda genellikle bir sanal makine ile birlikte dağıtılması gereken kaynak türleri özetlenmiştir:
- Microsoft.Storage/storageAccounts. Depolama hesabı, işletim sistemi ve dosyalar için disk alanı sağlar.
- Microsoft.Network/publicIPAddresses. Genel IP adresi, sanal makineye internet üzerinden bağlanmanızı sağlar.
- Microsoft.Network/networkSecurityGroups. Ağ güvenlik grubu, sanal ağınızla ilgili gelen ve giden trafiği işlemeye yönelik kurallar içerir.
- Microsoft.Network/virtualNetworks. Sanal makinenizin bir sanal ağa yerleştirilmesi gerekir. Bu kaynak için öncesinde ağ güvenlik grubunun dağıtılması gerekir.
- Microsoft.Network/networkInterfaces. Bu kaynak iki farklı kaynağa bağımlıdır: genel IP adresi ve sanal ağ.
- Microsoft.Compute/virtualMachines. Sanal makine, dağıtmak istediğiniz birincil kaynaktır. İki farklı kaynağa bağımlıdır: depolama hesabı ve ağ arabirimleri.
Bir Linux sanal makinesi dağıtma
Burada sizin için sunulan GitHub deposundan bir Azure Resource Manager (ARM) şablonu indireceksiniz. Şablon bir Linux sanal makinesi ile onu çalıştırmak için gerekli olan tüm kaynakları sağlar.
ARM şablonunu indirmek için aşağıdaki
wget
komutunu çalıştırın:wget https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json
wget
yüklü değilse şucurl
komutunu çalıştırabilirsiniz:curl https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json > azuredeploy.json
Şablonu dağıtmak için
az deployment group create
komutunu çalıştırın:az deployment group create \ --template-file azuredeploy.json \ --parameters adminUsername=azureuser vmName=vm1 adminPasswordOrKey='insecurepassword123!'
Komutun çalıştırılması birkaç dakika sürebilir. Komut çalışırken isterseniz ayrı bir tarayıcı sekmesinde ARM şablonunu inceleyebilirsiniz.
Kaynak bağımlılıklarını görmek için
dependsOn
anahtarını aratın. Örneğin sanal makine kaynağı, ağ arabirimine bağımlıdır:"type": "Microsoft.Compute/virtualMachines", "apiVersion": "2020-06-01", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]" ],
Dağıtımı doğrulama
Sanal makinenin sağlandığını ve SSH üzerinden bağlantı kurulabildiğini doğrulayın. Yapmak için:
Aboneliğinizdeki dağıtım gruplarını listelemek için aşağıdaki
az deployment group list
komutunu çalıştırın:az deployment group list --output table
azuredeploy adlı tek bir dağıtım grubu göreceksiniz:
Name ResourceGroup State Timestamp Mode ----------- ------------------------------------------ --------- -------------------------------- ----------- azuredeploy learn-1ef901aa-3f6a-46aa-8e93-a7f11e5192b8 Succeeded 2020-11-24T17:55:39.762517+00:00 Incremental
Sanal makineye bağlanmak için kullanabileceğiniz SSH komutunu görmek için aşağıdaki
az deployment group show
komutunu çalıştırın:az deployment group show \ --name azuredeploy \ --query properties.outputs.sshCommand.value \ --output tsv
Bu özellik, ARM şablonunun
output
bölümünde tanımlanmıştır. Bir örnek aşağıda verilmiştir:ssh azureuser@simplelinuxvm-a33zb3sc332ue.westus.cloudapp.azure.com
Komutu yeniden çalıştırın ancak bu kez SSH komutunu yürütmek için
$()
söz dizimini kullanın:$(az deployment group show \ --name azuredeploy \ --query properties.outputs.sshCommand.value \ --output tsv)
İstendiğinde bağlanmaya devam etmek için girin
yes
. Ardından yönetici parolasınıinsecurepassword123!
girin.Önemli
Normal kullanımda parolaları güvenli bir şekilde saklamanız gerekir. Parolalardan daha güvenli olan ortak anahtar kimlik doğrulamasını da kullanabilirsiniz.
Sanal makineye SSH bağlantısı kurmak için
hostname
komutunu çalıştırarak sanal makinenin ana bilgisayar adını yazdırın:hostname
VM'nin iç ana bilgisayar adını görürsünüz:
vm1
vm1
exit
komutunu çalıştırarak SSH oturumunu kapatın.exit
Tebrikler, ARM şablonu kullanarak Linux sanal makinesi dağıtma adımını başarıyla tamamladınız. Sanal makine, bağımlı kaynaklar içeren yaygın bir kaynak türüdür.