Öğretici: Azure CLI ile Linux VM’leri Oluşturma ve Yönetme

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Azure sanal makineleri tam olarak yapılandırılabilir ve esnek bir bilgi işlem ortamı sağlar. Bu öğretici VM boyutu seçme, VM görüntüsü seçme ve VM dağıtma gibi temel Azure sanal makine dağıtımı öğelerini kapsar. Şunları yapmayı öğreneceksiniz:

  • VM oluşturma ve bir VM’ye bağlanma
  • VM görüntülerini seçme ve kullanma
  • Belirli VM boyutlarını görüntüleme ve kullanma
  • VM’yi yeniden boyutlandırma
  • VM durumunu görüntüleme ve anlama

Bu öğreticide Azure Cloud Shell içindeki CLI sürekli olarak en son sürüme güncelleştirilmektedir.

CLI'yi yerel olarak yükleyip kullanmayı tercih ederseniz bu öğretici için Azure CLI 2.0.30 veya sonraki bir sürümünü çalıştırmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Kaynak grubu oluştur

az group create komutuyla bir kaynak grubu oluşturun.

Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Bir sanal makineden önce bir kaynak grubu oluşturulmalıdır. Bu örnekte, eastus2 bölgesinde myResourceGroupVM adlı bir kaynak grubu oluşturulur.

az group create --name myResourceGroupVM --location eastus2

Kaynak grubu, bu öğretici boyunca görülebileceği gibi bir VM oluşturulurken veya değiştirilirken belirtilir.

Sanal makine oluşturma

az vm create komutuyla bir sanal makine oluşturun.

Bir sanal makine oluştururken, işletim sistemi görüntüsü, disk boyutlandırma ve yönetici kimlik bilgileri gibi çeşitli seçenekler bulunur. Aşağıdaki örnek, SUSE Linux Enterprise Server (SLES) çalıştıran myVM adlı bir VM oluşturur. VM’de azureuser adlı bir kullanıcı hesabı ve varsayılan anahtar konumunda (~/.ssh) mevcut değilse SSH anahtarları oluşturulur:

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image SuseSles15SP3 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

VM’nin oluşturulması birkaç dakika sürebilir. VM oluşturulduktan sonra, Azure CLI VM hakkında bilgi çıkışı sağlar. değerini not publicIpAddressalın, bu adres sanal makineye erişmek için kullanılabilir.

{
  "fqdns": "",
  "id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVM"
}

VM’ye bağlanma

Artık Azure Cloud Shell’de SSH ile veya yerel bilgisayarınızdan VM’ye bağlanabilirsiniz. Örnek IP adresini önceki adımda not ettiğiniz publicIpAddress ile değiştirin.

ssh azureuser@52.174.34.95

VM’de oturum açtıktan sonra, uygulamaları yükleyebilir ve yapılandırabilirsiniz. İşiniz bittiğinde, normal olarak SSH oturumunu kapatın:

exit

VM görüntülerini anlama

Azure Market, VM oluşturmak için kullanılabilecek birçok görüntü içerir. Önceki adımlarda, bir Ubuntu görüntüsünü kullanarak bir sanal makine oluşturduk. Bu adımda Azure CLI, markette bir Ubuntu görüntüsü aramak için kullanılır ve ardından ikinci bir sanal makine dağıtmak için kullanılır.

Yaygın olarak kullanılan görüntülerin bir listesini görmek için, az vm image list komutunu kullanın.

az vm image list --output table

Komut çıkışı Azure’daki en popüler VM görüntülerini döndürür.

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             debian-10                     Debian                  10                                  Debian:debian-10:10:latest                                                      Debian                   latest
x64             flatcar-container-linux-free  kinvolk                 stable                              kinvolk:flatcar-container-linux-free:stable:latest                              Flatcar                  latest
x64             opensuse-leap-15-3            SUSE                    gen2                                SUSE:opensuse-leap-15-3:gen2:latest                                             openSUSE-Leap            latest
x64             RHEL                          RedHat                  7-LVM                               RedHat:RHEL:7-LVM:latest                                                        RHEL                     latest
x64             sles-15-sp3                   SUSE                    gen2                                SUSE:sles-15-sp3:gen2:latest                                                    SLES                     latest
x64             0001-com-ubuntu-server-jammy  Canonical               18.04-LTS                           Canonical:UbuntuServer:18.04-LTS:latest                                         UbuntuLTS                latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest                     Win2022Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition-core  MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest  Win2022AzureEditionCore  latest
x64             WindowsServer                 MicrosoftWindowsServer  2019-Datacenter                     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest                     Win2019Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2016-Datacenter                     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest                     Win2016Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter                  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest                  Win2012R2Datacenter      latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-Datacenter                     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest                     Win2012Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1                         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest                         Win2008R2SP1             latest

