Oktatóanyag: Alkalmazások telepítése virtuálisgép-méretezési csoportokban az Azure CLI-vel

Ha egy méretezési csoportban virtuálisgép-példányokon szeretne alkalmazásokat futtatni, először telepítenie kell az alkalmazás összetevőit és a szükséges fájlokat. Egy korábbi oktatóanyagban megtanulta, hogyan hozhat létre és használhat egyéni virtuálisgép-lemezképeket a virtuálisgép-példányok üzembe helyezéséhez. Ez az egyéni rendszerkép manuális alkalmazástelepítéseket és konfigurációkat tartalmazott. Az alkalmazások méretezési csoportokba való telepítését az egyes virtuálisgép-példányok üzembe helyezése után is automatizálhatja, vagy frissítheti a méretezési csoportban már futó alkalmazásokat. Ezen oktatóanyag segítségével megtanulhatja a következőket:

  • Alkalmazások automatikus telepítése a méretezési csoportra
  • Az Azure Egyéni szkriptbővítmény használata
  • Futó alkalmazás frissítése méretezési csoportban

Ha nem rendelkezik Azure-fiókkal, a kezdés előtt hozzon létre egy ingyenes fiókot .

Előfeltételek

  • Ez a cikk az Azure CLI 2.0.29-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Mi az Azure Custom Script Bővítmény?

Az egyéni szkriptbővítmény letölti és végrehajtja a szkripteket az Azure-beli virtuális gépeken. Ez a bővítmény az üzembe helyezés utáni konfigurációhoz, a szoftvertelepítéshez vagy bármely más konfigurációs/felügyeleti feladathoz hasznos. A szkriptek letölthetők az Azure Storage-ból vagy a GitHubról, vagy a bővítmény futásideje alatt az Azure Portalon is elérhetőek.

Az Egyéni szkript bővítmény integrálható az Azure Resource Manager-sablonokkal, és használható az Azure CLI-vel, az Azure PowerShell-lel, az Azure Portallal vagy a REST API-val is. További információkért tekintse meg az Egyéni szkriptbővítmény áttekintését.

Ha az Egyéni szkriptbővítményt az Azure CLI-vel szeretné használni, hozzon létre egy JSON-fájlt, amely meghatározza a lekért fájlokat és a végrehajtandó parancsokat. Ezek a JSON-definíciók újra felhasználhatók a skálakészlet üzembe helyezések során a konzisztens alkalmazástelepítések érdekében.

Egyéni szkriptbővítmény definíciójának létrehozása

Az egyéni szkriptbővítmény működése közben történő megtekintéséhez hozzunk létre egy skálázási készletet, amely telepíti az NGINX-webkiszolgálót, és megjeleníti a skálázási készlet VM példányának állomásnevét. Az alábbi Egyéni Szkriptbővítmény definíció letölt egy mintaszkriptet a GitHubról, telepíti a szükséges csomagokat, majd a virtuális gép példány gazdagépnevét egy egyszerű HTML-lapra írja.

Az aktuális rendszerhéjban hozzon létre egy customConfig.json nevű fájlt, és illessze be a következő konfigurációt. Például ne a helyi gépen, hanem a Cloud Shellben hozza létre a fájlt. Tetszőleges szerkesztőt használhat. Ebben az oktatóanyagban a VI-t fogjuk használni. Adja megvi a Cloud Shellt. Illessze be az alábbi JSON-t a szerkesztőbe, és írja be a következőt :w customConfig.json:

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

Megjegyzés:

