Alıştırma - Kaynak dağıtım sırasını denetleme

Tamamlandı

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

  1. Visual Studio Code'u açın.

  2. Terminal menüsünü kullanarak bir terminal penceresi açın.

  3. 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.

    Screenshot of Terminal window, terminal type.

  4. Aksi takdirde, açılan menüyü seçin ve Varsayılan Kabuğu Seç seçeneğini belirtin.

  5. pwsh seçeneğini belirleyin.

    Screenshot that shows selecting a shell from the drop-down menu.

  6. Kabuk olarak pwsh ile yeni bir terminal oluşturmak için terminalde + öğesini seçin.

Azure'da oturum açma

  1. Hesabınızda oturum açmak için Connect-AzAccount komutunu çalıştırın.

    Connect-AzAccount
    

    Bir tarayıcı penceresi açılır.

  2. Korumalı alanı etkinleştirmek için kullandığınız hesabı seçin ve sorulduğunda tarayıcı penceresini kapatın.

Etkin aboneliği ayarlama

  1. 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.

  2. 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.

  1. 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'
    
  2. 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.

  3. Ş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:

  1. 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.

  2. 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
    
  3. 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

  1. Visual Studio Code'u açın.

  2. Terminal menüsünü kullanarak bir terminal penceresi açın.

  3. Açılan menüde tercih ettiğiniz kabuk (bash veya zsh gibi) görünüyorsa bir sonraki bölüme geçebilirsiniz.

  4. Aksi takdirde, açılan menüyü seçin ve Varsayılan Kabuğu Seç seçeneğini belirtin.

  5. İstediğiniz kabuk türünü seçin.

    Screenshot that shows selecting a shell from the drop-down menu.

  6. Seçtiğiniz kabuk türüyle yeni bir terminal oluşturmak için terminalde + öğesini seçin.

Azure'da oturum açma

  1. Terminalden az login komutunu çalıştırın:

    az login
    

    Bir tarayıcı penceresi açılır.

  2. 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.

  1. 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 şu curl komutunu çalıştırabilirsiniz:

    curl https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json > azuredeploy.json
    
  2. Ş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:

  1. 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
    
  2. 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
    
  3. 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.

  4. 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
    
  5. 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.