Sanal makineler (VM) oluşturma-Azure CLı | Microsoft Docs
Bu öğreticide, Azure CLı ile sanal makine oluşturma ile ilgili tüm adımları öğrenirsiniz. Öğreticide aynı zamanda çıktı sorguları, Azure kaynağı yeniden kullanımı ve kaynak temizleme de ele alınmaktadır.
Bu öğreticiyi Azure Cloud Shell üzerinden sunulan etkileşimli deneyimle tamamlayabilir veya CLI'yı yerel olarak yükleyebilirsiniz.
Öğretici metnini Azure Cloud Shell’e yapıştırmak için Ctrl+Shift+V (macOS’ta Cmd+Shift+V) tuşlarını kullanın.
Oturum aç
CLI’nin yerel bir yüklemesini kullanıyorsanız diğer adımları uygulamadan önce oturum açmanız gerekir.
az login
Terminalinizde görüntülenen adımları uygulayarak kimlik doğrulama işlemini tamamlayın.
Kaynak grubu oluşturma
Azure’da tüm kaynaklar bir kaynak yönetimi grubunda ayrılır. Kaynak grupları, kaynaklar için mantıksal gruplamalar sağlar; bu da, kaynaklarla koleksiyon olarak çalışabilmeyi kolaylaştırır. Bu öğreticide, oluşturulan kaynakların tümü TutorialResources adlı tek bir gruba dahil edilir.
az group create --name TutorialResources --location eastus
Sanal makine oluşturma
Azure’daki sanal makinelerin çok sayıda bağımlılığı vardır. CLI, belirttiğiniz komut satırı bağımsız değişkenlerine göre bu kaynakları oluşturur.
Ubuntu çalıştıran ve oturum açma işlemi için SSH kimlik doğrulamasını kullanan yeni bir sanal makine oluşturun.
az vm create --resource-group TutorialResources \
--name TutorialVM1 \
--image UbuntuLTS \
--generate-ssh-keys \
--output json \
--verbose
Not
id_rsa adlı bir SSH anahtarınız zaten mevcutsa kimlik doğrulaması için yeni bir anahtar oluşturulması yerine bu anahtar kullanılır.
VM oluşturulurken --verbose seçeneği sayesinde kullanılan yerel değerleri ve oluşturulan Azure kaynaklarını görebilirsiniz.
VM hazır hale geldikten sonra Azure hizmetinden genel IP adresi de dahil olmak üzere JSON döndürülür.
{
"fqdns": "",
"id": "...",
"location": "eastus",
"macAddress": "...",
"powerState": "VM running",
"privateIpAddress": "...",
"publicIpAddress": <PUBLIC_IP_ADDRESS>,
"resourceGroup": "TutorialResources",
"zones": ""
}
SSH üzerinden bağlanarak VM’nin çalışır durumda olup olmadığını doğrulayın.
ssh <PUBLIC_IP_ADDRESS>
İşleme VM oturumunu kapatarak devam edin.
VM başlatıldıktan sonra bu IP adresi başka şekillerde alınabilir. Bir sonraki bölümde VM ile ilgili ayrıntılı bilgiler edinmeyi ve bu bilgileri filtrelemeyi öğreneceksiniz.
Sorgularla VM bilgilerini alma
VM oluşturulduğuna göre VM ile ilgili ayrıntılı bilgiler alınabilir. Bir kaynaktan bilgi almaya yönelik ortak komut show şeklindedir.
az vm show --name TutorialVM1 --resource-group TutorialResources
Görsel olarak ayrıştırması zor olabilecek çok sayıda bilgi görürsünüz. Döndürülen JSON; kimlik doğrulaması, ağ arabirimleri, depolama alanı ve daha fazlasına ilişkin bilgiler içerir. En önemlisi de JSON’nin VM’nin bağlandığı kaynaklara ilişkin Azure nesne kimliklerini içermesidir. Nesne kimlikleri, VM’nin yapılandırması ve özellikleri ile ilgili daha fazla bilgi alınması için bu kaynaklara doğrudan erişilebilmesini sağlar.
İstenen nesne kimliğinin ayıklanması için --query bağımsız değişkeni kullanılır. Sorgular JMESPath sorgu dilinde yazılır. İşleme ağ arabirimi denetleyicisi (NIC) nesne kimliğini alarak başlayın.
az vm show --name TutorialVM1 \
--resource-group TutorialResources \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
Yalnızca sorgunun eklenmesiyle burada birçok işlem gerçekleşir. Bunun her bir bölümü JSON çıkışındaki bir anahtara başvurur veya JMESPath işlecidir.
networkProfile, üst düzey JSON’nin,networkInterfacesalt anahtarına sahip bir anahtarıdır. JSON değeri bir sözlük ise.işleciyle üst anahtardan bu değerin anahtarlarına başvurulur.networkInterfacesdeğeri bir dizedir ve[]işleciyle düzleştirilir. Bu işleç, sorgunun geri kalanını her dize öğesinde çalıştırır. Bu durumda, her dize öğesininiddeğerini alır.
tsv çıkış biçiminin (sekmeyle ayrılmış değerler), yalnızca sonuç verileri ile sekmelerden ve yeni satırlardan oluşan boşluklar içermesi sağlanır.
Döndürülen değer tek bir tırnaksız dize olduğundan, doğrudan bir ortam değişkenine atanması güvenlidir.
İşleme NIC nesne kimliğini bir ortam değişkenine atayarak devam edin.
NIC_ID=$(az vm show -n TutorialVM1 -g TutorialResources \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
Bu örnekte aynı zamanda kısa bağımsız değişkenlerin kullanımı da gösterilmektedir. --resource-group yerine -g, --name yerine -n ve --output yerine -o kullanabilirsiniz.
CLI çıkışından ortam değişkenlerini ayarlama
NIC kimliğine sahip olduğunuza göre buna ait bilgileri almak için az network nic show komutunu çalıştırın. Kaynak grubu adı Azure Kaynak KIMLIĞI içinde bulunduğundan, burada bir kaynak grubuna ihtiyacınız olmadığına unutmayın.
az network nic show --ids $NIC_ID
Bu komut, VM’nin ağ arabirimine ilişkin tüm bilgileri gösterir. Bu veriler arasında DNS ayarları, IP bilgileri, güvenlik ayarları ve MAC adresi yer alır. Şimdi ise hedef genel IP adresini ve alt ağ nesne kimliklerini edinmektir.
az network nic show --ids $NIC_ID \
--query '{IP:ipConfigurations[].publicIpAddress.id, Subnet:ipConfigurations[].subnet.id}' \
-o json
{
"IP": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
Bu komut, ayıklanan değerler için özel anahtarlar ('IP' ve 'Alt Ağ') içeren bir JSON nesnesini görüntüler. Bu çıkış stili, komut satırı araçları için faydalı olmayabilir ancak okunabilirlik konusunda yardımcı olur ve özel betiklerle kullanılabilir.
Komut satırı araçlarını kullanmak için özel JSON anahtarlarını ve çıkışını kaldırma komutunu tsv olarak değiştirin. Bu çıkış stili, sonuçların birden fazla değişkene yüklenmesine ilişkin read kabuk komutu tarafından işlenebilir. Ayrı satırlarda iki değer görüntülendiğinden read komutu sınırlayıcısı, yeni satır olmayan boşluk yerine boş dizeye ayarlanmalıdır.
read -d '' IP_ID SUBNET_ID <<< $(az network nic show \
--ids $NIC_ID \
--query '[ipConfigurations[].publicIpAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
Alt ağ kimliğini hemen kullanmazsınız ancak ikinci bir arama yapmak zorunda kalmamak için şimdi depolamanız gerekir. Şimdilik genel IP adresini aramak için genel IP nesnesi kimliğini kullanın ve bir kabuk değişkeninde depolayın.
VM1_IP_ADDR=$(az network public-ip show --ids $IP_ID \
--query ipAddress \
-o tsv)
Artık kabuk değişkeninde depolanan VM’nin IP adresine sahipsiniz. Bunun başlangıçta VM’ye bağlanmak için kullandığınız değerle aynı olup olmadığını kontrol ederek işleme devam edin.
echo $VM1_IP_ADDR
Mevcut alt ağda yeni bir VM oluşturma
İkinci VM mevcut alt ağı kullanır. Bir ortam değişkeninde depolanan VM’nin genel IP adresi, VM oluşturma bilgilerinde döndürüleceğinden, bunu hemen almak için birkaç adımı atlayabilirsiniz. Daha sonra VM hakkında başka bilgilere ihtiyaç duymanız durumunda az vm show komutundan dilediğiniz zaman bu bilgileri edinebilirsiniz.
VM2_IP_ADDR=$(az vm create -g TutorialResources \
-n TutorialVM2 \
--image UbuntuLTS \
--generate-ssh-keys \
--subnet $SUBNET_ID \
--query publicIpAddress \
-o tsv)
Depolanan IP adresini kullanarak, yeni oluşturulan VM’ye SSH ekleyin.
ssh $VM2_IP_ADDR
İşleme VM oturumunu kapatarak devam edin.
Temizleme
Öğretici tamamlandığına göre oluşturulan kaynakları temizlemenin zamanı geldi. delete komutuyla kaynakları tek tek silebilirsiniz ancak bir kaynak grubundaki tüm kaynakları kaldırmanın en güvenli yolu group delete komutunu kullanmaktır.
az group delete --name TutorialResources --no-wait
Bu komut, öğretici sırasında oluşturulan kaynakları siler ve bunların doğru sırada serbest bırakılmasını sağlar. Silme işlemi gerçekleşirken --no-wait parametresi CLI’nın engellenmesini önler. Silme işlemi tamamlanana kadar beklemek veya işlemin ilerleyişini izlemek istiyorsanız group wait komutunu kullanın.
az group wait --name TutorialResources --deleted
Temizleme tamamlandığında öğretici sona erer. Öğrendiklerinizin özeti üzerinden geçmek ve sonraki adımlar konusunda size yardımcı olacak kaynakların bağlantılarını görüntülemek için devam edin.
Özet
Tebrikler! Yeni veya mevcut kaynaklar ile VM oluşturmayı öğrendiniz, kabuk değişkenlerinde depolanacak verileri yakalamak için --query ve --output bağımsız değişkenlerini kullandınız ve Azure VM'leri için oluşturulan bazı kaynaklara göz attınız.
Bu noktadan itibaren izleyeceğiniz rota CLI’yı ne için kullanmayı planladığınıza bağlıdır. Bu öğreticide ele alınan özelliklerin daha kapsamlı olarak incelendiği çok sayıda kaynak mevcuttur.
Örnekler
Belirli görevlerle hızlı bir başlangıç yapmak istiyorsanız bazı örnek betiklere göz atın.
- Linux VM’ler ve Windows VM’ler ile çalışma
- Web uygulamaları ve Azure İşlevleri ile çalışma
- Veritabanları ile çalışma: Azure SQL veritabanları, PostgreSQL, MySQL ve CosmosDB.
Ayrıntılı CLI belgeleri
Öğreticide gösterilen CLI özelliklerinin ayrıntılarının incelendiği konu başlıkları da mevcuttur.
- Çıkış biçimleri hakkında daha fazla bilgi edinin
- Çıkış sorguları hakkında daha fazla bilgi edinin
- Azure’da kimlik doğrulama hakkında daha fazla bilgi edinin
Diğer faydalı belgeler
Biraz vakit ayırarak CLI’nın varsayılanları yapılandırma veya uzantılar gibi diğer gelişmiş özelliklerini keşfedebilirsiniz.
Geri Bildirim
Geri bildirim vermek, öneride bulunmak veya CLI hakkında soru sormak istiyorsanız çeşitli şekillerde iletişime geçebilirsiniz.
az feedback, CLI için takıma serbest biçimli geri bildirim sağlamaya olanak tanıyan yerleşik bir komuttur.- Azure CLI deposuna CLI ile ilgili bir özellik isteği veya hata raporu kaydedin.
- Azure CLI belge deposuna bir sorun kaydederek soru sorun veya açıklama alın.
Azure CLI’yı keyifle kullandığınızı umuyoruz!
Bu bölümle ilgili bir sorununuz mu var? Öyleyse bu bölümü iyileştirebilmemiz için lütfen geri bildirimde bulunun.