Alıştırma - Azure CLI’dan bir Azure VM görüntüsü oluşturma ve yeni bir VM sağlama

Tamamlandı

Bu örnek senaryoda kuruluşunuz, Azure’da sanal makineler kullanan yeni bir ortam dağıtıyor. Kuruluşun işlevlerini desteklemek için gereken yazılım ve araçları içeren bir sanal makineyi zaten oluşturdunuz. Yeni sanal makine örnekleri oluşturmak için kullanabileceğiniz özel bir görüntü oluşturmak üzere bu sanal makineyi kullanmanız gerekiyor.

Bu alıştırmada, bir sanal makine oluşturacak ve genelleştireceksiniz. Ardından genelleştirilmiş sanal makineden bir görüntü oluşturacak ve ardından bu görüntüyü kullanarak başka bir sanal makine oluşturacaksınız. Önceki kutuda platform türünü seçerek bunu Windows veya Linux (ya da her ikisi) ile deneyebilirsiniz.

Varsayılan kaynak grubunuzu ayarlama

  1. Azure Korumalı Alanında oturum açarak sağdaki Cloud Shell penceresini etkinleştirin.

  2. Sağdaki Cloud Shell penceresine aşağıdaki komutu yazarak birlikte çalışılacak varsayılan kaynak grubunu ayarlayın. Bu, tüm komutlardan kaynak grubu adını çıkarmanıza olanak sağlar.

    az configure --defaults group="<rgn>[Sandbox resource group name]</rgn>"
    

Sanal makine oluşturun

Bu görevde, basit bir web uygulaması çalıştıran bir sanal makineyi hızlıca oluşturacaksınız. Web uygulaması konak makinenin adını görüntüler. Bu sanal makineyi, alıştırmanın geri kalanında temel alacaksınız.

  1. Azure Cloud Shell’de, IIS çalıştıran bir Windows Server Datacenter sanal makinesi oluşturmak için aşağıdaki komutları çalıştırın. azureuser parolası sorulduğunda tercih ettiğiniz parolayı girin.

    az vm create \
        --name MyWindowsVM \
        --image Win2019Datacenter \
        --admin-username azureuser
    
  2. VM oluşturmayı tamamladığında IIS'yi yüklemek ve varsayılan bir web sayfası ayarlamak için aşağıdaki komutu çalıştırın:

    az vm extension set \
        --name CustomScriptExtension \
        --vm-name MyWindowsVM \
        --publisher Microsoft.Compute \
        --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $(hostname)"}'
    
  3. IIS yüklemeyi tamamladığında, web sunucusuna 80 numaralı bağlantı noktasını açmak için aşağıdaki komutu çalıştırın:

    az vm open-port \
        --name MyWindowsVM \
        --port 80
    
  4. Yeni sanal makinenin genel IP adresini bulmak için aşağıdaki komutu çalıştırın:

    echo http://$(az vm list-ip-addresses \
                 --name MyWindowsVM \
                 --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                 --output tsv)
    
  5. Web tarayıcısında, sanal makinenin genel IP adresine gidin. Sanal makinenin (MyWindowsVM) adını görüntüleyen bir web sayfasının göründüğünü doğrulayın.

    Screenshot of the webpage from the Windows virtual machine.

  1. Cloud Shell’de, Nginx çalıştıran bir Ubuntu Server sanal makinesi oluşturmak için aşağıdaki komutları çalıştırın.

    az vm create \
        --name MyUbuntuVM \
        --image Ubuntu2204 \
        --generate-ssh-keys
    
    az vm open-port \
        --name MyUbuntuVM \
        --port 80
    
    az vm extension set \
        --publisher Microsoft.Azure.Extensions \
        --name CustomScript \
        --vm-name MyUbuntuVM \
        --settings '{"commandToExecute":"apt-get -y update && apt-get -y install nginx && hostname > /var/www/html/index.html"}'
    
  2. VM oluşturmayı tamamladığında, yeni sanal makinenin genel IP adresini bulmak için aşağıdaki komutu çalıştırın:

    echo http://$(az vm list-ip-addresses \
                 --name MyUbuntuVM \
                 --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                 --output tsv)
    
  3. Web tarayıcısında, sanal makinenin genel IP adresine gidin. MyUbuntuVM adlı sanal makinenin adını gösteren bir web sayfası görüntülendiğini doğrulayın.

    Screenshot of the webpage from the Ubuntu virtual machine.