Parametresi eklenerek --all tam liste görülebilir. Görüntü listesi --publisher veya –-offer kullanılarak da filtrelenebilir. Bu örnekte liste, OpenLogic tarafından yayımlanan tüm görüntüler için 0001-com-ubuntu-server-jammy ile eşleşen bir teklifle filtrelenmiştir.

az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table

Örnek kısmi çıkış:

Architecture    Offer                              Publisher    Sku              Urn                                                                       Version
--------------  ---------------------------------  -----------  ---------------  ------------------------------------------------------------------------  ---------------
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200          22.04.202204200
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060          22.04.202205060
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280          22.04.202205280
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040          22.04.202206040
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090          22.04.202206090
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160          22.04.202206160
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220          22.04.202206220
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060          22.04.202207060

Not

Kurallı, en son sürümler için kullandıkları Teklif adlarını değiştirdi. Ubuntu 20.04'te Teklif adı UbuntuServer'dır. Ubuntu 20.04 için Teklif adı ve 0001-com-ubuntu-server-focal Ubuntu 22.04 için ise şeklindedir 0001-com-ubuntu-server-jammy.

Belirli bir görüntü kullanarak bir sanal makineyi dağıtmak için, görüntüyü tanımlamak amacıyla Urn sütunundaki yayımcı, teklif, SKU ve isteğe bağlı olarak sürüm numarasından oluşan değeri not edin. Görüntü belirtilirken, görüntü sürüm numarası, dağıtımın en son sürümünü seçen ile latestdeğiştirilebilir. Bu örnekte parametresi Ubuntu --image 22.04'ün en son sürümünü belirtmek için kullanılır.

az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys

VM boyutlarını anlama

Bir sanal makinenin boyutu sanal makine tarafından kullanılabilen CPU, GPU ve bellek gibi kaynakların miktarını belirler. Sanal makinelerin beklenen iş yüküne uygun olarak boyutlandırılması gerekir. İş yükü artarsa, mevcut bir sanal makine yeniden boyutlandırılabilir.

VM Boyutları

Aşağıdaki tabloda boyutlar kullanım durumlarına göre kategorilere ayrılmaktadır.

Type Açıklama
Genel amaçlı Dengeli CPU/bellek. Küçük ve orta ölçekli uygulama ve veri çözümlerini geliştirmek/test etmek için idealdir.
İşlem için iyileştirilmiş Yüksek CPU/bellek. Orta düzey trafiğe sahip uygulamalar, ağ gereçleri ve toplu işlemler için idealdir.
Bellek için iyileştirilmiş Yüksek bellek/çekirdek. İlişkisel veritabanı, orta veya büyük boyutlu önbellekler ve bellek içi analiz için idealdir.
Depolama için iyileştirilmiş Yüksek disk aktarım hızı ve GÇ. Büyük Veri, SQL ve NoSQL veritabanları için ideal.
GPU Ağır grafik işlemleri ile video düzenleme işlemleri için özel olarak hedeflenen VM’ler.
Yüksek performans İşleme düzeyi yüksek olan isteğe bağlı ağ arabirimleri (RDMA) içeren VM’lerimiz, şimdiye kadarki en güçlü CPU ile sunuluyor.

Kullanılabilir VM boyutlarını bulma

Belirli bir bölgede kullanılabilen VM boyutlarının listesini görmek için, az vm list-sizes komutunu kullanın.

az vm list-sizes --location eastus2 --output table

Örnek kısmi çıkış:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
4                   8192          Standard_D2ds_v4           2                1047552           76800
8                   16384         Standard_D4ds_v4           4                1047552           153600
16                  32768         Standard_D8ds_v4           8                1047552           307200
32                  65536         Standard_D16ds_v4          16               1047552           614400
32                  131072        Standard_D32ds_v4          32               1047552           1228800
32                  196608        Standard_D48ds_v4          48               1047552           1843200
32                  262144        Standard_D64ds_v4          64               1047552           2457600
4                   8192          Standard_D2ds_v5           2                1047552           76800
8                   16384         Standard_D4ds_v5           4                1047552           153600
16                  32768         Standard_D8ds_v5           8                1047552           307200
32                  65536         Standard_D16ds_v5          16               1047552           614400
32                  131072        Standard_D32ds_v5          32               1047552           1228800
32                  196608        Standard_D48ds_v5          48               1047552           1843200
32                  262144        Standard_D64ds_v5          64               1047552           2457600
32                  393216        Standard_D96ds_v5          96               1047552           3686400

Belirli bir boyutta VM oluşturma

Önceki VM oluşturma örneğinde, bir boyut sağlanmamış ve varsayılan boyut kullanılmıştı. Az vm create ve --size parametresi kullanılarak oluşturma zamanında bir VM boyutu seçilebilir.

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM3 \
    --image SuseSles15SP3 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

VM’yi yeniden boyutlandırma

VM dağıtıldıktan sonra, kaynak ayırmayı artırmak veya azaltmak için yeniden boyutlandırılabilir. Bir VM’nin geçerli boyutunu az vm show komutuyla görüntüleyebilirsiniz:

