Aracılığıyla paylaş


Öğretici: Azure CLI ile Sanal Makine Ölçek Kümelerine uygulama yükleme

Uygulamaları bir ölçek kümesindeki sanal makine (VM) örneklerinde çalıştırmak için önce uygulama bileşenlerini ve gerekli dosyaları yüklemeniz gerekir. Önceki bir öğreticide, VM örneklerinizi dağıtmak için özel bir VM görüntüsü oluşturmayı ve kullanmayı öğrendinsiniz. Bu özel görüntü, el ile uygulama yüklemelerini ve yapılandırmalarını içeriyor. Ayrıca, her VM örneği dağıtıldıktan sonra uygulamaların bir ölçek kümesine yüklenmesini otomatikleştirebilir veya zaten bir ölçek kümesinde çalışan bir uygulamayı güncelleştirebilirsiniz. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Uygulamaları ölçek kümenize otomatik olarak yükleme
  • Azure Özel Betik Uzantısı'nı kullanma
  • Ölçek kümesinde çalışan bir uygulamayı güncelleştirme

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

  • 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 betikleri indirir ve yürütür. Bu uzantı dağıtım sonrası yapılandırma, yazılım yüklemesi veya diğer yapılandırma/yönetim görevleri için kullanışlıdır. Betikler Azure depolama veya GitHub'dan indirilebilir veya uzantı çalışma zamanında Azure portalına sağlanabilir.

Özel Betik uzantısı Azure Resource Manager şablonlarıyla tümleşir ve Azure CLI, Azure PowerShell, Azure portalı veya REST API ile de kullanılabilir. Daha fazla bilgi için Özel Betik Uzantısı genel görünümüne bakın.

Azure CLI ile Özel Betik Uzantısı'nı kullanmak için, hangi dosyaların alınacağını 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 Script Uzantısı tanımı oluşturma

Özel Komut Dosyası Uzantısı'nın çalıştığını görmek için, NGINX web sunucusunu yükleyen ve ölçek kümesi VM örneğinin ana bilgisayar adını çıktılayan bir ölçek kümesi oluşturalım. Aşağıdaki Özel Betik Uzantısı tanımı GitHub'dan bir örnek betik indirir, gerekli paketleri yükler, ardından VM örneği ana bilgisayar adını temel bir HTML sayfasına yazar.

Geçerli komut satırı ortamınızda customConfig.json adlı bir dosya oluşturun ve 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'de 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'
}

Uyarı

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 VMSS PowerShell/CLI Müşterileri için Kritik Değişiklik - Microsoft Community Hub'a gidin.

az group create komutuyla 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ümesi oluşturur ve yoksa SSH anahtarları 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ı Uygula

az vmss extension set ile gruptaki VM örneklerine Özel Betik Uzantısı yapılandırmasını uygulayın. Aşağıdaki örnek ,customConfig.json yapılandırmasını myResourceGroup adlı kaynak grubundaki myScaleSet VM örneklerine 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 edin

Web sunucunuzu çalışırken 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. Yük dengeleyici, aşağıdaki örnekte gösterildiği gibi trafiği VM örneklerinizden birine dağıtır:

Nginx'te 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ımlarını güncelleştirme

Geçerli komut kabuğunuzda customConfigv2.json adlı bir dosya oluşturun ve aşağıdaki yapılandırmayı dosyaya yapıştırın. Bu tanım, uygulama yükleme betiğinin güncelleştirilmiş 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 Custom Script Extension yapılandırmasını yeniden uygulayın. customConfigv2.json, uygulamanın güncelleştirilmiş sürümünü uygulamak için 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'te güncelleştirilmiş web sayfası

Kaynakları temizle

Ölçek kümenizi ve ek kaynaklarınızı kaldırmak için az group delete komutuyla kaynak grubunu ve tüm kaynaklarını silin. --no-wait parametresi işlemin tamamlanmasını beklemeden denetimi komut istemine döndürür. parametresi, --yes ek bir istem olmadan kaynakları silmek istediğinizi onaylar.

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

Sonraki Adımlar

Bu öğreticide, Azure CLI ile ölçek kümenize uygulamaları otomatik olarak yüklemeyi ve güncelleştirmeyi öğrendiniz:

  • Uygulamaları ölçek kümenize otomatik olarak yükleme
  • Azure Özel Betik Uzantısı'nı kullanma
  • Ölçek kümesinde çalışan bir uygulamayı güncelleştirme

Ölçek kümenizi otomatik olarak ölçeklendirmeyi öğrenmek için sonraki öğreticiye geçin.