Aplikace virtuálních počítačů jsou typem prostředku v Galerii výpočetních prostředků Azure (dříve označované jako Galerie sdílených imagí), která zjednodušuje správu, sdílení a globální distribuci aplikací pro vaše virtuální počítače.
Tento článek předpokládá, že už máte Galerii výpočetních prostředků Azure. Pokud ještě galerii nemáte, vytvořte ji jako první. Další informace najdete v tématu Vytvoření galerie pro ukládání a sdílení prostředků.
Ujistěte se, že má účet úložiště přístup na veřejné úrovni, nebo použijte identifikátor URI SAS s oprávněním ke čtení, protože jiné úrovně omezení selžou nasazení. Pomocí Průzkumník služby Storage můžete rychle vytvořit identifikátor URI SAS, pokud ho ještě nemáte.
Pokud používáte PowerShell, musíte použít verzi 3.11.0 modulu Az.Storage.
Níže zvolte možnost pro vytvoření definice a verze aplikace virtuálního počítače:
- Přejděte na web Azure Portal a vyhledejte a vyberte Galerii výpočetních prostředků Azure.
- V seznamu vyberte galerii, kterou chcete použít.
- Na stránce galerie vyberte Přidat v horní části stránky a pak v rozevíracím seznamu vyberte definici aplikace virtuálního počítače. Otevře se stránka Vytvořit definici aplikace virtuálního počítače.
- Na kartě Základy zadejte název aplikace a zvolte, jestli je aplikace určená pro virtuální počítače s Linuxem nebo Windows.
- Pokud chcete pro definici aplikace virtuálního počítače zadat některá z následujících volitelných nastavení, vyberte kartu Možnosti publikování:
- Popis definice aplikace virtuálního počítače
- Datum konce životnosti
- Odkaz na Eula
- Identifikátor URI prohlášení o zásadách ochrany osobních údajů
- Identifikátor URI pro poznámky k verzi
- Až budete hotovi, vyberte Zkontrolovat a vytvořit.
- Po dokončení ověření vyberte Vytvořit , aby byla definice nasazena.
- Po dokončení nasazení vyberte Přejít k prostředku.
- Na stránce aplikace vyberte Vytvořit verzi aplikace virtuálního počítače. Otevře se stránka Vytvořit verzi aplikace virtuálního počítače.
- Zadejte číslo verze, například 1.0.0.
- Vyberte oblast, do které jste nahráli balíček aplikace.
- V části Balíček zdrojové aplikace vyberte Procházet. Vyberte účet úložiště a pak kontejner, ve kterém se nachází váš balíček. Vyberte balíček ze seznamu a pak vyberte Vybrat, až budete hotovi. Případně můžete v případě potřeby vložit identifikátor URI SAS do tohoto pole.
- Zadejte instalační skript. Můžete také zadat skript pro odinstalaci a skript aktualizace. Informace o vytváření skriptů najdete v přehledu.
- Pokud máte výchozí konfigurační soubor nahraný do účtu úložiště, můžete ho vybrat ve výchozí konfiguraci.
- Pokud nechcete, aby se tato verze při vytváření virtuálního počítače zobrazovala jako nejnovější verze, vyberte možnost Vyloučit z nejnovější verze.
- Pro datum ukončení životnosti zvolte datum v budoucnu, které chcete sledovat, kdy má být tato verze vyřazena. Neodstraní se ani neodebere automaticky, jenom pro vaše vlastní sledování.
- Pokud chcete tuto verzi replikovat do jiných oblastí, vyberte kartu Replikace a přidejte další oblasti a proveďte změny počtu replik na oblast. Původní oblast, ve které byla vaše verze vytvořená, musí být v seznamu a nedá se odebrat.
- Až budete hotovi s prováděním změn, vyberte zkontrolovat a vytvořit v dolní části stránky.
- Jakmile se ověření zobrazí, vyberte Vytvořit a nasaďte verzi aplikace virtuálního počítače.
Teď můžete vytvořit virtuální počítač a nasadit do něj aplikaci virtuálního počítače pomocí portálu. Stačí vytvořit virtuální počítač obvyklým způsobem a na kartě Upřesnit zvolte Vybrat aplikaci virtuálního počítače, která se má nainstalovat.
V seznamu vyberte aplikaci virtuálního počítače a pak v dolní části stránky vyberte Uložit .
Pokud máte k instalaci více než jednu aplikaci virtuálního počítače, můžete nastavit pořadí instalace pro každou aplikaci virtuálního počítače zpět na kartě Upřesnit.
Aplikaci virtuálního počítače můžete také nasadit do aktuálně spuštěných virtuálních počítačů. Při prohlížení podrobností virtuálního počítače na portálu vyberte možnost Rozšíření a aplikace v nabídce Nastavení v nabídce vlevo.
Zvolte aplikace virtuálních počítačů a pak vyberte Přidat aplikaci pro přidání aplikace virtuálního počítače.
V seznamu vyberte aplikaci virtuálního počítače a pak v dolní části stránky vyberte Uložit .
Pokud chcete zobrazit stav aplikace virtuálního počítače, přejděte na kartu Rozšíření a nastavení aplikací a zkontrolujte stav VMAppExtension:
Pokud chcete zobrazit stav aplikace virtuálního počítače pro VMSS, přejděte na stránku VMSS, Instance, vyberte jednu z nich a pak přejděte na VMAppExtension:
Aplikace virtuálních počítačů vyžadují Azure CLI verze 2.30.0 nebo novější.
Vytvořte definici aplikace virtuálního počítače pomocí příkazu az sig gallery-application create. V tomto příkladu vytváříme definici aplikace virtuálního počítače s názvem myApp pro virtuální počítače s Linuxem.
az sig gallery-application create \
--application-name myApp \
--gallery-name myGallery \
--resource-group myResourceGroup \
--os-type Linux \
--location "East US"
Vytvořte verzi aplikace virtuálního počítače pomocí příkazu az sig gallery-application version create. Povolené znaky pro verzi jsou čísla a tečky. Čísla musí být v rozsahu 32bitového celého čísla. Formát: MajorVersion.MinorVersion.Oprava.
Nahraďte hodnoty parametrů vlastními hodnotami.
az sig gallery-application version create \
--version-name 1.0.0 \
--application-name myApp \
--gallery-name myGallery \
--location "East US" \
--resource-group myResourceGroup \
--package-file-link "https://<storage account name>.blob.core.windows.net/<container name>/<filename>" \
--install-command "mv myApp .\myApp\myApp" \
--remove-command "rm .\myApp\myApp" \
--update-command "mv myApp .\myApp\myApp" \
--default-configuration-file-link "https://<storage account name>.blob.core.windows.net/<container name>/<filename>"\
Nastavte aplikaci virtuálního počítače na existující virtuální počítač pomocí příkazu az vm application set a nahraďte hodnoty parametrů vlastními.
az vm application set \
--resource-group myResourceGroup \
--name myVM \
--app-version-ids /subscriptions/{subID}/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 \
--treat-deployment-as-failure true
Nastavení více aplikací na virtuálním počítači:
az vm application set \
--resource-group myResourceGroup \
--name myVM \
--app-version-ids /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp2/versions/1.0.1 \
--treat-deployment-as-failure true true
Pokud chcete přidat aplikaci do VMSS, použijte příkaz az vmss application set:
az vmss application set \
--resource-group myResourceGroup \
--name myVmss \
--app-version-ids /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 \
--treat-deployment-as-failure true
Přidání více aplikací do VMSS:
az vmss application set \
--resource-group myResourceGroup \
--name myVmss
--app-version-ids /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp2/versions/1.0.0 \
--treat-deployment-as-failure true
Pokud chcete ověřit stav nasazení virtuálního počítače aplikace, použijte příkaz az vm get-instance-view:
az vm get-instance-view -g myResourceGroup -n myVM --query "instanceView.extensions[?name == 'VMAppExtension']"
Pokud chcete ověřit stav nasazení VMSS aplikace, použijte příkaz az vmss get-instance-view:
az vmss get-instance-view --ids (az vmss list-instances -g myResourceGroup -n myVmss --query "[*].id" -o tsv) --query "[*].extensions[?name == 'VMAppExtension']"
Poznámka:
Výše uvedený příkaz stavu nasazení VMSS nevypíše ID instance s výsledkem. Pokud chcete zobrazit ID instance se stavem rozšíření v každé instanci, je vyžadováno několik dalších skriptů. Projděte si následující příklad rozhraní příkazového řádku VMSS, který obsahuje syntaxi PowerShellu:
$ids = az vmss list-instances -g myResourceGroup -n myVmss --query "[*].{id: id, instanceId: instanceId}" | ConvertFrom-Json
$ids | Foreach-Object {
$iid = $_.instanceId
Write-Output "instanceId: $iid"
az vmss get-instance-view --ids $_.id --query "extensions[?name == 'VMAppExtension']"
}
Vytvořte definici aplikace virtuálního počítače pomocí New-AzGalleryApplication
. V tomto příkladu vytváříme aplikaci pro Linux s názvem myApp v galerii myGallery Azure Compute ve skupině prostředků myGallery a zadali jsme krátký popis aplikace virtuálního počítače pro vlastní použití. Nahraďte hodnoty podle potřeby.
$galleryName = "myGallery"
$rgName = "myResourceGroup"
$applicationName = "myApp"
New-AzGalleryApplication `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-Location "East US" `
-Name $applicationName `
-SupportedOSType Linux `
-Description "Backend Linux application for finance."
Vytvořte verzi aplikace pomocí New-AzGalleryApplicationVersion
. Povolené znaky pro verzi jsou čísla a tečky. Čísla musí být v rozsahu 32bitového celého čísla. Formát: MajorVersion.MinorVersion.Oprava.
V tomto příkladu vytváříme číslo verze 1.0.0. Podle potřeby nahraďte hodnoty proměnných.
$galleryName = "myGallery"
$rgName = "myResourceGroup"
$applicationName = "myApp"
$version = "1.0.0"
New-AzGalleryApplicationVersion `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-GalleryApplicationName $applicationName `
-Name $version `
-PackageFileLink "https://<storage account name>.blob.core.windows.net/<container name>/<filename>" `
-DefaultConfigFileLink "https://<storage account name>.blob.core.windows.net/<container name>/<filename>" `
-Location "East US" `
-Install "mv myApp .\myApp\myApp" `
-Remove "rm .\myApp\myApp" `
Pokud chcete přidat aplikaci do existujícího virtuálního počítače, získejte verzi aplikace a použijte ji k získání ID verze aplikace virtuálního počítače. Pomocí ID přidejte aplikaci do konfigurace virtuálního počítače.
$galleryName = "myGallery"
$rgName = "myResourceGroup"
$applicationName = "myApp"
$version = "1.0.0"
$vmName = "myVM"
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmName
$appVersion = Get-AzGalleryApplicationVersion `
-GalleryApplicationName $applicationName `
-GalleryName $galleryName `
-Name $version `
-ResourceGroupName $rgName
$packageId = $appVersion.Id
$app = New-AzVmGalleryApplication -PackageReferenceId $packageId
Add-AzVmGalleryApplication -VM $vm -GalleryApplication $app -TreatFailureAsDeploymentFailure true
Update-AzVM -ResourceGroupName $rgName -VM $vm
Přidání aplikace do VMSS:
$vmss = Get-AzVmss -ResourceGroupName $rgname -Name $vmssName
$appVersion = Get-AzGalleryApplicationVersion `
-GalleryApplicationName $applicationName `
-GalleryName $galleryName `
-Name $version `
-ResourceGroupName $rgName
$packageId = $appVersion.Id
$app = New-AzVmssGalleryApplication -PackageReferenceId $packageId
Add-AzVmssGalleryApplication -VirtualMachineScaleSetVM $vmss.VirtualMachineProfile -GalleryApplication $app
Update-AzVmss -ResourceGroupName $rgName -VirtualMachineScaleSet $vmss -VMScaleSetName $vmssName
Ověřte, že aplikace proběhla úspěšně:
$rgName = "myResourceGroup"
$vmName = "myVM"
$result = Get-AzVM -ResourceGroupName $rgName -VMName $vmName -Status
$result.Extensions | Where-Object {$_.Name -eq "VMAppExtension"} | ConvertTo-Json
Ověření pro VMSS:
$rgName = "myResourceGroup"
$vmssName = "myVMss"
$result = Get-AzVmssVM -ResourceGroupName $rgName -VMScaleSetName $vmssName -InstanceView
$resultSummary = New-Object System.Collections.ArrayList
$result | ForEach-Object {
$res = @{ instanceId = $_.InstanceId; vmappStatus = $_.InstanceView.Extensions | Where-Object {$_.Name -eq "VMAppExtension"}}
$resultSummary.Add($res) | Out-Null
}
$resultSummary | ConvertTo-Json -Depth 5
Vytvořte definici aplikace.
PUT
/subscriptions/\<**subscriptionId**\>/resourceGroups/\<**resourceGroupName**\>/providers/Microsoft.Compute/galleries/\<**galleryName**\>/applications/\<**applicationName**\>?api-version=2019-03-01
{
"location": "West US",
"name": "myApp",
"properties": {
"supportedOSType": "Windows | Linux",
"endOfLifeDate": "2020-01-01"
}
}
Název pole |
Popis |
Omezení |
name |
Jedinečný název aplikace virtuálního počítače v galerii |
Maximální délka 117 znaků Povolené znaky jsou velká nebo malá písmena, číslice, pomlčka(-), tečka (.), podtržítko (_). Názvy nesmí končit tečkou(.). |
supportedOSType |
Bez ohledu na to, jestli se jedná o aplikaci pro Windows nebo Linux |
"Windows" nebo "Linux" |
endOfLifeDate |
Datum konce životnosti aplikace. Všimněte si, že se jedná pouze o odkaz a nevynucuje se. |
Platné budoucí datum |
Vytvoření verze aplikace virtuálního počítače
PUT
/subscriptions/\<**subscriptionId**\>/resourceGroups/\<**resourceGroupName**\>/providers/Microsoft.Compute/galleries/\<**galleryName**\>/applications/\<**applicationName**\>/versions/\<**versionName**\>?api-version=2019-03-01
{
"location": "$location",
"properties": {
"publishingProfile": {
"source": {
"mediaLink": "$mediaLink",
"defaultConfigurationLink": "$configLink"
},
"manageActions": {
"install": "echo installed",
"remove": "echo removed",
"update": "echo update"
},
"targetRegions": [
{
"name": "$location1",
"regionalReplicaCount": 1
},
{ "name": "$location1" }
]
},
"endofLifeDate": "datetime",
"excludeFromLatest": "true | false"
}
}
Název pole |
Popis |
Omezení |
location |
Zdrojové umístění pro verzi aplikace virtuálního počítače |
Platná oblast Azure |
mediaLink |
Adresa URL obsahující balíček verze aplikace |
Platná a existující adresa URL úložiště |
defaultConfigurationLink |
Nepovinné. Adresa URL obsahující výchozí konfiguraci, která se může přepsat v době nasazení. |
Platná a existující adresa URL úložiště |
Instalace |
Příkaz pro instalaci aplikace |
Platný příkaz pro daný operační systém |
Odebrat |
Příkaz pro odebrání aplikace |
Platný příkaz pro daný operační systém |
Aktualizovat |
Nepovinné. Příkaz pro aktualizaci aplikace. Pokud není zadána a vyžaduje se aktualizace, stará verze se odebere a nainstaluje se nová. |
Platný příkaz pro daný operační systém |
targetRegions/name |
Název oblasti, do které se má replikovat |
Ověření oblasti Azure |
targetRegions/regionalReplicaCount |
Nepovinné. Počet replik v oblasti, které se mají vytvořit. Výchozí hodnota je 1. |
Celé číslo mezi 1 a 3 včetně |
endOfLifeDate |
Datum konce životnosti pro verzi aplikace. Všimněte si, že se jedná pouze o odkazy na zákazníky a nevynucuje se. |
Platné budoucí datum |
excludeFromLatest |
Pokud je tato verze zadaná, nebude tato verze považována za nejnovější. |
Pravda nebo nepravda |
Pokud chcete do virtuálního počítače přidat verzi aplikace virtuálního počítače, proveďte na virtuálním počítači put.
PUT
/subscriptions/\<**subscriptionId**\>/resourceGroups/\<**resourceGroupName**\>/providers/Microsoft.Compute/virtualMachines/\<**VMName**\>?api-version=2019-03-01
{
"properties": {
"applicationProfile": {
"galleryApplications": [
{
"order": 1,
"packageReferenceId": "/subscriptions/{subscriptionId}/resourceGroups/<resource group>/providers/Microsoft.Compute/galleries/{gallery name}/applications/{application name}/versions/{version}",
"configurationReference": "{path to configuration storage blob}",
"treatFailureAsDeploymentFailure": false
}
]
}
},
"name": "{vm name}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resource group}/providers/Microsoft.Compute/virtualMachines/{vm name}",
"location": "{vm location}"
}
Použití aplikace virtuálního počítače na jednotnou škálovací sadu:
PUT
/subscriptions/\<**subscriptionId**\>/resourceGroups/\<**resourceGroupName**\>/providers/Microsoft.Compute/
virtualMachineScaleSets/\<**VMSSName**\>?api-version=2019-03-01
{
"properties": {
"virtualMachineProfile": {
"applicationProfile": {
"galleryApplications": [
{
"order": 1,
"packageReferenceId": "/subscriptions/{subscriptionId}/resourceGroups/<resource group>/providers/Microsoft.Compute/galleries/{gallery name}/applications/{application name}/versions/{version}",
"configurationReference": "{path to configuration storage blob}",
"treatFailureAsDeploymentFailure": false
}
]
}
}
},
"name": "{vm name}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resource group}/providers/Microsoft.Compute/virtualMachines/{vm name}",
"location": "{vm location}"
}
Název pole |
Popis |
Omezení |
order |
Nepovinné. Pořadí, ve kterém se mají aplikace nasadit. Viz níže. |
Ověření celého čísla |
packageReferenceId |
Referenční verze aplikace galerie |
Platný odkaz na verzi aplikace |
configurationReference |
Nepovinné. Úplná adresa URL objektu blob úložiště obsahujícího konfiguraci pro toto nasazení. Tím se přepíše jakákoli hodnota zadaná pro defaultConfiguration dříve. |
Platný odkaz na objekt blob úložiště |
treatFailureAsDeploymentFailure |
Nepovinné. Stav zřizování pro aplikaci virtuálního počítače Při nastavení na hodnotu false se stav zřizování vždy zobrazí jako úspěšný bez ohledu na selhání nasazení aplikace. |
Pravda nebo Nepravda |
Pole objednávky lze použít k určení závislostí mezi aplikacemi. Pravidla pro pořadí jsou následující:
Velikost písmen |
Význam instalace |
Význam selhání |
Není zadána žádná objednávka. |
Po seřazených aplikacích se nainstalují neuspořádané aplikace. U neuspořádaných aplikací neexistuje žádná záruka na objednávku instalace. |
Selhání instalace jiných aplikací, ať už je seřazená nebo neuspořádaná, nemá vliv na instalaci neuspořádaných aplikací. |
Duplicitní hodnoty objednávek |
Aplikace se instaluje v libovolném pořadí v porovnání s jinými aplikacemi se stejným pořadím. Všechny aplikace stejné objednávky se nainstalují za aplikace s nižšími objednávkami a před aplikacemi s vyššími objednávkami. |
Pokud se předchozí aplikaci s nižším pořadím nepodařilo nainstalovat, žádné aplikace s touto instalací objednávky. Pokud se některé aplikaci s touto objednávkou nepodaří nainstalovat, nebudou nainstalovány žádné aplikace s vyšší objednávkou. |
Zvýšení objednávek |
Aplikace se nainstaluje po těch s nižšími objednávkami a před aplikacemi s vyššími objednávkami. |
Pokud se předchozí aplikaci s nižším pořadím nepodařilo nainstalovat, tato aplikace se nenainstaluje. Pokud se tato aplikace nepodaří nainstalovat, žádná aplikace s vyšší objednávkou se nainstaluje. |
Odpověď zahrnuje celý model virtuálního počítače. Níže jsou uvedené příslušné části.
{
"name": "{vm name}",
"id": "{vm id}",
"type": "Microsoft.Compute/virtualMachines",
"location": "{vm location}",
"properties": {
"applicationProfile": {
"galleryApplications": ""
},
"provisioningState": "Updating"
},
"resources": [
{
"name": "VMAppExtension",
"id": "{extension id}",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "centraluseuap",
"properties": "@{autoUpgradeMinorVersion=True; forceUpdateTag=7c4223fc-f4ea-4179-ada8-c8a85a1399f5; provisioningState=Creating; publisher=Microsoft.CPlat.Core; type=VMApplicationManagerLinux; typeHandlerVersion=1.0; settings=}"
}
]
}
Pokud se aplikace virtuálních počítačů ještě na virtuálním počítači nenainstalovaly, hodnota bude prázdná.
Získání výsledku zobrazení instance virtuálního počítače:
GET
/subscriptions/\<**subscriptionId**\>/resourceGroups/\<**resourceGroupName**\>/providers/Microsoft.Compute/virtualMachines/\<**VMName**\>/instanceView?api-version=2019-03-01
Výsledek vypadá takto:
{
...
"extensions" [
...
{
"name": "VMAppExtension",
"type": "Microsoft.CPlat.Core.VMApplicationManagerLinux",
"typeHandlerVersion": "1.0.9",
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "Enable succeeded: {\n \"CurrentState\": [\n {\n \"applicationName\": \"doNothingLinux\",\n \"version\": \"1.0.0\",\n \"result\": \"Install SUCCESS\"\n },\n {
\n \"applicationName\": \"badapplinux\",\n \"version\": \"1.0.0\",\n \"result\": \"Install FAILED Error executing command \u0027exit 1\u0027: command terminated with exit status=1\"\n }\n ],\n \"ActionsPerformed\": []\n}
"
}
]
}
...
]
}
Stav aplikace virtuálního počítače je ve stavové zprávě výsledku rozšíření aplikace virtuálního počítače v zobrazení instance.
Získání stavu aplikace VMSS:
GET
/subscriptions/\<**subscriptionId**\>/resourceGroups/\<**resourceGroupName**\>/providers/Microsoft.Compute/ virtualMachineScaleSets/\<**VMSSName**\>/virtualMachines/<**instanceId**>/instanceView?api-version=2019-03-01
Výstup je podobný předchozímu příkladu virtuálního počítače.