az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize

Bir VM’yi yeniden boyutlandırmadan önce, istenen boyutun Azure kümesinde kullanılabilir olup olmadığını denetleyin. az vm list-vm-resize-options komutu boyut listesini döndürür.

az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name

İstenen boyut kullanılabilirse, VM açık durumdayken yeniden boyutlandırılabilir ancak işlem sırasında yeniden başlatılır. Yeniden boyutlandırmayı gerçekleştirmek için az vm resize komutunu kullanın.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3

İstenen boyut geçerli kümede değilse, yeniden boyutlandırma işlemi gerçekleştirilmeden önce VM’nin serbest bırakılması gerekir. VM’yi durdurup serbest bırakmak için az vm deallocate komutunu kullanın. VM yeniden açıldıktan sonra geçici diskteki verilerin silinebileceğine dikkat edin. Statik IP kullanılmadığı sürece ortak IP adresi de değiştirilir.

az vm deallocate --resource-group myResourceGroupVM --name myVM

VM serbest bırakıldıktan sonra yeniden boyutlandırma işlemi gerçekleştirilebilir.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

Yeniden boyutlandırmadan sonra, VM yeniden başlatılabilir.

az vm start --resource-group myResourceGroupVM --name myVM

VM güç durumları

Bir Azure VM’si birçok güç durumuna sahip olabilir. Bu durum VM’nin hiper yönetici açısından bulunduğu geçerli durumu temsil eder.

Güç durumları

Güç Durumu Açıklama
Başlatılıyor Sanal makinenin başlatıldığını gösterir.
Çalışıyor Sanal makinenin çalıştığını gösterir.
Durduruluyor Sanal makinenin durdurulmakta olduğunu gösterir.
Durduruldu Sanal makinenin durdurulduğunu gösterir. Durduruldu durumundaki sanal makinelere bilgi işlem ücretleri uygulanmaya devam eder.
Serbest bırakılıyor Sanal makinenin serbest bırakılmakta olduğunu gösterir.
Serbest bırakıldı Sanal makinenin hiper yöneticiden kaldırıldığını ancak denetim masasında hala kullanılabilir olduğunu gösterir. Serbest bırakıldı durumundaki sanal makinelere bilgi işlem ücretleri uygulanmaz.
- Sanal makinenin güç durumunun bilinmediğini gösterir.

Güç durumunu bulma

Belirli bir VM’nin durumunu almak için, az vm get-instance-view komutunu kullanın. Sanal makine ve kaynak grubu için geçerli bir ad belirttiğinizden emin olun.

az vm get-instance-view \
    --name myVM \
    --resource-group myResourceGroupVM \
    --query instanceView.statuses[1] --output table

Çıktı:

Code                Level    DisplayStatus
------------------  -------  ---------------
PowerState/running  Info     VM running

Aboneliğinizdeki tüm VM'lerin güç durumunu almak için Sanal Makineler - List All API with parameter statusOnly ayarını true olarak ayarlayın.

Yönetim görevleri

Bir sanal makinenin yaşam döngüsü boyunca, sanal makineyi başlatmak, durdurmak veya silmek gibi yönetim görevleri gerçekleştirmek isteyebilirsiniz. Ayrıca, yinelenen veya karmaşık görevleri otomatikleştirmek için betikler oluşturmak isteyebilirsiniz. Azure CLI kullanarak, birçok ortak yönetim görevi komut satırından veya betikler içinde çalıştırılabilir.

IP adresini alma

Bu komut bir sanal makinenin özel ve ortak IP adreslerini döndürür.

az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

Sanal makineyi durdur

az vm stop --resource-group myResourceGroupVM --name myVM

Sanal makineyi başlat

az vm start --resource-group myResourceGroupVM --name myVM

VM kaynaklarını silme

Bir VM'yi nasıl sildiğinize bağlı olarak, ağ ve disk kaynaklarını değil yalnızca VM kaynağını silebilir. VM'yi sildiğinizde diğer kaynakları silmek için varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . VM'yi ve ekli kaynakları silme.

Bir kaynak grubu silindiğinde vm, sanal ağ ve disk gibi kaynak grubundaki tüm kaynaklar da silinir. --no-wait parametresi işlemin tamamlanmasını beklemeden denetimi komut istemine döndürür. --yes parametresi kaynakları ek bir komut istemi olmadan silmek istediğinizi onaylar.

az group delete --name myResourceGroupVM --no-wait --yes

Sonraki adımlar

Bu öğreticide, aşağıdakiler gibi temel VM oluşturma ve yönetim görevlerini öğrendiniz:

  • VM oluşturma ve bir VM’ye bağlanma
  • VM görüntülerini seçme ve kullanma
  • Belirli VM boyutlarını görüntüleme ve kullanma
  • VM’yi yeniden boyutlandırma
  • VM durumunu görüntüleme ve anlama

VM diskleri hakkında bilgi edinmek için sonraki öğreticiye ilerleyin.