Aracılığıyla paylaş


Öğ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 öğretici, sürekli olarak en son sürüme güncellenen Azure Cloud Shell içindeki CLI'yi kullanır.

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 gerekiyorsa bkz. Azure CLI'yı yükleme.

Kaynak grubu oluştur

Aşağıda ortam değişkenlerini bildireceğiz. Her dağıtım için benzersiz olması gereken kaynak adlarına rastgele bir sonek eklenir.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="eastus2"
export MY_RESOURCE_GROUP_NAME="myResourceGroupVM$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

Sonuçlar:

{
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx",
  "location": "eastus2",
  "name": "myResourceGroupVMxxx",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

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.

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

Sanal makine oluşturma

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ı oluşturulur ve varsayılan anahtar konumunda (~/.ssh) yoksa SSH anahtarları oluşturulur.

export MY_VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM_NAME \
    --image SuseSles15SP5 \
    --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. publicIpAddress değerini not alın; bu adres sanal makineye erişmek için kullanılabilir.

{
  "fqdns": "",
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVMxxx"
}

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.

VM'ye bağlanmak için önce Azure CLI kullanarak genel IP adresini alın. IP adresini bir değişkende depolamak için aşağıdaki komutu yürütür: export IP_ADDRESS=$(az vm show --show-details --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query publicIps --output tsv)

IP adresini aldıktan sonra VM'ye bağlanmak için SSH kullanın. Aşağıdaki komut, hesabı ve alınan IP adresini kullanarak azureuser VM'ye bağlanır: ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS

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 SUSE görüntüsü kullanılarak bir sanal makine oluşturulmuştur. 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

Uyarı

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.

export MY_VM2_NAME="myVM2$RANDOM_SUFFIX"
az vm create --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM2_NAME --image Canonical:0001-com-ubuntu-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.

Türü 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.
Hesaplama için optimize edilmiş Yüksek CPU/bellek. Orta düzey trafiğe sahip uygulamalar, ağ gereçleri ve toplu işlemler için idealdir.
Bellek optimize edilmiş Yüksek bellek/çekirdek. İlişkisel veritabanı, orta veya büyük boyutlu önbellekler ve bellek içi analiz için idealdir.
Depolama Optimizasyonu 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 $REGION --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 createoluşturma zamanında bir VM boyutu seçilebilir.

export MY_VM3_NAME="myVM3$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM3_NAME \
    --image SuseSles15SP5 \
    --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. Az vm show ile vm'nin geçerli boyutunu görüntüleyebilirsiniz:

az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --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 $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query [].name

İstenen boyut kullanılabilir durumdaysa, VM, işletim sırasında yeniden başlatılacak olsa da, açık durumdayken yeniden boyutlandırılabilir. Yeniden boyutlandırmayı gerçekleştirmek için az vm resize komutunu kullanın.

az vm resize --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --size Standard_D4s_v3

İstenen boyut geçerli kümede kullanılamıyorsa, yeniden boyutlandırma işleminin gerçekleşebilmesi için ö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ığında geçici disk üzerindeki tüm verilerin kaldırılabileceğini unutmayın. Statik IP kullanılmadığı sürece ortak IP adresi de değiştirilir. VM serbest bırakıldıktan sonra yeniden boyutlandırma işlemi gerçekleştirilebilir.

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

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

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şlangıç Sanal makinenin başlatıldığını gösterir.
Koşmak Sanal makinenin çalıştığını gösterir.
Durdurma 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 $MY_VM_NAME \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --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 $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --output table

Sanal makineyi durdur

az vm stop --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

Sanal makineyi başlatma

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

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.

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.