Blog

Azure CLI ile Sanal Makine Yönetimi

Azure Portal üzerinden sanal bir sunucu oluşturup yönetmek gerçekten çok kolay ancak birden fazla sunucunuz var ise o kadar menünün içerisinde hareket etmek çok zor olabiliyor. Azure CLI ile saniyeler içerisinde sanal bir sunucu oluşturabilir ve yönetimsel işlemleri yerine getirebilirsiniz.

Azure Portal’da sağ üstten Azure CLI’ı açabilirsiniz veya bilgisayarınıza Azure CLI’ı yükledikten sonra az login komutu ile Azure hesabınıza login olup çalışmaya başlayabilirsiniz.

Not: Azure Portal üzerinden Azure CLI’ı açarken eğer bir storage accountunuz yoksa sizden bir storage account oluşturmanız istenecektir.

Azure CLI komutları çok basit ve anlaşılır komutlardır. Aşağıda, testortamim isimli kaynak grubunun içerisinde adı TestVMim olan Ubuntu imajına sahip, kullanıcısı ozgur-aydin olan ve ssh-key yaratılarak erişim sağlayacağımız bir VM’in oluşması için script bulunuyor. –verbose parametresi VM oluşturulurken ilerleme durumunu görmek için eklenebilir.

az vm create \
  --resource-group testortamim \
  --location westus \
  --name TestVMim \
  --image UbuntuLTS \
  --admin-username ozgur-aydin \
  --generate-ssh-keys \
  --verbose

Dilerseniz yukarıdaki script’e –no-wait parametresi ile VM’in oluşmasını arka plana da atabilirsiniz. Bu şekilde CLI ekranında başka işlerle meşgul olabilirsiniz.

Parola yerine –generate-ssh-keys parametresi ile bir SSH key üretiyoruz. İsterseniz bunun yerine –admin-password parametresi ile kendi parolanızı oluşturabilirsiniz.

Az vm create –help komutuyla diğer kullanışlı parametrelere göz atabilirsiniz.

VM’imizi oluşturuldu. Çıktı sonucuna dikkat ederseniz privateIPAddress ile VM’in Internal adresi, publicIpAddress ile de dışarıdan erişim sağlayacağımız adres bilgilerini görebiliriz.

Azure CLI üzerinde ssh [email protected] komutuyla sunucumuza SSH ile bağlanabiliriz. VM’i oluştururken bir SSH key oluşturduğumuz için direk sunucuya erişim sağlayabiliriz. Bunun nedeni shell üzerinden sunucuyu oluştururken ssh key için yaptığımız istek nedeniyle bizim IP adresimizi kayıt altına almış olmasıdır. Başka bir makinadan aynı şekilde bağlanmak için ssh-key dosyasına ihtiyacınız olacaktır.

Biz çalışmamızda Ubuntu imajını kullanarak bir VM oluşturduk. Dilerseniz az vm image list –output table komutuyla populer diğer imajları görüp VM’iminizi buradaki imajlardan biriyle kurabilirsiniz.

az vm image list –publisher Microsoft –output table –all Publisher parametresi ekleyerek bir imaj dağıtımcısının imajlarını arayabilirsiniz. –sku  parametresi ekleyerek belirli bir imajın versiyonlarını görüntüleyebilirsiniz. –location ile yine belirli bir konumdaki imajları görebilirsiniz.  Portal tarafında çok daha fazla imaj mevcut durumdadır. Portala erişim sağladıktan sonra istediğiniz imajın ismini öğrenip script içindeki image parametresine ekleyerek CLI üzerinden de imajı oluşturabilirsiniz.

Oluşturduğunuz VM’lerin kullanabileceği kaynaklar bölgeden bölgeye değişiklik gösterebildiği için az vm list-sizes –location eastus –output table komutuyla belirli bir konumdaki oluşturulabilecek vm lerin kaynak özelliklerini görebilirsiniz.

Vm oluştururken kullandığınız scripte –size “Standard_DS5_v2” parametresini ekleyerek VM oluşturulmadan önce bir boyut belirleyebilirsiniz.

VM’i yeniden boyutlandırma

VM’iminizin mevcut kaynakları yetmediği veya fazla geldiği durumlarda kaynaklarda değişiklik yapmak istediğiniz kaynak miktarının VM’in bulunduğu Cluster’da bulunup bulunmadığını denetlemek gerekiyor. Aşağıdaki script ile değişiklik yapabileceğiniz kaynakları görüntüleyebilirsiniz.

az vm list-vm-resize-options \
    --resource-group testortamim \
    --name TestVMim \
    --output table

Değişiklik yapacağımız VM çeşidini belirledikten sonra aşağıdakine benzer bir script ile değişikliğinizi yapabilirsiniz. Değişiklik 1-2 dakika içinden gerçekleşiyor.

    --resource-group testortamim \
    --name TestVMim \
    --size Standard_D2s_v4

VM listesini görüntüleme

Az vm list –output table komutu ile sahip olduğunuz VM’leri görüntüleyebilirsiniz. Belirli bir kaynak grubundaki VM’leri görüntülemek için –resource-group parametresini kullanabilirsiniz.

az vm list-ip-addresses -n TestVmim -o table komutuyla VM’in IP adres bilgilerini alabilirsiniz.

az vm show –resource-group testortamim –name TestVMim komutuyla JSON formatında VM hakkında daha fazla bilgi edinebileceğiniz bir çıktı döndürlür.

Döndürülen JSON çıktısının içerisinde kaybolabilirsiniz. Çıktıyı filtreleyerek daha anlamlı ve okunabilir çıktılar da almak mümkün. VM’in boyutunu veya diskini sorgulayacağımız scriptler yazabiliriz.

az vm show \
    --resource-group testortamim \
    --name TestVMim \
    --query hardwareProfile.vmSize
az vm show --resource-group testortamim --name TestVMim --query storageProfile.osDisk.diskSizeGb

VM’in durumunu görüntülemek için aşağıdaki komuttan faydalanabiliriz.

az vm get-instance-view \
    --name TestVMim \
    --resource-group testortamim \
    --query "instanceView.statuses[?starts_with(code, 'PowerState/')].displayStatus" -o tsv

VM’i durdurmak için;

az vm stop \
    --name TestVMim \
    --resource-group testortamim

Uyarıya dikkat edersek kaynaklar hala bizim için ayrılmış durumdadır. Bu nedenle faturalandırma devam edecek. Faturalandırmanın durması için VM’i serbest bırakmamız gerekir. az vm deallocate komutuyla serbest bırakma işlemi gerçekleşir. VM’i serbest bıraktığınızda VM silinmez ama faturalandırma durur. VM’e bağlı harici bir depolama alanınız var ise içerisinde veri olması nedeniyle diskin faturalandırması devam edecektir.

VM’i başlatmak için;

az vm start \
    --name TestVMim \
    --resource-group testortamim

VM’i restart etmek için;

az vm restart \
    --name TestVMim \
    --resource-group testortamim \
    --no-wait

Faydalı olması dileğiyle,

Bir Yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

Reklam Engelleyici Algılandı

ÇözümPark Bilişim Portalı gönüllü bir organizasyon olup tek gelir kaynağı reklamlardır. Bu nedenle siteyi gezerken lütfen reklam engelleme eklentinizi kapatın veya Çözümpark web sitesi için izin tanımı yapın. Anlayışınız için teşekkürler.