Sanal makineyi genelleştirme

  1. Azure Portal oturum açın.

  2. Azure portalı menüsünde veya Giriş sayfasında Kaynak grupları’nı seçip [Korumalı alan kaynak grubu adı] kaynak grubunu belirleyin.

  3. MyWindowsVM sanal makinesini seçin.

  4. MyWindowsVM sayfasında Bağlan seçin ve ardından Yerel RDP kutusunda Seç düğmesini seçin.

  5. Yerel RDP penceresinde RDP Dosyasını İndir'i seçin.

    Screenshot of the Windows virtual machine page, highlighting the Connect button and RDP download.

  6. RDP dosyası indirildiğinde, sanal makineye bir RDP bağlantısı açmak için seçin.

  7. Uzak Masaüstü Bağlantısı iletişim kutusunda Bağlan’ı seçin.

    Screenshot of the Remote Desktop Connection dialog box, stating that the remote connection can't be identified. The Connect button is highlighted.

  8. Windows Güvenliği iletişim kutusunda Diğer seçenekler'i ve ardından Başka bir hesap kullanın'ı seçin.

  9. azureuser kullanıcı adı ve özgün sanal makineyi oluştururken kullandığınız yönetici parolası ile oturum açın.

  10. Devam etmek için Uzak Masaüstü Bağlantısı iletişim kutusunda Evet’i seçin.

    Screenshot of the Remote Desktop Connection dialog box, warning of problems with the security certificate. The Yes button is highlighted.

  11. Sanal makinede, ekranın sol alt köşesindeki Ara düğmesini seçin.

    The Search button in the Windows taskbar.

  12. Aramak için buraya yazın kutusuna Komut İstemi yazın, ancak Enter tuşunu seçmeyin.

  13. En iyi eşleşme penceresinde Komut İstemi uygulamasına sağ tıklayıp Yönetici olarak çalıştır’ı seçin.

    Screenshot of opening the Windows command prompt as an administrator.

  14. Komut İstemi penceresinde, Sysprep aracını çalıştırmak için aşağıdaki komutu kullanın:

    C:\windows\system32\sysprep\sysprep
    
  15. Sistem Hazırlama Aracı iletişim kutusunda aşağıdaki ayarları ve ardından Tamam'ı seçin:

    Özellik Değer
    Sistem Temizleme Eylemi Sistem İlk Çalıştırma Deneyimi’ni (OOBE) girin
    Genelleştir Seç
    Kapatma Seçenekleri Kapat

    Screenshot of the Sysprep dialog box.

  16. Sysprep aracının bitmesini ve sanal makine ile bağlantının sona ermesini bekleyin. Ardından, Uzak Masaüstü Bağlantısı ileti kutusunda Tamam’ı seçin.

    Screenshot of the Session Ended dialog box.

  17. Cloud Shell penceresinde aşağıdaki komutu çalıştırarak sanal makineyi serbest bırakın:

    az vm deallocate \
        --name MyWindowsVM
    
  18. VM serbest bırakma işlemini tamamladığında, sanal makineyi genelleştirmek için aşağıdaki komutu çalıştırın:

    az vm generalize \
        --name MyWindowsVM
    
  1. Cloud Shell penceresinde Ubuntu sanal makinesine bağlanmak için aşağıdaki komutu çalıştırın. <ip address> değerini, ayarlama görevi sırasında not ettiğiniz sanal makine genel IP adresi ile değiştirin.

    ssh -o StrictHostKeyChecking=no <ip address>
    
  2. Sanal makineyi genelleştirmeye hazırlamak için aşağıdaki komutu çalıştırın:

    sudo waagent -deprovision+user
    

    Devam etmek istiyor musunuz (y/n) isteminde y yazın ve Enter tuşuna basın.

  3. İşlem tamamlandığında, sanal makine bağlantısını sonlandırmak için aşağıdaki komutu çalıştırın:

    exit
    
  4. Cloud Shell'de aşağıdaki komutu çalıştırarak sanal makineyi serbest bırakın:

    az vm deallocate \
        --name MyUbuntuVM
    
  5. VM serbest bırakma işlemini tamamladığında, sanal makineyi genelleştirmek için aşağıdaki komutu çalıştırın:

    az vm generalize \
        --name MyUbuntuVM
    