Előfordulhat, hogy a JSON-blokkban lévő egyszeri (') és dupla idézőjelek (") használatát meg kell inverzítenie, ha úgy dönt, hogy közvetlenül hivatkozik a JSON-ra ( ahelyett , hogy azcustomConfig.jsonfájlra hivatkozik) az alábbi --settings paraméterben.

Skálázási készlet létrehozása

Fontos

2023 novemberétől a PowerShell és az Azure CLI használatával létrehozott virtuálisgép-méretezési csoportok alapértelmezés szerint rugalmas vezénylési módba kerülnek, ha nincs megadva vezénylési mód. Az ezzel a változással és az Ön által megteendő lépésekkel kapcsolatos további információkért látogasson el a VMSS PowerShell/CLI-ügyfelek nagy változása – Microsoft Community Hub című oldalra.

Hozzon létre egy erőforráscsoportot a az group create parancs segítségével. Az alábbi példa létrehoz egy myResourceGroup nevű erőforráscsoportot az eastus helyen:

az group create --name myResourceGroup --location eastus

Most hozzon létre egy virtuális gépek méretezési csoportját az vmss create használatával. Az alábbi példa létrehoz egy myScaleSet nevű méretezési csoportot, és SSH-kulcsokat hoz létre, ha nem léteznek:

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

Néhány percet vesz igénybe a méretezési csoport erőforrásainak és virtuális gépeinek létrehozása és konfigurálása.

Az egyéni szkriptbővítmény alkalmazása

Alkalmazza a Custom Script Extension konfigurációt a méretezési csoportban lévő virtuális géppéldányokra az az vmss extension set segítségével. Az alábbi példa a customConfig.json konfigurációt alkalmazza a myResourceGroup nevű erőforráscsoport myScaleSet virtuálisgép-példányaira:

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

Caution

A fájlnevek megkülönböztetik a kis- és nagybetűket. A hiba elkerülése érdekében használja az utasításokban megadott pontos fájlnevet.

A bővítmény alkalmazása a meglévő méretezési csoportpéldányokra

Minden példányt frissíteni kell az egyéni szkript alkalmazásához. A frissítés eltarthat néhány percig.

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

Forgalom engedélyezése a 80-as portra

Ahhoz, hogy a forgalom a terheléselosztón keresztül a virtuális gépekre haladhasson, frissíteni kell az alapértelmezett hálózati biztonsági csoportot.

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

A méretezési csoport tesztelése

A webkiszolgáló működésének megtekintéséhez szerezze be a terheléselosztó nyilvános IP-címét a az network public-ip show paranccsal. Az alábbi példa a méretezési csoport részeként létrehozott MyScaleSetLBPublicIP IP-címét szerzi be:

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

Adja meg a terheléselosztó nyilvános IP-címét egy webböngészőben. A terheléselosztó az alábbi példa szerint osztja el a forgalmat az egyik virtuális gép példányához:

Egyszerű weblap az Nginxben

Hagyja nyitva a webböngészőt, hogy a következő lépésben láthassa a frissített verziót.

A frissítési szabályzat módosítása

Az előző szakaszban a frissített alkalmazás minden méretezési csoportpéldányra való alkalmazásához manuális frissítésre volt szükség. Ha azt szeretné, hogy a frissítések automatikusan alkalmazhatók legyenek az összes meglévő méretezési csoportpéldányra, frissítse a frissítési szabályzatot manuálisról automatikusra. A frissítési szabályzatokról további információt a Virtuális gép-méretezési készletek frissítési szabályzataiban talál.

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

Alkalmazástelepítés frissítése

Az aktuális rendszerhéjban hozzon létre egy customConfigv2.json nevű fájlt, és illessze be a következő konfigurációt. Ez a definíció az alkalmazástelepítési szkript frissített v2-es verzióját futtatja:

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

Alkalmazza ismét az egyéni szkriptbővítmény konfigurációját a méretezési csoportra a az vmss extension set használatával. A customConfigv2.json az alkalmazás frissített verziójának alkalmazására szolgál:

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

Mivel a méretezési csoport most már automatikus frissítési szabályzatot használ, a frissített alkalmazás automatikusan alkalmazva lesz a meglévő méretezési csoportpéldányokra. Frissítse a webböngészőt a frissített alkalmazás megtekintéséhez.

Frissített weblap az Nginxben

Erőforrások tisztítása

A méretezési csoport és a további erőforrások eltávolításához törölje az erőforráscsoportot és annak összes erőforrását az group delete paranccsal. A --no-wait paraméter visszaadja a vezérlést a parancssornak, és nem várja meg a művelet befejeztét. A --yes paraméter megerősíti, hogy további kérés nélkül szeretné törölni az erőforrásokat.

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

Következő lépések

Ebben az oktatóanyagban megtanultad, hogyan telepítheted és frissítheted automatikusan az alkalmazásokat a példahalodon az Azure CLI-vel.

  • Alkalmazások automatikus telepítése a méretezési csoportra
  • Az Azure Egyéni szkriptbővítmény használata
  • Futó alkalmazás frissítése méretezési csoportban

Lépjen tovább a következő oktatóanyagra, amelyből megtudhatja, hogyan skálázhatja automatikusan a méretezési csoportot.