Aracılığıyla paylaş


Öğretici: Azure CLI ile Sanal Makine Ölçek Kümeleri uygulamaları yükleme

Bir ölçek kümesindeki sanal makine (VM) örneklerinde uygulamaları çalıştırmak için önce uygulama bileşenlerini ve gerekli dosyaları yüklemeniz gerekir. Önceki bir öğreticide, sanal makine örneklerinizi dağıtmak için nasıl özel sanal makine görüntüsü oluşturulacağını ve kullanılacağını öğrendiniz. Bu özel görüntüde, el ile uygulama yüklemeleri ve yapılandırmaları yer alıyordu. Her sanal makine örneği dağıtıldıktan sonra bir ölçek kümesine uygulamaların yüklenmesini otomatikleştirebilir veya önceden ölçek kümesinde çalıştırılan bir uygulamayı güncelleştirebilirsiniz. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Ölçek kümenize otomatik olarak uygulama yükleme
  • Azure Özel Betik Uzantısı’nı kullanma
  • Ölçek kümesinde çalıştırılan bir uygulamayı güncelleştirme

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLI'nın 2.0.29 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Azure Özel Betik Uzantısı nedir?

Özel Betik Uzantısı, Azure VM’lerinde betik indirir ve yürütür. Bu uzantı dağıtım sonrası yapılandırma, yazılım yükleme veya diğer yapılandırma/yönetim görevleri için kullanışlıdır. Betikler Azure depolama veya GitHub konumlarından indirilebilir ya da Azure portalına uzantı çalışma zamanında iletilebilir.

Özel Betik uzantısı, Azure Resource Manager şablonları ile tümleştirilir ve Azure CLI, Azure PowerShell, Azure portalı veya REST API’si ile de kullanılabilir. Daha fazla bilgi için bkz. Özel Betik Uzantısı'na genel bakış.

Azure CLI ile Özel Betik Uzantısı’nı kullanmak için, alınacak dosyaları ve yürütülecek komutları tanımlayan bir JSON dosyası oluşturursunuz. Bu JSON tanımları, tutarlı uygulama yüklemeleri uygulamak için ölçek kümesi dağıtımları arasında yeniden kullanılabilir.

Özel Betik Uzantısı tanımı oluşturma

Özel Betik Uzantısı’nı çalışır halde görmek için, NGINX web sunucusunu yükleyen ve ölçek kümesi sanal makine örneğinin ana bilgisayar adını veren bir ölçek kümesi oluşturalım. Aşağıdaki Özel Betik Uzantısı tanımı, GitHub’dan bir örnek betiği indirir, gerekli paketleri yükler, sonra sanal makine örneği ana bilgisayar adını bir temel HTML sayfasına yazar.

Geçerli kabuğunuzda customConfig.json adlı bir dosya oluşturup aşağıdaki yapılandırmayı yapıştırın. Örneğin, dosyayı yerel makinenizde değil Cloud Shell’de oluşturun. İstediğiniz düzenleyiciyi kullanabilirsiniz. Bu öğreticide Vi kullanacağız. Cloud Shell'e girinvi . Aşağıdaki JSON dosyasını düzenleyiciye yapıştırın ve yazın :w customConfig.json.

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
  "commandToExecute": './automate_nginx.sh'
}

Not

