Megosztás a következőn keresztül:


Oktatóanyag: Alkalmazások telepítése virtuálisgép-méretezési csoportokban az Azure PowerShell használatával

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 nincs Azure-előfizetésed, hozz létre egy ingyenes fiókot mielőtt elkezdenéd.

Azure Cloud Shell

Az Azure üzemelteti az Azure Cloud Shell-t, egy interaktív héjkörnyezetet, amelyet a böngésződön keresztül használhatsz. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. Felhasználhatja a Cloud Shell előre telepített parancsait a cikkben szereplő kód futtatására anélkül, hogy bármit telepítenie kellene a helyi környezetében.

Azure Cloud Shell elindítása:

Lehetőség Példa/hivatkozás
A kód vagy parancsblokk jobb felső sarkában válassza a Kipróbálás lehetőséget. A Kipróbálás lehetőség választása nem másolja automatikusan a kódot vagy a parancsot a Cloud Shellbe. Képernyőkép az Azure Cloud Shell kipróbálásának példájáról.
Lépjen a https://shell.azure.com webhelyre, vagy válassza ki a Cloud Shell indítása gombot a Cloud Shell megnyitásához a böngészőjében. Gomb az Azure Cloud Shell elindításához.
Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. Az Azure portálon a Cloud Shell gombot mutató képernyőkép

Az Azure Cloud Shell használata:

  1. Indítsa el a Cloud Shell alkalmazást.

  2. A kód vagy parancs másolásához kattintson a Másolás gombra egy kódblokkon (vagy parancsblokkon).

  3. Másolja be a kódot vagy parancsot a Cloud Shell munkamenetbe a Windows és Linux rendszereken a Ctrl+Shift+V billentyűk kiválasztásával, vagy a macOS rendszeren a Cmd+Shift+V billentyűkiválasztásával.

  4. A kód vagy parancs futtatásához válassza az Enter lehetőséget .

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. 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.

A Custom Script Extension működésének megtekintéséhez hozzon létre egy méretezési csoportot, amely telepíti az IIS webkiszolgálót, és kimenetként megjeleníti a méretezési csoport virtuális gép példányának állomásnevét. Az Egyéni szkript-bővítmény definíciója letölt egy mintaszkriptet a GitHubról, telepíti a szükséges csomagokat, majd egy egyszerű HTML-lapra írja a virtuális gép példány hosztnevét.

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

Hozzon létre egy erőforráscsoportot a New-AzResourceGroup használatával. Az alábbi példa létrehoz egy myResourceGroup nevű erőforráscsoportot az USA keleti régiójában :

New-AzResourceGroup -Name myResourceGroup -Location "East US"

Most hozzon létre egy virtuális gép skálázási készletet a New-AzVmss használatával. Az egyes virtuálisgép-példányok közötti forgalom elosztásához létrejön egy terheléselosztó is. A terheléselosztó szabályokat tartalmaz a forgalom 80-at tartalmazó TCP-porton való elosztásához. Lehetővé teszi a távoli asztali forgalmat a 3389-as TCP-porton, és a PowerShell-remotálást az 5985-ös TCP-porton. Amikor a rendszer kéri, beállíthatja saját rendszergazdai hitelesítő adatait a méretezési csoportban lévő virtuálisgép-példányokhoz:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -Location "EastUS" `
  -UpgradePolicyMode "Manual" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" 

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.

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

Az Azure PowerShell kivonatolóval tárolja a letöltendő fájlt és a végrehajtandó parancsot. Az alábbi példában egy GitHub-példaszkriptet használunk. Először hozza létre ezt a konfigurációs objektumot az alábbiak szerint:

$customConfig = @{
  "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}

Most alkalmazza az Egyéni szkriptbővítményt az Add-AzVmssExtension használatával. A korábban definiált konfigurációs objektumot a rendszer átadja a bővítménynek. Frissítse a méretezési csoport profilpéldányainak bővítményét az Update-AzVmss használatával.

# Get information about the scale set
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Add the Custom Script Extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
  -VirtualMachineScaleSet $vmss `
  -Name "customScript" `
  -Publisher "Microsoft.Compute" `
  -Type "CustomScriptExtension" `
  -TypeHandlerVersion 1.9 `
  -Setting $customConfig

