Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo identifica problemas conhecidos críticos e suas soluções alternativas em operações desconectadas para Azure Local.
Essas notas de versão são atualizadas continuamente para incluir problemas críticos e soluções alternativas necessárias. Examine essas informações cuidadosamente antes de implantar operações desconectadas para Azure Local.
Problemas conhecidos para a versão 2609
A geração de certificados OperationsModule causa problema quando a raiz da AC contém espaço no nome comum da AC
Aplica-se a: Gerando certificados com o módulo de operações e o nome comum da AC que contém um espaço.
Você verá um erro com a seguinte mensagem: Não é possível localizar um arquivo chamado Root no diretório de trabalho, certreq.exe falhou imediatamente com Windows 0x80070002 de Código de Erro (ERROR_FILE_NOT_FOUND).
Mitigação:
- Abra um caso de suporte no portal do Azure para obter uma correção.
Problemas conhecidos para a versão 2606
AKS em estado de falha após a atualização
Aplica-se a: AKS no Azure Local (versão prévia) 2606 ou versões anteriores.
Algumas condições raras durante a atualização podem fazer com que o cluster do AKS fique indisponível e não consiga se comunicar com o plano de controle.
Mitigação:
- Atualize as operações desconectadas do Azure Local para 2609 e recrie o cluster do AKS para suporte ao AKS GA.
- Ou: abra um tíquete de suporte para etapas de mitigação para versões prévias.
Problemas conhecidos para a versão 2605
Falha na aplicação de patches e na atualização de clusters de carga de trabalho
Aplica-se a: Primeira correção e atualização do Azure Local para um cluster de dados.
Observação
Essa correção é uma correção única. Depois que o volume InfraLocal_1 for criado, o mesmo cluster não exigirá essas etapas para atualizações Azure Local subsequentes.
Mitigação:
- Faça logon em qualquer nó de cluster do Azure Local com privilégios administrativos.
- Execute o seguinte comando do PowerShell para criar o volume InfraLocal_1:
New-Volume -FriendlyName "InfraLocal_1" -Size 10GB -ProvisioningType Thin
- Verifique se o comando foi concluído com êxito sem erros.
- Prossiga com o patch Azure Local e atualize.
Certificado de assinatura ausente em ambientes isolados da rede
A implantação na nuvem não é bem-sucedida em ambientes isolados da rede na versão 2605 das operações desconectadas do Azure Local, a menos que você siga as etapas a seguir:
- Em um computador com conectividade com a Internet, baixe o certificado PCA 2011 de Assinatura de Código do Microsoft.
- Copie o arquivo de certificado baixado (MicCodSigPCA2011_2011-07-08.crt) em cada nó do Azure Local.
- Em cada nó, abra uma sessão do PowerShell com privilégios elevados e execute:
Import-Certificate -FilePath "<CertPath>\MicCodSigPCA2011_2011-07-08.crt" -CertStoreLocation "Cert:\LocalMachine\CA"
Atualizar pacote para 2605
Há um problema conhecido com o protetor de chave do BitLocker nesta versão e somente o pacote de implantação base está disponível. O pacote de atualização 2605 é fornecido separadamente da versão de implantação. As notas de versão do pacote de atualização são adicionadas aqui quando a atualização está disponível.
As credenciais de compartilhamento podem ser expostas em logs de observabilidade durante a coleta de logs indiretos
Quando você realiza a coleta indireta de logs ao executar o cmdlet Invoke-AzureLocalDisconnectedLogCollection e inclui a função Observability entre as funções que coleta, o componente de observabilidade no dispositivo de operações desconectadas do Azure Local captura o caminho do compartilhamento SMB, o nome de usuário e a senha que você fornece aos parâmetros -SaveToPath e -ShareCredential. Se mais tarde você coletar esses logs de observabilidade e enviá-los à Microsoft como parte de uma submissão de dados de diagnóstico, as credenciais do compartilhamento serão enviadas junto com eles.
Se você não especificar o -CloudManagementFilterByRoles parâmetro, coletará todas as funções de gerenciamento de nuvem por padrão, incluindo Observability. A única maneira de excluir logs de observabilidade é passar uma lista explícita de funções para -CloudManagementFilterByRoles que omita as funções de observabilidade.
Mitigação:
Quando você executar Invoke-AzureLocalDisconnectedLogCollection, defina -CloudManagementFilterByRoles explicitamente como uma lista de funções que omite a função de observabilidade. Não confie no comportamento padrão, pois o padrão coleta todas as funções, incluindo a observabilidade. Por exemplo:
$nodeCred = Get-Credential -Message "Enter Azure Local node credentials"
# Supported roles: Agents, ArcControlPlane, ArcADiagnostics, Containers, CosmosDB, MASLogs, Messaging, Observability, Oplets, ServiceFabric, Storage, WindowsEventLogs
# The Observability role can leak credentials. Don't include it in CloudManagementFilterByRoles.
Invoke-AzureLocalDisconnectedLogCollection -FromDate (Get-Date).AddHours(-6) `
-ToDate (Get-Date) `
-AzureLocalNodeNames @("ALNode01", "ALNode02", "ALNode03", "ALNode04") `
-AzureLocalNodeCredential $nodeCred `
-SaveToPath "\\fileserver\share\FilteredLogs" `
-ShareCredential (Get-Credential) `
-CloudManagementEndpoint "192.168.1.100" `
-CloudManagementClientCertificatePath "C:\ManagementCert.pfx" `
-CloudManagementClientCertificatePassword $pfxPassword `
-AzureLocalFilterByRoles @("BareMetal", "ECE") `
-CloudManagementFilterByRoles @("Agents", "ArcControlPlane", "ArcADiagnostics", "Containers", "CosmosDB", "MASLogs", "Messaging", "Oplets", "WindowsEventLogs") `
-ForceRefreshCloudManagementPsModule
Problemas conhecidos para a versão 2604
Falha na implantação do AKS Arc por meio do portal Azure e do CLI do Azure
A implantação falha com o seguinte erro: invalid transformation contained in extension package.
Mitigação: Reimplante a versão mais recente ou entre em contato com o Suporte da Microsoft para obter instruções específicas para a compilação 2604.
Falha na implantação na nuvem do cluster de nós de trabalho do Azure Local ao implantar componentes de infraestrutura do Arc
Os clusters de cargas de trabalho em ambientes isolados da internet falham ao ser implantados em casos raros.
Mensagem de erro: a implantação em nuvem do cluster de trabalho do Azure Local falhou com "Falha do New-ArcHciApplianceConfigs com o erro MOC Role StorageContainerContributor está indisponível
Mitigação:
Conecte-se ao primeiro nó do cluster Azure Local.
Abra uma sessão do PowerShell com privilégios elevados (Executar como Administrador).
Crie a função StorageContainerContributor executando o seguinte comando:
New-MocRole -Name StorageContainerContributor ` -actionProviders "StorageContainer" ` -actionOperations "all"Retome a implantação usando o mesmo método com o qual você começou (por exemplo, por meio do portal ou da implantação de modelo do ARM).
Problemas conhecidos para as versões 2602 e 2603
A atualização da versão 2602 para a 2604 falha em ambientes isolados da rede
Sintoma: a atualização da compilação 2602 em um ambiente isolado da rede falha durante o upload do pacote com um erro semelhante a
ErrorReports : {Update Download: Update package 'arca.update.package.2603.1.25553.zip' did not pass validation. Below is the summary of the validation error(s) encountered:
- ManifestSignatureInvalid: File signature on Manifest.xml is invalid or it is not signed. The package may be tampered with or corrupted.
}
Esse erro ocorre porque o pacote de atualização é assinado com um certificado diferente do disponível no build 2602.
- Baixe o zip a seguir e copie-o para o nó de semente.
- Modifique e execute este script:
Mitigação:
# Using the operations module:
$targetFolder = 'C:\ALDO\2602'
$targetFile = Join-Path $targetFolder "2602-update.zip"
(New-Item -ItemType Directory $targetFolder -force)|Out-null
Expand-Archive $targetFile -destinationPath $targetFolder
Import-Module "$applianceConfigBasePath\OperationsModule\Azure.Local.DisconnectedOperations.psd1" -Force
$managementEndpoint = "192.168.200.10"
$password = ConvertTo-SecureString 'RETRACTED' -AsPlainText -Force
$context = Set-DisconnectedOperationsClientContext -ManagementEndpointClientCertificatePath "${env:localappdata}\AzureLocalOpModuleDev\certs\ManagementEndpoint\ManagementEndpointClientAuth.pfx" -ManagementEndpointClientCertificatePassword $password -ManagementEndpointIpAddress $managementEndpoint
$recoveryKeys = (Get-ApplianceBitlockerRecoveryKeys).recoverykeyset
# Run the script (This takes the control plane VM down and reboots it)
& "$($targetFolder)\ImportCodeSignCertsOffline.ps1" -CertsFolder $targetFolder -BitLockerRecoveryKeys $recoveryKeys
Aguarde 10 minutos ou mais.
No mesmo contexto do PowerShell, execute:
Get-ApplianceUpdateHistoryO histórico de atualizações após a reinicialização da VM (máquina virtual) do dispositivo pode mostrar um erro como este:
Type : UpdatePreparation TargetVersion : 2603.1.25553 StartTime : 2026-04-25T04:31:41.627 EndTime : 2026-04-25T04:38:38.445 CompletionStatus : Failed FailedTasks : {Update Download} InProgressTasks : {} CompletedTasks : {} PendingTasks : {} ErrorReports : {}Se o erro A assinatura do arquivo em Manifest.xml é inválida não aparecer mais, o problema foi resolvido e você poderá continuar o processo de atualização.
Para continuar o processo de atualização, modifique e execute este comando:
$updateTargetVersion = "" Wait-AppliancePreUpdate -TargetVersion $updateTargetVersion Start-ApplianceUpdate -TargetVersion $updateTargetVersion -WaitO processo leva cerca de três horas para ser concluído.
Falha no Bootstrap ou implantação devido a certificados inválidos (exceção)
Se a CRL (Lista de Revogação de Certificados) estiver vazia ou configurada incorretamente, a validação de inicialização falhará.
Mensagem de erro: O Bootstrap relatou o erro: os serviços ALDO não iniciaram após 00:45:00, o que fez o registro do Arc falhar.
Mitigação:
Verifique se a Autoridade Certificadora está configurada corretamente e certifique-se de que seus certificados incluam um ponto de extremidade de CRL que os nós possam acessar.
Mitigação alternativa:
Se você não conseguir reconfigurar sua Autoridade de Certificação (Infraestrutura de Chave Pública Corporativa), poderá ignorar as verificações de CRL durante a inicialização. Execute as seguintes etapas em cada nó local do Azure:
Write-Host "Updating Windows MAE Config for the Bootsrap service"
$basePath = "C:\windows\system32\bootstrap"
Write-Host "Looking for config file under $basePath"
$contentDir = Get-ChildItem -Path $basePath -Filter "content_*" -Directory -ErrorAction SilentlyContinue | Sort-Object Name -Descending | Select-Object -First 1
if (-not $contentDir) {
Write-Warning "Could not find content_* directory under $basePath"
return
}
Write-Host "Found content directory: $($contentDir.FullName)"
$ConfigPath = Join-Path $contentDir.FullName "Microsoft.Azure.Edge.Bootstrap.ManagementService\windows.mae.config.json"
if (-not (Test-Path $ConfigPath)) {
Write-Warning "Config file $ConfigPath not found"
return
}
Write-Host "Config file found at $ConfigPath"
$configContent = Get-Content -Path $ConfigPath -Raw | ConvertFrom-Json
$configContent.ManagementSettings.CheckCertificateRevocationList = $false
Write-Host "Updated existing CheckCertificateRevocationList property to false"
Stop-Service -Name "BootstrapManagementService" -Force -ErrorAction Stop
Write-Host "BootstrapManagementService stopped successfully"
$configContent | ConvertTo-Json -Depth 10 | Set-Content -Path $ConfigPath -Force
Write-Host "Successfully saved modified config"
Write-Host "Starting BootstrapManagementService..."
Start-Service -Name "BootstrapManagementService"
Write-Host "Waiting 60 seconds for service to fully initialize..."
Start-Sleep -Seconds 60
Write-Host "Successfully started BootstrapManagementService"
Problemas no portal
Policy
Há um problema conhecido com a interface do portal Azure Policy nesta versão. Como solução alternativa, use o CLI do Azure ou Azure PowerShell.
Chaves SSH
Há um problema conhecido no portal de Azure que impede a criação de chaves SSH durante a criação de VMs linux ou clusters do AKS (Serviço de Kubernetes do Azure).
Mitigação:
Use ferramentas de linha de comando para gerar uma chave SSH e incluir a chave durante o processo de criação da VM ou do AKS.
Outras implantações de cluster falham – os certificados do Host Guardian não estão disponíveis
Quando você implanta mais Azure Local clusters depois de implantar com êxito o cluster de gerenciamento dedicado, as implantações falham.
Mitigação:
Copie os certificados a seguir do primeiro nó do cluster de gerenciamento e cole-os em todos os nós do Azure Local (clusters de carga de trabalho) em C:\Users\Administrator\AppData\Roaming\AzureLocal\.
Verifique se os seguintes arquivos estão presentes em cada nó Azure Local antes de implantar um novo cluster de carga de trabalho:
C:\Users\Administrator\AppData\Roaming\AzureLocal\AzsVmHostGuardian-IRVM01-encryption.pfxC:\Users\Administrator\AppData\Roaming\AzureLocal\AzsVmHostGuardian-IRVM01-signing.pfx
A implantação do plano de controle fica paralisada e atinge o tempo limite sem concluir
Em casos raros, as implantações podem expirar, e os serviços podem não alcançar 100% de convergência, mesmo após oito horas.
Mitigação:
Reimplantar o dispositivo de operações desconectado. Se o problema persistir após duas ou três reimplantações limpas, colete os logs e abra um tíquete de suporte.
A geração de certificados fica paralisada
O processo de geração de certificado poderá ser travado se você executá-lo por meio de uma sessão Área de Trabalho Remota, seja usando o módulo Operações ou uma abordagem baseada em script.
Mitigação:
Verifique se a sessão Área de Trabalho Remota não está mapeando cartões inteligentes. Se o mapeamento de cartão inteligente estiver habilitado, a execução dos scripts para gerar certificados poderá fazer o certreq travar.
Set-MgmtClusterDenyPolicy.ps1 script está ausente
Mitigação: gere o arquivo usando o seguinte script:
<#
.SYNOPSIS
Denies resource creation on a management cluster Custom Location via Azure Policy.
.DESCRIPTION
This script creates an Azure Policy definition with a deny effect targeting the management
cluster's Custom Location and assigns it at subscription scope. It uses Azure PowerShell cmdlets
to create both the policy definition and assignment.
The policy blocks any resource creation where the extendedLocation targets the specified
management cluster Custom Location. Due to the single-CL-per-subscription design constraint,
the policy definition and assignment use hardcoded names. Re-running the script with a
different Custom Location ID will overwrite the previous assignment.
.PARAMETER SubscriptionId
The Azure subscription GUID where the policy definition and assignment will be created.
If omitted (and -AllSubscriptions is not set), the script runs against the current
Azure PowerShell subscription context.
.PARAMETER MgmtClusterCustomLocationId
The fully-qualified ARM resource ID of the management cluster Custom Location to deny
resource creation against.
.PARAMETER AllSubscriptions
When set, the script applies the deny policy to every enabled subscription the caller
has access to. If both -AllSubscriptions and -SubscriptionId are provided,
-AllSubscriptions takes precedence and -SubscriptionId is ignored.
.EXAMPLE
.\Set-MgmtClusterDenyPolicy.ps1 `
-SubscriptionId "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e" `
-MgmtClusterCustomLocationId "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-rg/providers/Microsoft.ExtendedLocation/customLocations/my-custom-location"
.EXAMPLE
.\Set-MgmtClusterDenyPolicy.ps1 `
-AllSubscriptions `
-MgmtClusterCustomLocationId "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-rg/providers/Microsoft.ExtendedLocation/customLocations/my-custom-location"
.NOTES
Rollback commands:
Remove-AzPolicyAssignment -Name 'deny-resource-creation-on-mgmt-cluster-assignment' -Scope '/subscriptions/{subId}'
Remove-AzPolicyDefinition -Name 'deny-resource-creation-on-mgmt-cluster' -SubscriptionId '{subId}' -Force
Requires active Azure PowerShell session (Connect-AzAccount) and Resource Policy Contributor role.
#>
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[ValidatePattern('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$')]
[string]$SubscriptionId,
[Parameter(Mandatory = $true)]
[ValidatePattern('^/subscriptions/[0-9a-fA-F-]+/resourceGroups/[^/]+/providers/Microsoft\.ExtendedLocation/customLocations/[^/]+$')]
[string]$MgmtClusterCustomLocationId,
[Parameter(Mandatory = $false)]
[switch]$AllSubscriptions
)
# Validate required Az modules
$modAccounts = Get-Module -ListAvailable -Name Az.Accounts | Sort-Object Version -Descending | Select-Object -First 1
if (-not $modAccounts -or $modAccounts.Version -lt [version]'2.13.0') {
throw "Az.Accounts module >= 2.13.0 is required. Install via: Install-Module -Name Az.Accounts -MinimumVersion 2.13.0"
}
$modResources = Get-Module -ListAvailable -Name Az.Resources | Sort-Object Version -Descending | Select-Object -First 1
if (-not $modResources -or $modResources.Version -lt [version]'6.12.0') {
throw "Az.Resources module >= 6.12.0 is required. Install via: Install-Module -Name Az.Resources -MinimumVersion 6.12.0"
}
# Check authentication
$azContext = Get-AzContext
if (-not $azContext) {
throw "Not connected to Azure. Run 'Connect-AzAccount' first."
}
# ---------------------------------------------------------------------------
# Determine subscription list
# ---------------------------------------------------------------------------
$subscriptions = @()
if ($AllSubscriptions) {
if (-not [string]::IsNullOrEmpty($SubscriptionId)) {
Write-Warning "Both -AllSubscriptions and -SubscriptionId were provided. -AllSubscriptions takes precedence; -SubscriptionId will be ignored."
}
Write-Host "Retrieving all enabled subscriptions..."
try {
$subs = Get-AzSubscription -ErrorAction Stop | Where-Object { $_.State -eq 'Enabled' }
} catch {
throw "Failed to retrieve subscription list. $($_.Exception.Message)"
}
$subscriptions = @($subs)
if ($subscriptions.Count -eq 0) {
throw "No enabled subscriptions found for the current account."
}
Write-Host "Found $($subscriptions.Count) enabled subscription(s)." -ForegroundColor Cyan
} elseif ([string]::IsNullOrEmpty($SubscriptionId)) {
# No SubscriptionId provided — resolve from current Azure PowerShell context
$currentCtx = Get-AzContext
if (-not $currentCtx -or [string]::IsNullOrEmpty($currentCtx.Subscription.Id)) {
throw "Failed to determine the current subscription context. Provide -SubscriptionId or run 'Set-AzContext' first."
}
Write-Host "No SubscriptionId provided. Using current subscription context: $($currentCtx.Subscription.Name) ($($currentCtx.Subscription.Id))"
$subscriptions = @([PSCustomObject]@{ Id = $currentCtx.Subscription.Id; Name = $currentCtx.Subscription.Name })
} else {
$subscriptions = @([PSCustomObject]@{ Id = $SubscriptionId; Name = $SubscriptionId })
}
# ---------------------------------------------------------------------------
# Prepare policy JSON definitions (inline)
# ---------------------------------------------------------------------------
$policyRuleJson = @'
{
"if": {
"allOf": [
{
"field": "extendedLocation.name",
"equals": "[parameters('customLocationId')]"
},
{
"field": "extendedLocation.type",
"equals": "CustomLocation"
}
]
},
"then": {
"effect": "deny"
}
}
'@
$policyParamJson = @'
{
"customLocationId": {
"type": "String",
"metadata": {
"displayName": "Custom Location Resource ID",
"description": "The full ARM resource ID of the Custom Location to deny resource creation against (e.g., /subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.ExtendedLocation/customLocations/{name})"
}
}
}
'@
# ---------------------------------------------------------------------------
# Process each subscription
# ---------------------------------------------------------------------------
$results = @()
$failures = @()
foreach ($sub in $subscriptions) {
$currentSubId = $sub.Id
$currentSubName = $sub.Name
Write-Host "`n===== Processing subscription: $currentSubName ($currentSubId) =====" -ForegroundColor Cyan
# --- Set subscription context ---
try {
Set-AzContext -SubscriptionId $currentSubId -ErrorAction Stop | Out-Null
} catch {
$msg = "Failed to set subscription context to '$currentSubId'. $($_.Exception.Message)"
Write-Error $msg
$failures += [PSCustomObject]@{ SubscriptionId = $currentSubId; SubscriptionName = $currentSubName; Error = $msg }
if (-not $AllSubscriptions) { throw $msg }
continue
}
# --- Create policy definition ---
Write-Host " Creating policy definition 'deny-resource-creation-on-mgmt-cluster'..."
try {
$definition = New-AzPolicyDefinition `
-Name 'deny-resource-creation-on-mgmt-cluster' `
-DisplayName 'Deny resource creation on management cluster Custom Location' `
-Description 'Blocks resource creation when extendedLocation targets the management cluster Custom Location' `
-Policy $policyRuleJson `
-Parameter $policyParamJson `
-Mode 'All' `
-Metadata '{"category":"Management Cluster"}' `
-SubscriptionId $currentSubId `
-ErrorAction Stop
} catch {
$msg = "Failed to create policy definition in subscription '$currentSubId'. $($_.Exception.Message)"
Write-Error $msg
$failures += [PSCustomObject]@{ SubscriptionId = $currentSubId; SubscriptionName = $currentSubName; Error = $msg }
if (-not $AllSubscriptions) { throw $msg }
continue
}
if ($null -eq $definition -or [string]::IsNullOrEmpty($definition.Id)) {
$msg = "Policy definition was created in subscription '$currentSubId' but returned unexpected output."
Write-Error $msg
$failures += [PSCustomObject]@{ SubscriptionId = $currentSubId; SubscriptionName = $currentSubName; Error = $msg }
if (-not $AllSubscriptions) { throw $msg }
continue
}
# --- Create policy assignment ---
$scope = "/subscriptions/$currentSubId"
Write-Host " Creating policy assignment 'deny-resource-creation-on-mgmt-cluster-assignment'..."
try {
$assignment = New-AzPolicyAssignment `
-Name 'deny-resource-creation-on-mgmt-cluster-assignment' `
-DisplayName 'Deny resource creation on management cluster Custom Location' `
-PolicyDefinition $definition `
-Scope $scope `
-PolicyParameterObject @{ customLocationId = $MgmtClusterCustomLocationId } `
-EnforcementMode 'Default' `
-ErrorAction Stop
} catch {
$msg = "Failed to create policy assignment in subscription '$currentSubId'. $($_.Exception.Message)"
Write-Error $msg
$failures += [PSCustomObject]@{ SubscriptionId = $currentSubId; SubscriptionName = $currentSubName; Error = $msg }
if (-not $AllSubscriptions) { throw $msg }
continue
}
if ($null -eq $assignment) {
$msg = "Policy assignment was created in subscription '$currentSubId' but returned unexpected output."
Write-Error $msg
$failures += [PSCustomObject]@{ SubscriptionId = $currentSubId; SubscriptionName = $currentSubName; Error = $msg }
if (-not $AllSubscriptions) { throw $msg }
continue
}
Write-Host " Policy successfully created and assigned." -ForegroundColor Green
$results += [PSCustomObject]@{
SubscriptionName = $currentSubName
SubscriptionId = $currentSubId
DefinitionName = $definition.Name
DefinitionId = $definition.PolicyDefinitionId
AssignmentName = $assignment.Name
AssignmentId = $assignment.PolicyAssignmentId
Scope = $scope
MgmtClusterCustomLocationId = $MgmtClusterCustomLocationId
}
}
# ---------------------------------------------------------------------------
# Summary
# ---------------------------------------------------------------------------
Write-Host "`n===== Summary =====" -ForegroundColor Cyan
Write-Host " Succeeded: $($results.Count) subscription(s)" -ForegroundColor Green
if ($failures.Count -gt 0) {
Write-Host " Failed: $($failures.Count) subscription(s)" -ForegroundColor Red
foreach ($f in $failures) {
Write-Host " - $($f.SubscriptionName) ($($f.SubscriptionId))" -ForegroundColor Red
}
}
if ($results.Count -gt 0) {
Write-Output $results
}
if ($failures.Count -gt 0 -and $results.Count -eq 0) {
throw "All subscriptions failed. See errors above."
}
Erro de SSL/TLS ao usar o endpoint de gerenciamento (OperationsModule)
Quando você usa um cmdlet que usa o endpoint de gerenciamento (por exemplo, Get-ApplianceHealthState), você recebe o erro "gerou uma exceção: a solicitação foi cancelada: não foi possível criar um canal seguro SSL/TLS... Tentando novamente."
Mitigação:
Para 2511, não use Set-DisconnectedOperationsClientContext. Em vez disso, use $context = New-DisconnectedOperationsClientContext e passe o $context aos respectivos cmdlets.
Falha na inicialização do arc no nó (Invoke-AzStackHCIArcInitialization) nas imagens fornecidas pelo Fabricante de Equipamento Original (OEM)
Se você estiver executando uma imagem OEM, verifique se está na linha de base correta do sistema operacional.
Siga estas etapas:
Verifique se você está na mesma versão com suporte ou em uma versão anterior (por exemplo, 2508 ou anterior).
Desabilite a atualização de dia zero em cada nó.
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\EdgeArcBootstrapSetup" -Name "MicrosoftOSImage" -Value 1Atualize para a ISO fornecida pela Microsoft para o alvo da versão de operações desconectadas. Escolha atualizar e manter as configurações ao reimaginar os nós usando essa abordagem.
Como alternativa, execute o seguinte comando para obter a atualização correta:
# Define the solution version and local package path - review the correct versions. # Only do this if your OEM image is on a earlier version than the target version. $TargetSolutionVersion = "12.2511.1002.5" $localPlatformVersion = "12.2511.0.3038" $DownloadUpdateZipUrl = "https://azurestackreleases.download.prss.microsoft.com/dbazure/AzureLocal/WindowsPlatform/$($localPlatformVersion)/Platform.$($localPlatformVersion).zip" $LocalPlatformPackagePath = "C:\Platform.$($localPlatformVersion).zip" # Download the DownloadUpdateZipUrl to LocalPlatformPackagePath (Alternative do this from browser and copy file over if you cannot run this on your nodes/disconnected scenarios) Invoke-WebRequest $DownloadUpdateZipUrl -Outfile $LocalPlatformPackagePath $updateConfig = @{ "TargetSolutionVersion" = $TargetSolutionVersion "LocalPlatformPackagePath" = $LocalPlatformPackagePath } $configHash = @{ "UpdateConfiguration" = $updateConfig } # Trigger zero-day update $tempConfigPath = "C:\temp.json" $configHash | ConvertTo-Json -Depth 3 | Out-File $tempConfigPath -Force Start-ArcBootstrap -ConfigFilePath $tempConfigPath # Continue with Invoke-AzStackHCIArcInitialization.
Examine a tabela de compatibilidade de versão .
Falha na validação de implantação de nuvem durante a experiência do portal
A validação da SBE (extensão do Construtor de Soluções) falha quando tenta acessar um link aka.ms para baixar.
Solução alternativa:
Execute o fluxo de implantação de nuvem (portal) até que a validação falhe na UX.
Baixe uma versão corrigida do ExtractOEMContent.ps1.
Baixe uma versão corrigida do EN-US\ExtractOEMContent.Strings.psd1.
Modifique o arquivo a seguir usando seu editor
ExtractOEMContent.ps1favorito.Substitua a linha 899 neste arquivo pelo seguinte snippet de código:
if (-not (Test-SBEXMLSignature -XmlPath $sbeDiscoveryManifestPath)) { throw ($localizedStrings.OEMManifestSignature -f $sbeDiscoveryManifestPath) } $packageHash = (Get-FileHash -Path $zipFile.FullName -Algorithm SHA256).Hash $manifestXML = New-Object -TypeName System.Xml.XmlDocument $manifestXML.PreserveWhitespace = $false $xmlTextReader = New-Object -TypeName System.Xml.XmlTextReader -ArgumentList $sbeDiscoveryManifestPath $manifestXML.Load($xmlTextReader) $xmlTextReader.Dispose() # Test that the zip file hash matches the package hash from the manifest $applicableUpdate = $manifestXML.SelectSingleNode("//ApplicableUpdate[UpdateInfo/PackageHash='$packageHash']") if ([System.String]::IsNullOrEmpty($applicableUpdate)) { throw "$($zipFile.FullName) hash of $packageHash does not match value in manifest at $sbeDiscoveryManifestPath" } $result = [PSCustomObject]@{ Code = "Latest" Message = "Override for ALDO" Endpoint = "https://aka.ms/AzureStackSBEUpdate/Dell" ApplicableUpdate = $applicableUpdate.OuterXml }Copie o arquivo recém-modificado para
C:\CloudDeployment\Setup\Common\ExtractOEMContent.ps1na primeira máquina.Copie o arquivo baixado e não modificado no
C:\CloudDeployment\Setup\Common\En-US\ExtractOEMContent.Strings.psd1primeiro computador.Retomar a implantação na nuvem.
A implantação na nuvem (validação ou implantação) fica paralisada
Durante o fluxo de validação ou implantação de nuvem, o primeiro computador (nó de semente) é reiniciado, o que faz o aparelho do plano de controle ser reiniciado. Às vezes, esse processo leva mais tempo do que o esperado, fazendo com que o HIMDS (Serviço de Metadados de Instância Híbrida) pare porque ele não pode se conectar ao ponto de extremidade HIS. Esse problema pode fazer com que o fluxo de implantação pare de responder.
Mitigação:
Verifique se o serviço HIMDS foi interrompido.
Get-Service HIMDSSe o serviço for interrompido, inicie-o.
Start-Service HIMDSVerifique os logs no primeiro nó em
C:\CloudDeployment\Logs.Examine o arquivo de log apropriado:
- Estágio de validação: verifique o arquivo mais recente com um nome começando com EnvironmentValidator.
- Estágio de implantação: verifique o arquivo mais recente com um nome começando com CloudDeployment.
- Se o status no arquivo for diferente do que aparece no portal, siga as próximas etapas para ressincronizar o status da implantação com o portal.
O status da implantação está fora de sincronização de cluster para portal
O portal mostra que a implantação de nuvem está em andamento mesmo que esteja concluída ou a implantação está demorando mais do que o esperado. Esse problema ocorre porque o status da implantação na nuvem não está sincronizado com o status real.
Se o portal e o arquivo de log estiverem fora de sincronia, reinicie o serviço Controlador LCM para restabelecer a conexão com o relay executando Restart-Service LCMController.
Mitigação na primeira máquina:
Encontre os seguintes arquivos:
- Para o estágio Validar:
C:\ECEStore\efb61d70-47ed-8f44-5d63-bed6adc0fb0f\559dd25c-9d86-dc72-4bea-b9f364d103f8 - Para o estágio Implantar:
C:\ECEStore\efb61d70-47ed-8f44-5d63-bed6adc0fb0f\086a22e3-ef1a-7b3a-dc9d-f407953b0f84
- Para o estágio Validar:
Atualize o atributo EndTimeUtc localizado na primeira linha do arquivo para uma hora futura com base na hora atual do computador. Por exemplo, <Action Type="CloudDeployment" StartTimeUtc="2025-04-09T08:01:51.9513768Z" Status="Success" EndTimeUtc="2025-04-10T23:30:45.9821393Z">.
Salve o arquivo e feche-o.
O LCM envia a notificação para o Provedor de Recursos (RP) da Infraestrutura Hiperconvergente (HCI) em 5 a 10 minutos.
Para exibir logs do Controlador LCM, use o seguinte comando:
Get-WinEvent -LogName "Microsoft.AzureStack.LCMController.EventSource/Admin" -MaxEvents 100 | Where-Object {$_.Message -like "*from edge common logger*"} | Select-Object TimeCreated, Message
Observação
Esse processo funcionará se o RP do HCI não falhar no status de implantação devido a um tempo limite (aproximadamente 48 horas após o início da implantação na nuvem).
Falha ao implantar o dispositivo de operações desconectadas (falha de Appliance.Operations)
Alguns caracteres especiais na senha de certificado TLS de gerenciamento, senha de certificados externos ou segredos de configuração de observabilidade do OperationsModule podem fazer a implantação falhar com uma saída de erro: operação Appliance.Operations [opções]
Mitigação:
Não use caracteres especiais, como aspas simples ou duplas nas senhas.
Recursos desaparecem do portal
Quando você entra no portal com a mesma conta de usuário que funcionou antes, os recursos estão ausentes e não aparecem.
Mitigação: inicie o navegador no modo anônimo ou feche o navegador e limpe todos os cookies. Em seguida, volte para o portal local e entre novamente. Como alternativa, reinicie o IRVM01 no nó de semente e aguarde até que os serviços estejam online novamente e íntegros.
Consumo de memória quando há menos de 128 GB de memória por nó
O dispositivo de operações desconectado usa 78 GB de memória. Se o nó tiver menos de 128 GB de memória, conclua estas etapas após implantar o aplicativo, mas antes de implantar as instâncias do Azure Local.
Mitigação:
- Desligue o IRVM01VM no nó de semente.
- Altere a configuração de memória da máquina virtual IRVM01 para 64 GB.
- Inicie o dispositivo IRVM01.
- Aguarde a convergência. Monitore
Get-ApplianceHealthStateaté que todos os serviços converjam. - Implante instâncias locais do Azure.
Falha na implantação
Em ambientes virtuais, as implantações podem expirar, e os serviços podem não atingir 100% de convergência, mesmo após oito horas.
Mitigação:
Reimplante o dispositivo de operações desconectado algumas vezes. Se você estiver usando um ambiente físico e o problema continuar, colete logs e abra um tíquete de suporte.
implantação Azure Local com Azure Key Vault
as permissões de Role-Based Controle de Acesso (RBAC) em um Azure Key Vault recém-criado podem levar até 20 minutos para se propagarem. Se você criar o Key Vault no portal local e tentar concluir rapidamente a implantação de nuvem, poderá encontrar problemas de permissão durante a validação do cluster.
Mitigação:
Aguarde 20 minutos depois de criar o Azure Key Vault para concluir a implantação do cluster ou crie o Key Vault antecipadamente.
Se você criar o Key Vault antecipadamente, atribua:
- Identidade gerenciada para cada nó
- O administrador do Key Vault
- O usuário implantando na nuvem atribui funções explícitas ao Key Vault:
- Agente de Segredos do Key Vault e Administrador de Acesso a Dados do Key Vault.
Aqui está um exemplo de script. Modifique e use esse script para criar o Key Vault antecipadamente:
param($resourceGroupName = "aldo-disconnected", $keyVaultName = "aldo-kv", $subscriptionName = "Starter Subscription")
$location = "autonomous"
Write-Verbose "Sign in interactive with the user who does cloud deployment"
# Sign in to Azure CLI (use the user you run the portal deployment flow with)"
az login
az account set --subscription $subscriptionName
$accountInfo = (az account show)|convertfrom-json
# Create the Resource Group
$rg = (az group create --name $resourceGroupName --location $location)|Convertfrom-json
# Create a Key Vault
$kv = (az keyvault create --name $keyVaultName --resource-group $resourceGroupName --location $location --enable-rbac-authorization $true)|Convertfrom-json
Write-Verbose "Assigning permissions to $($accountInfo.user.name) on the Key Vault"
# Assign the secrets officer role to the resource group (you can use KV explicit).
az role assignment create --assignee $accountInfo.user.name --role "Key Vault Secrets Officer" --scope $kv.Id
az role assignment create --assignee $accountInfo.user.name --role "Key Vault Data Access Administrator" --scope $kv.Id
$machines = (az connectedmachine list -g $resourceGroupName)|ConvertFrom-Json
# For now, a minimum of 3 machines for Azure Local disconnected operations are supported.
if($machines.Count -lt 3){
Write-Error "No machines found in the resource group $resourceGroupName. Please check the resource group and try again. Please use the same resource group as where your Azure Local nodes are"
return 1
}
Write-Verbose "Assigning permissions to MSIs $($machines.count) on the Key Vault"
$apps =(az ad sp list)|ConvertFrom-Json
$managedIds=$machines.displayname | foreach-object {
$name = $_
$apps|Where-Object {$_.ServicePrincipalType -eq 'ManagedIdentity' -and $_.displayname -match $name}
}
# Assign role to each of the managed IDs (Arc-VMs) in the RG
$managedIds|foreach-object {
az role assignment create --role "Key Vault Administrator" --assignee $_.Id --scope $kv.id
}
Write-Verbose "Wait 20 min before running cloud deployment from portal"
VMs locais do Azure
Azure Resource Graph erro ao adicionar ou editar tags
Após iniciar, reiniciar ou parar uma VM do Azure Local, os botões de ação de energia ficam desabilitados e o status não é atualizado corretamente.
Mitigação:
Use a CLI (Interface Azure Command-Line) para adicionar ou editar marcas para o recurso.
Iniciar, reiniciar ou excluir botões desabilitados após parar a VM
Depois de parar uma VM Azure Local, os botões iniciar, reiniciar e excluir no portal Azure serão desabilitados.
Mitigação:
Atualize o navegador e a página.
Excluir um recurso de VM
Ao excluir uma VM do portal, talvez você veja estas mensagens: Falha ao excluir recurso associado e Falha ao excluir o recurso associado 'name' do tipo 'Adaptador de rede'.
Mitigação:
Depois de excluir a VM, use a CLI para excluir o adaptador de rede associado. Execute este comando:
az stack-hci-vm network nic delete
AKS (Serviço de Kubernetes do Azure) no Azure Local
A implantação do AKS falha em cenários totalmente isolados
As implantações do AKS falham em ambientes totalmente isolados. Nenhuma mitigação está disponível para esse problema nas versões atuais.
Usar uma chave pública existente ao criar um cluster do AKS
Nesta versão, você só pode usar uma chave pública existente ao criar um cluster do AKS.
Mitigação:
Para criar uma chave SSH, use a seguinte ferramenta de linha de comando e cole a chave pública na interface do usuário:
ssh-keygen -t rsa
(cat ~\.ssh\id_rsa.pub)|set-clipboard
Atualizar ou dimensionar um pool de nós a partir do portal está desabilitado
A atualização ou o dimensionamento de um pool de nós do portal não tem suporte nesta versão prévia.
Mitigação:
Use a CLI para atualizar ou dimensionar um pool de nós.
az aksarc nodepool update
az aksarc nodepool scale
Limitação de escala
No envelope de escala atual de operações desconectadas do Azure Local, a execução de mais de 20 clusters de carga de trabalho pode afetar a estabilidade do plano de controle. Sob carga sustentada, o plano de controle de operações desconectado pode se tornar menos responsivo ao longo do tempo, o que pode afetar a capacidade de gerenciamento e a confiabilidade em contagens de cluster mais altas.
Mitigação:
Até que o intervalo de escala com suporte seja expandido, limite o número de clusters de carga de trabalho para 20 ou menos para manter operações desconectadas estáveis e confiáveis.
Lista de clusters do Kubernetes vazia no Azure Local (clusters do Kubernetes)
Ao navegar até Azure Local e clicar em clustersKubernetes, você poderá ver uma lista vazia de clusters.
Mitigação:
Vá para Kubernetes>Azure Arc no menu à esquerda ou use a barra de pesquisa. Seus clusters devem aparecer na lista.
Salvar a notificação de serviço do Kubernetes paralisada
Depois de atualizar para uma versão mais recente do Kubernetes, você poderá ver uma notificação travada que diz: Save Kubernetes service
Mitigação:
Vá para a página Exibição do Cluster e atualize-a. Verifique se o estado mostra a atualização ou a conclusão. Se a atualização for concluída com êxito, você poderá ignorar a notificação.
O log de atividades mostra o problema de autenticação
Ignore o aviso do portal nesta versão.
Falha na autenticação do Microsoft Entra com o RBAC do Kubernetes
Ao tentar criar um cluster do Kubernetes com a autenticação entra, você encontra um erro.
Somente contas locais com RBAC do Kubernetes têm suporte nesta versão prévia.
extensões de Azure Arc
Quando você vai para extensões em um cluster do AKS, o botão Adicionar é desabilitado e nenhuma extensão é exibida.
não há suporte para extensões Azure Arc nesta versão prévia.
Recurso do AKS é exibido no portal após a exclusão
Depois de excluir um cluster do AKS do portal, o recurso continua sendo exibido.
Mitigação:
Use a CLI para excluir e limpar o cluster. Execute este comando:
az aksarc delete
Reiniciar um nó ou a VM do painel de controle
Depois de reiniciar um nó ou a VM do painel de controle, o sistema pode levar até uma hora para ficar totalmente pronto. Se você observar problemas com o portal local, recursos ausentes ou implantações com falha, verifique a integridade do dispositivo usando o OperationsModule para confirmar se todos os serviços estão totalmente convergidos.
Assinaturas
Operador cria assinatura
Depois de criar uma nova assinatura como um operador, a assinatura aparecerá na lista como não clicável e não exibirá nenhum acesso para o proprietário.
Mitigação:
Atualize a janela do navegador.
Exibição de assinaturas do operador (tempo limite)
Se você estiver conectado como um operador, poderá ver uma tela de tempo limite e não conseguir exibir, listar ou criar assinaturas.
Causa:
Esse problema ocorre quando um proprietário de assinatura é excluído ou não é sincronizado do sistema de identidade de origem para o plano de controle local. Quando você tenta exibir assinaturas, o processo falha porque a identidade do proprietário não está disponível.
Mitigação:
Se o portal não funcionar, use CLI do Azure ou API REST para criar e listar assinaturas. Para atribuir um proprietário diferente, use a API REST e insira o subscriptionOwnerId parâmetro ao criar a assinatura.
CLI do Azure
Gerenciar nuvens
Se você usar letras maiúsculas no nome da nuvem ao usar os az cloud comandos, como az cloud register, az cloud showou az cloud set, poderá encontrar problemas.
Mitigação:
Use apenas letras minúsculas para nomes de nuvem em az cloud subcomandos, como register, showou set.
Criar assinaturas
CLI do Azure não dá suporte ao fornecimento de subscriptionOwnerId para novas assinaturas. Essa limitação significa que o operador é o proprietário padrão de assinaturas recém-criadas sem uma maneira de alterar o proprietário.
Mitigação:
Use az rest para criar assinaturas com um proprietário diferente se precisar automatizar o processo com um proprietário diferente.
portal do Azure
Falha no logout
Quando você seleciona o Signout, a solicitação não funciona.
Mitigação:
Feche o navegador e vá para a URL do portal.
Azure Resource Manager
Especificações de modelo
Especificações de template não são suportadas. Implantações que usam modelos ARM com especificações de modelo falham.
Cenários sem suporte
Os seguintes cenários não são compatíveis:
- VMs que não são do Azure Local
- clusters não-AKS
Se você testar esses cenários, os sistemas devem confiar em sua CA personalizada, e você precisará passar -custom-ca-cert ao habilitá-los no contexto do Arc.
Conteúdo relacionado
Esse recurso só está disponível no Azure Local 2602 ou posterior.