Aşağıdaki --settings parametresinde JSON'a doğrudan başvurmaya karar verirseniz (customConfig.json dosyasına başvurmak yerine) JSON bloğunda tek (') ve çift tırnak (") kullanımını ters çevirmeniz gerekebilir.

Ölçek kümesi oluşturma

Önemli

Kasım 2023'den itibaren, düzenleme modu belirtilmezse PowerShell ve Azure CLI kullanılarak oluşturulan VM ölçek kümeleri varsayılan olarak Esnek Düzenleme Modu olarak ayarlanır. Bu değişiklik ve gerçekleştirmeniz gereken eylemler hakkında daha fazla bilgi için BKZ. VMSS PowerShell/CLI Müşterileri için Yeni Değişiklik - Microsoft Community Hub

az group create ile bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

Şimdi az vmss create ile bir Sanal Makine Ölçek Kümesi oluşturun. Aşağıdaki örnek myScaleSet adlı bir ölçek kümesini ve yoksa SSH anahtarlarını oluşturur:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --admin-username azureuser \
  --generate-ssh-keys

Tüm ölçek kümesi kaynaklarının ve VM'lerin oluşturulup yapılandırılması birkaç dakika sürer.

Özel Betik Uzantısı’nı uygulama

az vmss extension set komutunu kullanarak ölçek kümenizdeki sanal makine örneklerine Özel Betik Uzantısı yapılandırmasını uygulayın. Aşağıdaki örnek, myResourceGroup adlı kaynak grubundaki myScaleSet sanal makine örneklerine customConfig.json yapılandırmasını uygular:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings customConfig.json

Dikkat

Dosya adları büyük/küçük harfe duyarlıdır. Başarısızlığı önlemek için bu yönergelerde belirtilen tam dosya adını kullanın.

Uzantıyı mevcut ölçek kümesi örneklerine uygulama

Özel betiği uygulamak için tüm örnekleri yükseltin. Yükseltme birkaç dakika sürebilir.

az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"

80 numaralı bağlantı noktasına giden trafiğe izin ver

Trafiğin yük dengeleyiciden sanal makinelere akmasına izin vermek için varsayılan ağ güvenlik grubunun güncelleştirilmesi gerekir.

az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80 

Ölçek kümenizi test etme

Web sunucunuzu çalışır halde görmek için az network public-ip show ile yük dengeleyicinizin genel IP adresini alın. Aşağıdaki örnek ölçek kümesinin bir parçası olarak oluşturulan myScaleSetLBPublicIP için IP adresini alır:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query [ipAddress] \
  --output tsv

Yük dengeleyicinin genel IP adresini bir web tarayıcısına girin. Aşağıdaki örnekte gösterildiği gibi yük dengeleyici trafiği VM örneklerinizden birine dağıtır:

Nginx’teki temel web sayfası

Sonraki adımda güncelleştirilmiş bir sürümü görebilmeniz için web tarayıcısını açık bırakın.

Yükseltme ilkesini değiştirme

Önceki bölümde, güncelleştirilmiş uygulamayı tüm ölçek kümesi örneklerine uygulamak için el ile yükseltme gerekiyordu. Güncelleştirmelerin tüm mevcut ölçek kümesi örneklerine otomatik olarak uygulanmasını etkinleştirmek için yükseltme ilkesini el ile otomatik olarak güncelleştirin. Yükseltme ilkeleri hakkında daha fazla bilgi için bkz. Sanal Makine Ölçek Kümeleri için yükseltme ilkeleri.

az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup \
    --set upgradePolicy.mode=automatic

Uygulama dağıtımını güncelleştirme

Geçerli kabuğunuzda customConfigv2.json adlı bir dosya oluşturup aşağıdaki yapılandırmayı yapıştırın. Bu tanım, uygulama yükleme betiğinin güncelleştirilmiş bir v2 sürümünü çalıştırır:

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
  "commandToExecute": "./automate_nginx_v2.sh"
}

Az vmss extension set ile ölçek kümenize Özel Betik Uzantısı yapılandırmasını yeniden uygulayın. Uygulamanın güncelleştirilmiş sürümünü uygulamak için customConfigv2.json kullanılır:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings @customConfigv2.json

Ölçek kümesi artık otomatik yükseltme ilkesi kullandığından, güncelleştirilmiş uygulama mevcut ölçek kümesi örneklerine otomatik olarak uygulanır. Güncelleştirilmiş uygulamayı görmek için web tarayıcınızı yenileyin.

Nginx’teki güncelleştirilmiş web sayfası

Kaynakları temizleme

Ölçek kümenizi ve ek kaynaklarınızı kaldırmak için az group delete komutunu kullanarak kaynak grubunu ve bu kaynak grubunun tüm kaynaklarını silin. --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 myResourceGroup --no-wait --yes

Sonraki adımlar

Bu öğreticide, Azure CLI ile ölçek kümenizde otomatik olarak uygulama yükleme ve güncelleştirme işleminin nasıl yapılacağını öğrendiniz:

  • Ölçek kümenize otomatik olarak uygulama yükleme
  • Azure Özel Betik Uzantısı’nı kullanma
  • Ölçek kümesinde çalıştırılan bir uygulamayı güncelleştirme

Ölçek kümenizi otomatik olarak ölçeklendirme hakkında bilgi almak için sonraki öğreticiye ilerleyin.