Sanal makine görüntüsü oluşturma

Genelleştirilmiş sanal makineden MyVMImage adlı bir sanal makine görüntüsü oluşturmak için aşağıdaki komutu çalıştırın:

az image create \
    --name MyVMIMage \
    --source MyWindowsVM
  1. Genelleştirilmiş sanal makineden MyVMImage adlı bir sanal makine görüntüsü oluşturmak için aşağıdaki komutu çalıştırın:

    az image create \
        --name MyVMIMage \
        --source MyUbuntuVM
    

Yeni görüntüyü kullanarak sanal makine oluşturma

  1. MyVMImage görüntüsünü kullanarak yeni bir sanal makine oluşturmak için aşağıdaki komutu çalıştırın:

    az vm create \
      --name MyVMFromImage \
      --computer-name MyVMFromImage \
      --image MyVMImage \
      --admin-username azureuser \
      --generate-ssh-keys
    
  2. VM oluşturmayı tamamladığında, varsayılan web sayfasını sunucu adıyla güncelleştirmek için aşağıdaki komutu çalıştırın:

        az vm extension set \
        --publisher Microsoft.Azure.Extensions \
        --name CustomScript \
        --vm-name MyVMFromImage \
        --settings '{"commandToExecute":"hostname > /var/www/html/index.html"}'
    
  3. Varsayılan web sayfasının güncelleştirilmesi tamamlandığında, yeni sanal makinede 80 numaralı bağlantı noktasını açmak için aşağıdaki komutu çalıştırın:

    az vm open-port \
        --name MyVMFromImage \
        --port 80
    
  4. Yeni sanal makinenin genel IP adresini bulmak için aşağıdaki komutu çalıştırın:

    echo http://$(az vm list-ip-addresses \
                    --name MyVMFromImage \
                    --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                    --output tsv)
    
  5. Web tarayıcısında, yeni sanal makinenin genel IP adresine gidin. Web sayfasının, görüntünün oluşturulduğu MyVMFromImage adlı sanal makineyi gösterdiğini doğrulayın.

  1. MyVMImage görüntüsünü kullanarak yeni bir sanal makine oluşturmak için aşağıdaki komutu çalıştırın. Özgün sanal makineyi oluştururken kullandığınız azureuser parolasını girin.

    az vm create \
      --name MyVMFromImage \
      --computer-name MyVMFromImage \
      --image MyVMImage \
      --admin-username azureuser
    
  2. VM oluşturmayı tamamladığında, aşağıdaki komutu çalıştırarak varsayılan web sayfasını sunucu adıyla güncelleştirin:

    az vm extension set \
        --name CustomScriptExtension \
        --vm-name MyVMFromImage \
        --publisher Microsoft.Compute \
        --settings '{"commandToExecute":"powershell Clear-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\"; Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $(hostname)"}'
    
  3. Varsayılan web sayfasının güncelleştirilmesi tamamlandığında, yeni sanal makinede 80 numaralı bağlantı noktasını açmak için aşağıdaki komutu çalıştırın:

    az vm open-port \
        --name MyVMFromImage \
        --port 80
    
  4. Yeni sanal makinenin genel IP adresini bulmak için aşağıdaki komutu çalıştırın:

    echo http://$(az vm list-ip-addresses \
                    --name MyVMFromImage \
                    --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                    --output tsv)
    
  5. Web tarayıcısında, yeni sanal makinenin genel IP adresine gidin. Web sayfasının, görüntünün oluşturulduğu MyVMFromImage adlı sanal makineyi gösterdiğini doğrulayın.

Kaynaklarınızı temizleme

Bu modülle işiniz bittiğinde korumalı alan kaynaklarınızı otomatik olarak temizler.

Kendi aboneliğinizde çalışırken, projenin sonunda oluşturduğunuz kaynaklara hala ihtiyacınız olup olmadığını belirlemek iyi bir fikirdir. Çalışır durumda bırakılan kaynaklar maliyetlerin artmasına neden olabilir. Kaynakları teker teker silebilir veya tüm kaynak grubunu silerek kaynak kümesinin tamamını kaldırabilirsiniz.