# Update the scale set
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Name "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Bővítmény hozzáadása a meglévő méretezési csoportpéldányokhoz

Manuális frissítés végrehajtásával alkalmazza a frissített bővítményt az összes meglévő méretezési csoportpéldányra. A frissítés végrehajtása eltarthat néhány percig.

Update-AzVmssInstance -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "*"

A méretezési csoport minden virtuálisgép-példánya letölti és futtatja a szkriptet a GitHubról. Egy összetettebb példában több alkalmazásösszetevő és fájl is telepíthető. Ha a méretezési csoport felskálázva van, az új virtuálisgép-példányok automatikusan ugyanazt az egyéni szkriptbővítmény-definíciót alkalmazzák, és telepítik a szükséges alkalmazást.

Az alkalmazás felé irányuló forgalom engedélyezése

Az alapszintű webalkalmazáshoz való hozzáférés engedélyezéséhez hozzon létre egy hálózati biztonsági csoportot a New-AzNetworkSecurityRuleConfig és a New-AzNetworkSecurityGroup használatával. További információkért lásd: Hálózatkezelés Azure-beli virtuálisgép-méretezési csoportokhoz.

#Create a rule to allow traffic over port 80
$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

#Create a network security group and associate it with the rule
$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName  "myResourceGroup" `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName  "myResourceGroup" `
  -Name myVnet

$frontendSubnet = $vnet.Subnets[0]

$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name mySubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend

Set-AzVirtualNetwork -VirtualNetwork $vnet

A méretezési csoport tesztelése

A webkiszolgáló működés közbeni megtekintéséhez kérje le a terheléselosztó nyilvános IP-címét a Get-AzPublicIpAddress használatával. Az alábbi példa a myResourceGroup erőforráscsoportban létrehozott IP-címet jeleníti meg:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

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 IIS-ben

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.

$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Update-Azvmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -UpgradePolicyMode "Automatic" `
    -VirtualMachineScaleSet $vmss

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

Előfordulhat, hogy egy méretezési csoport teljes életciklusa során telepítenie kell az alkalmazás frissített verzióját. Az egyéni szkriptbővítménnyel hivatkozhat egy frissített üzembe helyezési szkriptre, majd újból alkalmazhatja a bővítményt a méretezési csoporthoz.

Hozzon létre egy customConfigv2 nevű új konfigurációdefiníciót. Ez a definíció az alkalmazástelepítési szkript frissített v2-es verzióját futtatja:

$customConfigv2 = @{
  "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis-v2.ps1");
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis-v2.ps1"
}

Frissítsd a Custom Script Extension konfigurációját a méretezési csoport virtuális gép példányaira. A customConfigv2 definíció az alkalmazás frissített verzióját alkalmazza a méretezési csoportra:

$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"
 
$vmss.VirtualMachineProfile.ExtensionProfile[0].Extensions[0].Settings = $customConfigv2
 
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Name "myScaleSet" `
  -VirtualMachineScaleSet $vmss

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. A frissített verzió megtekintéséhez frissítse a webhelyet a böngészőben:

Frissített weblap az IIS-ben

Erőforrások tisztítása

A méretezési készlet é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 a Remove-AzResourceGroup parancs használatával. A -Force paraméter megerősíti, hogy további kérés nélkül szeretné törölni az erőforrásokat. A -AsJob paraméter visszaadja a vezérlést a parancssornak, és nem várja meg a művelet befejeztét.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Következő lépések

Ebben az oktatóanyag keretében megismerted, hogyan telepítheted és frissítheted automatikusan az alkalmazásokat a méretezési készleteden az Azure PowerShell használatával.

  • 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.