Ebben a cikkben megtalálhatja a virtuális gép (VM) és függőségei Azure Stack Hubból való eltávolításának lépéseit.
Ha eltávolít egy virtuális gépet az Azure Stack Hubból, az összetevő függőségei; vagyis az adatlemezek, a virtuális hálózati adapterek és a diagnosztikai tárolók az erőforráscsoportban maradnak. Ezek az elemek nem törlődnek automatikusan az operációsrendszer-lemezzel együtt. Az operációsrendszer-lemez és az összetevők függőségeinek eltávolításához kövesse az ebben a cikkben ismertetett lépéseket.
Új virtuális gép létrehozásakor általában egy új erőforráscsoportot hoz létre, és az összes függőséget ebben az erőforráscsoportban helyezi el. Ha törölni szeretné a virtuális gépet és annak összes függőségét, törölheti az erőforráscsoportot. Az Azure Resource Manager sikeresen törli a függőségeket. Vannak esetek, amikor nem lehet törölni az erőforráscsoportot a virtuális gép eltávolításához; Előfordulhat például, hogy a virtuális gép olyan erőforrásokat tartalmaz, amelyek nem a megtartani kívánt virtuális gép függőségei.
A Azure Portal vagy a PowerShell használatával eltávolíthatja a virtuális gépet és annak függőségeit.
Ha nem tudja törölni az erőforráscsoportot, akkor vagy a függőségek nem ugyanabban az erőforráscsoportban vannak, vagy más erőforrások is vannak. Kövesse az alábbi lépéseket:
- Nyissa meg az Azure Stack felhasználói portálját.
- Válassza a Virtuális gépek lehetőséget. Keresse meg a virtuális gépet, majd válassza ki a gépet a Virtuális gép panel megnyitásához.
- Jegyezze fel a virtuális gép és a virtuális gép függőségeit tartalmazó erőforráscsoportot.
- Válassza a Hálózatkezelés lehetőséget, és jegyezze fel a hálózati adaptert.
- Válassza a Lemezek lehetőséget, és jegyezze fel az operációsrendszer-lemezt és az adatlemezeket.
- Térjen vissza a Virtuális gép panelre, és válassza a Törlés lehetőséget.
- A törlés megerősítéséhez írja be az igen értéket, majd válassza a Törlés lehetőséget.
- Válassza az Erőforráscsoportok lehetőséget, majd válassza ki az erőforráscsoportot.
- Törölje a függőségeket a feljegyzett elemek manuális kijelölésével. Minden elemhez válassza a Törlés lehetőséget:
- Írja be az igen értéket a törlés megerősítéséhez, majd válassza a Törlés lehetőséget.
- Várjon, amíg az erőforrás teljesen törlődik.
- Ezután törölheti a következő függőséget.
Ha nem tudja törölni az erőforráscsoportot, akkor vagy a függőségek nem ugyanabban az erőforráscsoportban vannak, vagy más erőforrások is vannak. Kövesse az ebben a szakaszban ismertetett lépéseket.
Csatlakozzon az Azure Stack Hub-környezethez, majd frissítse a következő változókat a virtuális gép nevével és erőforráscsoportjával. A PowerShell-munkamenet Azure Stack Hubhoz való csatlakoztatásával kapcsolatos utasításokért lásd: Csatlakozás az Azure Stack Hubhoz felhasználóként a PowerShell használatával.
$machineName = 'VM_TO_DELETE'
$resGroupName = 'RESOURCE_GROUP'
$machine = Get-AzVM -Name $machineName -ResourceGroupName $resGroupName
Kérje le a virtuális gép adatait és a függőségek nevét. Ugyanebben a munkamenetben futtassa a következő parancsmagokat:
$azResParams = @{
'ResourceName' = $machineName
'ResourceType' = 'Microsoft.Compute/virtualMachines'
'ResourceGroupName' = $resGroupName
}
$vmRes = Get-AzResource @azResParams
$vmId = $vmRes.Properties.VmId
Törölje a rendszerindítási diagnosztikai tárolót. Ha a gép neve 9 karakternél rövidebb, módosítsa az indexet a sztringhosszra a részkarakterláncban a $diagContainer
változó létrehozásakor.
Ugyanebben a munkamenetben futtassa a következő parancsmagokat:
$container = [regex]::match($machine.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
$diagContainer = ('bootdiagnostics-{0}-{1}' -f $machine.Name.ToLower().Substring(0, 9), $vmId)
$containerRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $container }).ResourceGroupName
$storeParams = @{
'ResourceGroupName' = $containerRg
'Name' = $container }
Get-AzStorageAccount @storeParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainer } | Remove-AzStorageContainer -Force
Távolítsa el a virtuális hálózati adaptert:
$machine | Remove-AzNetworkInterface -Force
Törölje az operációsrendszer-lemezt:
$osVhdUri = $machine.StorageProfile.OSDisk.Vhd.Uri
$osDiskConName = $osVhdUri.Split('/')[-2]
$osDiskStorageAcct = Get-AzStorageAccount | where { $_.StorageAccountName -eq $osVhdUri.Split('/')[2].Split('.')[0] }
$osDiskStorageAcct | Remove-AzStorageBlob -Container $osDiskConName -Blob $osVhdUri.Split('/')[-1] -Confirm:$true
Távolítsa el a virtuális géphez csatolt adatlemezeket:
if ($machine.StorageProfile.DataDisks.Name.Count -gt 0)
{
Write-Verbose -Message 'Deleting disks...'
foreach ($uri in $machine.StorageProfile.DataDisks.Vhd.Uri )
{
$dataDiskStorageAcct = Get-AzStorageAccount | where { $_.StorageAccountName -eq $uri.Split('/')[2].Split('.')[0]
$dataDiskStorageAcct | Remove-AzStorageBlob -Container $uri.Split('/')[-2] -Blob $uri.Split('/')[-1] -ea Ignore -Confirm:$true
}
}
Végül törölje a virtuális gépet. A parancsmag futtatása némi időt vesz igénybe. A virtuális géphez csatolt összetevők naplózásához tekintse át a Virtuálisgép-objektumot a PowerShellben. Az objektum áttekintéséhez tekintse meg a virtuálisgép-objektumot tartalmazó változót. Gépelje be: $machine
.
A virtuális gép törléséhez ugyanabban a munkamenetben futtassa a következő parancsot:
$machine | Remove-AzVM -Force
Ha nem tudja törölni az erőforráscsoportot, akkor vagy a függőségek nem ugyanabban az erőforráscsoportban vannak, vagy más erőforrások is vannak. Kövesse az ebben a szakaszban ismertetett lépéseket.
Csatlakozzon az Azure Stack Hub-környezethez, majd frissítse a következő változókat a virtuális gép nevével és erőforráscsoportjával. A PowerShell-munkamenet Azure Stack Hubhoz való csatlakoztatásával kapcsolatos utasításokért lásd: Csatlakozás az Azure Stack Hubhoz felhasználóként a PowerShell használatával.
$machineName = 'VM_TO_DELETE'
$resGroupName = 'RESOURCE_GROUP'
$machine = Get-AzureRmVM -Name $machineName -ResourceGroupName $resGroupName
Kérje le a virtuális gép adatait és a függőségek nevét. Ugyanebben a munkamenetben futtassa a következő parancsmagokat:
$azResParams = @{
'ResourceName' = $machineName
'ResourceType' = 'Microsoft.Compute/virtualMachines'
'ResourceGroupName' = $resGroupName
}
$vmRes = Get-AzureRmResource @azResParams
$vmId = $vmRes.Properties.VmId
Törölje a rendszerindítási diagnosztikai tárolót. Ha a gép neve 9 karakternél rövidebb, módosítsa az indexet a sztringhosszra a részkarakterláncban a $diagContainer
változó létrehozásakor.
Ugyanebben a munkamenetben futtassa a következő parancsmagokat:
$container = [regex]::match($machine.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
$diagContainer = ('bootdiagnostics-{0}-{1}' -f $machine.Name.ToLower().Substring(0, 9), $vmId)
$containerRg = (Get-AzureRmStorageAccount | where { $_.StorageAccountName -eq $container }).ResourceGroupName
$storeParams = @{
'ResourceGroupName' = $containerRg
'Name' = $container }
Get-AzureRmStorageAccount @storeParams | Get-AzureStorageContainer | where { $_.Name-eq $diagContainer } | Remove-AzureStorageContainer -Force
Távolítsa el a virtuális hálózati adaptert:
$machine | Remove-AzureRmNetworkInterface -Force
Törölje az operációsrendszer-lemezt:
$osVhdUri = $machine.StorageProfile.OSDisk.Vhd.Uri
$osDiskConName = $osVhdUri.Split('/')[-2]
$osDiskStorageAcct = Get-AzureRmStorageAccount | where { $_.StorageAccountName -eq $osVhdUri.Split('/')[2].Split('.')[0] }
$osDiskStorageAcct | Remove-AzureStorageBlob -Container $osDiskConName -Blob $osVhdUri.Split('/')[-1]
Távolítsa el a virtuális géphez csatolt adatlemezeket:
if ($machine.DataDiskNames.Count -gt 0)
{
Write-Verbose -Message 'Deleting disks...'
foreach ($uri in $machine.StorageProfile.DataDisks.Vhd.Uri )
{
$dataDiskStorageAcct = Get-AzureRmStorageAccount -Name $uri.Split('/')[2].Split('.')[0]
$dataDiskStorageAcct | Remove-AzureStorageBlob -Container $uri.Split('/')[-2] -Blob $uri.Split('/')[-1] -ea Ignore
}
}
Végül törölje a virtuális gépet. A parancsmag futtatása némi időt vesz igénybe. A virtuális géphez csatolt összetevők naplózásához tekintse át a Virtuálisgép-objektumot a PowerShellben. Az objektum áttekintéséhez tekintse meg a virtuálisgép-objektumot tartalmazó változót. Gépelje be: $machine
.
A virtuális gép törléséhez ugyanabban a munkamenetben futtassa a következő parancsot:
$machine | Remove-AzureRmVM -Force