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 explica como implantar operações desconectadas para Azure Local em seu datacenter. Esta etapa é fundamental para implantar e operar Azure Local sem nenhuma conexão de rede de saída. Depois de implantar o cluster de gerenciamento (plano de controle), você implanta sua primeira instância de Azure Local.
Principais considerações
Ao implantar operações desconectadas e criar sua instância de gerenciamento, considere os seguintes pontos-chave:
- A configuração de rede e os nomes que você inserir no portal devem ser consistentes com a sua configuração e com os switches criados anteriormente.
- Não há suporte para implantações virtuais. Você deve ter computadores físicos.
- Se você precisar de VLAN no dispositivo do painel de controle, precisará configurá-lo usando Set-VMNetworkAdapterIsolation -ManagementOS.
- Você precisa de pelo menos três computadores para dar suporte a operações desconectadas. Você pode usar até 16 computadores para a instância de gerenciamento.
- A implantação do cluster Azure Local pode levar várias horas.
- O painel de controle local pode passar por períodos de tempo de inatividade durante as reinicializações e atualizações do nó.
- Durante a criação do cluster, o processo cria um volume de infraestrutura de 2-TB provisionado para operações desconectadas. Não adulterar nem excluir os volumes de infraestrutura criados durante o processo de implantação.
- Quando você cria a instância do Azure Local, o processo move o appliance de VM de operações desconectadas para o armazenamento do cluster e o converte em uma VM em cluster.
Pré-requisitos
| Requisitos | Detalhes |
|---|---|
| Equipamento | Planejar e entender o hardware |
| Identidade | Planejar e entender a identidade |
| Rede | Planejar e entender a rede |
| Infraestrutura de chaves públicas | Planejar e entender a PKI (infraestrutura de chave pública) |
| Preparar nós do Azure Local | Prepare Azure Local para operações desconectadas |
| Adquirir operações desconectadas | Adquirir operações desconectadas para o Azure Local |
Para obter mais informações, consulte Azure Local visão geral das operações desconectadas.
Para obter informações sobre problemas conhecidos com operações desconectadas para Azure Local, consulte Problemas conhecidos para operações desconectadas.
Lista de verificação para implantar operações desconectadas
Antes de implantar Azure Local com operações desconectadas, você precisará do seguinte:
- Plano de rede:
- Pool de IP, IP de entrada, FQDN (nome de domínio totalmente qualificado), DNS (sistema de nomes de domínio) e GW (gateway).
- Servidor DNS para resolver endereços IP em nomes FQDN.
- Credenciais locais para computadores Azure Local.
- Credenciais do Active Directory para implantação Azure Local.
- Requisitos de OU do Active Directory e de rede.
- Credenciais locais e credenciais do AD para atender à complexidade mínima da senha.
- Active Directory preparado para implantação local do Azure.
- Certificados para proteger pontos de extremidade de entrada (23 certificados) e a chave pública (raiz) usada para criar esses certificados.
- Certificados para proteger o endpoint de gerenciamento (dois certificados).
- Credenciais e parâmetros para integração com o provedor de identidade:
- Aplicativo do Active Directory Federation Services (ADFS), credenciais, detalhes do servidor e detalhes da cadeia de certificados usados na configuração de identidade.
- Arquivos de implantação de operações desconectadas (manifesto e dispositivo).
- A composição ISO Azure Local.
- Drivers de firmware/dispositivo do OEM.
Sequência de implantação
Implante o Azure Local com operações desconectadas em SKUs (unidades de manutenção de estoque de hardware) que não sejam de primeira linha. Para obter mais informações, consulte Azure Local Catalog.
Você implanta e configura Azure Local com operações desconectadas em várias etapas. A imagem a seguir mostra o percurso geral, incluindo pós-implantação.
Aqui está uma breve visão geral das ferramentas e processos que você usa durante a implantação. Você precisará de acesso aos nós locais do Azure (SO ou host) para as primeiras fases da implantação.
- Use as ferramentas e os processos existentes para instalar e configurar o sistema operacional. Você precisa de acesso de administrador nos nós locais do Azure.
- Execute o PowerShell e o módulo de Operações no primeiro computador (classificado pelo nome do nó, como
seed node). Você deve ter acesso de administrador local. - Use o portal de Azure local, Azure PowerShell ou CLI do Azure. Você não precisa de acesso ao nó físico, mas precisa do Controle de Acesso Baseado em Função do Azure (RBAC) com a função Proprietário.
- Use o portal de Azure local, Azure PowerShell ou CLI do Azure. Você não precisa de acesso ao nó físico, mas precisa do Azure RBAC com a função Operator.
Implantar operações desconectadas (plano de controle)
As operações desconectadas devem ser implantadas no primeiro computador (nó de semente). Certifique-se de concluir as etapas a seguir em cada nó do seu cluster de gerenciamento. Para obter mais informações, consulte Prepare computadores locais do Azure.
Para preparar o primeiro computador para o dispositivo de operações desconectado, siga estas etapas:
Modifique seu caminho para o local correto. Se você inicializou um disco de dados ou estiver usando um caminho diferente de C: modifique o
$applianceConfigBasePath.Veja um exemplo:
$applianceConfigBasePath = 'C:\AzureLocalDisconnectedOperations'Copie os arquivos de instalação de operações desconectadas (zip do dispositivo, vhdx e manifesto) para o primeiro computador. Salve esses arquivos na pasta base que você criou anteriormente.
Copy-Item \\fileserver\share\azurelocalfiles\* $applianceConfigBasePathVerifique se você tem esses arquivos na pasta base usando o seguinte comando:
- AzureLocal.DisconnectedOperations.zip
- AzureLocal.DisconnectedOperations.manifest
- ArcA_LocalData_A.vhdx
- ArcA_SharedData_A.vhdx
- OSAndDocker_A.vhdx
- ArcA_SharedData_ACSTable_A.vhdx
- ArcA_SharedData_ACSBlob_A.vhdx
- ThirdPartyNotices.txt
Get-ChildItem $applianceConfigBasePathExtraia o arquivo zip na mesma pasta:
Expand-Archive "$($applianceConfigBasePath)\AzureLocal.DisconnectedOperations.zip" -DestinationPath $applianceConfigBasePathVerifique se você tem esses arquivos usando o seguinte comando:
- OperationsModule (módulo do PowerShell para instalação)
- AzureLocal.DisconnectedOperations.manifest
- AzureLocal.DisconnectedOperations.zip
- manifest.xml
- IRVM.zip
- ArcA_LocalData_A.vhdx
- ArcA_SharedData_A.vhdx
- ArcA_SharedData_ACSBlob_A.vhdx
- ArcA_SharedData_ACSTable_A.vhdx
- OSAndDocker_A.vhdx
- Storage.json
Get-ChildItem $applianceConfigBasePathObservação
Neste ponto, remova o
AzureLocal.DisconnectedOperations.ziparquivo para economizar algum espaço.Copie o diretório raiz dos certificados. Salve esses arquivos na pasta base que você criou anteriormente.
$certsPath = "$($applianceConfigBasePath)\certs" Copy-Item \\fileserver\share\azurelocalcerts $certspath -recurseVerifique os certificados, a chave pública e o endpoint de gerenciamento. Você deve ter duas pastas:
ManagementEndpointsCertseIngressEndpointsCertspelo menos 24 certificados.Get-ChildItem $certsPath Get-ChildItem $certsPath -recurse -filter *.pfxImporte o módulo Operações. Execute o comando como administrador usando o PowerShell. Modifique o caminho para corresponder à estrutura da pasta.
Import-Module "$applianceConfigBasePath\OperationsModule\Azure.Local.DisconnectedOperations.psd1" -Force $mgmntCertFolderPath = "$certspath\ManagementEndpointsCerts" $ingressCertFolderPath = "$certspath\IngressEndpointsCerts"
Inicializar os parâmetros
Preencha os parâmetros necessários com base no planejamento de implantação. Modifique os exemplos para corresponder à sua configuração.
Preencha o objeto de configuração de rede de gerenciamento.
$CertPassword = "retracted"|ConvertTo-Securestring -AsPlainText -Force $ManagementIngressIpAddress = "192.168.50.100" $ManagementNICPrefixLength = 24 $mgmtNetworkConfigParams = @{ ManagementIpAddress = $ManagementIngressIpAddress ManagementIpv4PrefixLength = $ManagementNICPrefixLength TlsCertificatePath = "$mgmntCertFolderPath\ManagementEndpointSsl.pfx" TlsCertificatePassword = $CertPassword ClientCertificatePath = "$mgmntCertFolderPath\ManagementEndpointClientAuth.pfx" ClientCertificatePassword = $CertPassword } $managementNetworkConfiguration = New-ApplianceManagementNetworkConfiguration @mgmtNetworkConfigParamsObservação
A senha dos certificados deve estar no formato de cadeia de caracteres segura. Para obter certificados relativos ao ponto de extremidade de gerenciamento, consulte PKI para operações desconectadas.
Preencha o objeto de configuração de rede de ingresso.
$azureLocalDns = "192.168.200.150" $NodeGw = "192.168.200.1" $IngressIpAddress = "192.168.200.115" $NICPrefixLength= 24 $ingressNetworkConfigurationParams = @{ DnsServer = $azureLocalDns IngressNetworkGateway = $NodeGw IngressIpAddress = $IngressIpAddress IngressNetworkPrefixLength = $NICPrefixLength ExternalDomainSuffix = "autonomous.cloud.private" } $ingressNetworkConfiguration = New-ApplianceIngressNetworkConfiguration @ingressNetworkConfigurationParamsPara obter detalhes de configuração de rede, consulte Rede para operações desconectadas.
Preencha o objeto de configuração de identidade.
$oidcCertChain = Get-CertificateChainFromEndpoint -requestUri 'https://adfs.azurestack.local/adfs' # Omitted this step if you don't have LDAPS. $ldapsCertChain = Get-CertificateChainFromEndpoint -requestUri 'https://dc01.azurestack.local' # LDAPS default port (Non secure default = 3268) $ldapPort = 3269 $ldapPassword = 'RETRACTED'|ConvertTo-SecureString -AsPlainText -Force # Populate params with LDAPS enabled. $identityParams = @{ Authority = "https://adfs.azurestack.local/adfs" ClientId = "<ClientId>" RootOperatorUserPrincipalName = "operator@azurestack.local" LdapServer = "adfs.azurestack.local" LdapPort = $ldapPort LdapCredential = New-Object PSCredential -ArgumentList @("ldap", $ldapPassword) SyncGroupIdentifier = "<SynGroupIdentifier>" OidcCertChainInfo = $oidcCertChain LdapsCertChainInfo = $ldapsCertChain } $identityConfiguration = New-ApplianceExternalIdentityConfiguration @identityParamsObservação
-
LdapsCertChainInfoeOidcCertChainpode ser omitido completamente para fins de depuração ou demonstração. Para obter informações sobre como obter LdapsCertChainInfo e OidcCertChainInfo, consulte PKI para operações desconectadas.
Há um problema com a
Get-CertificateChainFromEndpointnão sendo exportada conforme o esperado. Utilize as etapas em Problemas conhecidos para operações desconectadas para Azure Local para mitigar esse problema.Para obter mais informações, consulte Identidade para operações desconectadas.
-
Preencha o objeto de configuração de certificados externos.
$ingressCertPassword = "retracted"|ConvertTo-Securestring -AsPlainText -Force $certsParams = @{ certificatesFolder = $ingressCertFolderPath certificatePassword = $ingressCertPassword } $CertificatesConfiguration = New-ApplianceCertificatesConfiguration @certsParamsPara obter mais informações, consulte PKI para operações desconectadas.
Instalar e configurar o dispositivo
Para instalar e configurar o dispositivo no primeiro computador, use o comando a seguir. Direcione o AzureLocalInstallationFile para um caminho que contenha o IRVM01.zip.
$networkIntentName = 'ManagementComputeStorage'
$TimeServers = "Your reliable NTP source"
$azureLocalInstallationFile = "$($applianceConfigBasePath)"
$applianceManifestJsonPath = Join-Path $applianceConfigBasePath AzureLocal.DisconnectedOperations.manifest.json
$installAzureLocalParams = @{
Path = $azureLocalInstallationFile
IngressNetworkConfiguration = $ingressNetworkConfiguration
ManagementNetworkConfiguration = $managementNetworkConfiguration
IngressSwitchName = "ConvergedSwitch($networkIntentName)"
ManagementSwitchName = "ConvergedSwitch($networkIntentName)"
ApplianceManifestFile = $applianceManifestJsonPath
IdentityConfiguration = $identityConfiguration
CertificatesConfiguration = $CertificatesConfiguration
ExternalTimeServers = $TimeServers
}
Install-Appliance @installAzureLocalParams -disconnectMachineDeploy -Verbose
# Note: If you're deploying the appliance with limited connectivity, you can omit the flag -disconnectMachineDeploy.
Observação
Instale o dispositivo no primeiro computador para garantir que Azure Local seja implantado corretamente. A instalação leva algumas horas e deve ser concluída com êxito antes que você siga em frente. Após a conclusão, você terá um plano de controle local em execução no datacenter.
Se a instalação falhar devido a configurações de rede, identidade ou observabilidade incorretas, atualize o objeto de configuração e execute o Install-appliance comando novamente.
Você também pode especificar a opção -clean para iniciar a instalação do zero. Essa opção redefine qualquer estado de instalação existente e começa desde o início
Configurar a observabilidade para diagnóstico e suporte
Recomendamos que você configure a observabilidade para obter logs gerados pelo sistema para sua primeira implantação. Isso não se aplica se você estiver planejando executar em um ambiente isolado, pois os logs e diagnósticos gerados pelo sistema exigem conectividade.
Os recursos de Azure necessários:
- Um grupo de recursos no Azure usado para o dispositivo.
- Um SPN (Nome da Entidade de Serviço) com direitos de colaborador no grupo de recursos.
Para configurar a observabilidade, siga estas etapas:
Em um computador com CLI do Azure (ou usando o Azure Cloud Shell no portal Azure) crie o SPN. Execute o seguinte script:
$resourcegroup = 'azure-disconnectedoperations' $appname = 'azlocalobsapp' az login $g = (az group create -n $resourcegroup -l eastus)|ConvertFrom-Json az ad sp create-for-rbac -n $appname --role Owner --scopes $g.id # Get the Subscription ID $j = (az account list | ConvertFrom-Json) | Where-object {$_.IsDefault} # SubscriptionID: $j.idVeja um exemplo de saída:
{ "appId": "<AppId>", "displayName": "azlocalobsapp", "password": "<RETRACTED>", "tenant": "<RETRACTED>" } <subscriptionID>Defina a configuração de observabilidade. Modifique para corresponder aos detalhes do ambiente:
$observabilityConfiguration = New-ApplianceObservabilityConfiguration -ResourceGroupName "azure-disconnectedoperations" ` -TenantId "<TenantID>" ` -Location "<Location>" ` -SubscriptionId "<SubscriptionId>" ` -ServicePrincipalId "<AppId>" ` -ServicePrincipalSecret ("<Password>" | ConvertTo-SecureString -AsPlainText -Force) Set-ApplianceObservabilityConfiguration -ObservabilityConfiguration $observabilityConfigurationVerifique se a observabilidade está configurada:
Get-ApplianceObservabilityConfiguration
Adicionar o ambiente de operações Azure Local desconectado aos nós
Para que os nós entendam seu ambiente de nuvem privada, você deve adicionar o ambiente local. Isso é necessário para inicializar os nós Azure Local mais tarde no plano de controle.
Em cada nó, execute o seguinte no PowerShell:
Add-AzLocalEnvironment -CloudFQDN "autonomous.cloud.private"
Observação
O padrão é usar directoryTenantId e os pontos de extremidade internos. Para obter mais informações, use Get-Help Add-AzLocalEnvironment
Para ambientes anteriores à versão 2603, use a abordagem legada Add-AzEnvironment abaixo.
# Legacy approach from prior to 2603 adding a private cloud environment
$applianceCloudName = "azure.local"
$applianceFQDN = "autonomous.cloud.private"
$AdminManagementEndPointUri = "https://armmanagement.$($applianceFQDN)/"
$DirectoryTenantId = "98b8267d-e97f-426e-8b3f-7956511fd63f"
#Retrieve disconnected operations endpoints
$armMetadataEndpoint = $AdminManagementEndPointUri.ToString().TrimEnd('/') + "/metadata/endpoints?api-version=2015-01-01"
$endpoints = Invoke-RestMethod -Method Get -Uri $armMetadataEndpoint -ErrorAction Stop
$azEnvironment = Add-AzEnvironment `
-Name $applianceCloudName `
-ActiveDirectoryEndpoint ($endpoints.authentication.loginEndpoint.TrimEnd('/') + "/") `
-ActiveDirectoryServiceEndpointResourceId $endpoints.authentication.audiences[0] `
-ResourceManagerEndpoint $AdminManagementEndPointUri.ToString() `
-GalleryEndpoint $endpoints.galleryEndpoint `
-MicrosoftGraphEndpointResourceId $endpoints.graphEndpoint `
-MicrosoftGraphUrl $endpoints.graphEndpoint `
-AdTenant $DirectoryTenantId `
-GraphEndpoint $endpoints.graphEndpoint `
-GraphAudience $endpoints.graphEndpoint `
-EnableAdfsAuthentication:($endpoints.authentication.loginEndpoint.TrimEnd("/").EndsWith("/adfs",[System.StringComparison]::OrdinalIgnoreCase))
# Verify that you can connect to the ARM endpoint (example showing device authentication)
Connect-AzAccount -EnvironmentName $applianceCloudName -UseDeviceAuthentication
Posicionamento da assinatura para o cluster de gerenciamento dedicado
Precisamos implantar um cluster de gerenciamento totalmente dedicado. A prática recomendada é colocar o cluster de gerenciamento na assinatura do operador. Isso ajudará você a restringir e isolar o painel de controle de cargas de trabalho e você pode impedir que cargas de trabalho sejam criadas no mesmo cluster que outros locatários.
Manter o plano de controle separado das cargas de trabalho fornece uma separação clara de preocupações.
Certifique-se de limitar o acesso à assinatura do operador apenas para o pessoal necessário.
Registrar provedores de recursos necessários
Registre os provedores de recursos necessários antes da implantação.
Aqui está um exemplo de como automatizar o registro de provedores de recursos do Azure PowerShell.
Observação
Execute este script em uma máquina cliente, não nos nós locais do Azure. Se você executá-lo em um nó Azure Local, verifique a versão Az.Resources para evitar conflitos de implantação.
$applianceCloudName = "azure.local"
$subscriptionName = "Operator subscription"
<# Use this block only when running this script from an Azure Local node. Check whether Az.Resources 8.1.1 is installed and install it if needed (2603).
$requiredModule = "Az.Resources"
$requiredVersion = "8.1.1"
$installedModule = Get-InstalledModule -Name $requiredModule -ErrorAction SilentlyContinue
# If operating air-gaped, you need to download and copy this module manually
if (-not $installedModule -or $installedModule.Version -lt $requiredVersion) {
Write-Host "Installing $requiredModule version $requiredVersion..."
Install-Module -Name $requiredModule -RequiredVersion $requiredVersion -Force
Write-Information "Make sure Az.Resources is the correct version if you are running this script on an Azure Local node rather than a client"
}#>
# Register resource providers
# Connect to the ARM endpointusing device authentication
Connect-AzAccount -EnvironmentName $applianceCloudName -UseDeviceAuthentication
Write-Host "Selecting a different subscription than the operator subscription.."
$subscription = Get-AzSubscription -SubscriptionName $subscriptionName
# Set the context to that subscription
Set-AzContext -SubscriptionId $subscription.Id
Register-AzResourceProvider -ProviderNamespace "Microsoft.EdgeArtifact"
Register-AzResourceProvider -ProviderNamespace "Microsoft.HybridCompute"
Register-AzResourceProvider -ProviderNamespace "Microsoft.GuestConfiguration"
Register-AzResourceProvider -ProviderNamespace "Microsoft.HybridConnectivity"
Register-AzResourceProvider -ProviderNamespace "Microsoft.AzureStackHCI"
Register-AzResourceProvider -ProviderNamespace "Microsoft.Kubernetes"
Register-AzResourceProvider -ProviderNamespace "Microsoft.KubernetesConfiguration"
Register-AzResourceProvider -ProviderNamespace "Microsoft.ExtendedLocation"
Register-AzResourceProvider -ProviderNamespace "Microsoft.ResourceConnector"
Register-AzResourceProvider -ProviderNamespace "Microsoft.HybridContainerService"
# Not required on disconnected operations
# Register-AzResourceProvider -ProviderNamespace "Microsoft.Attestation"
# Register-AzResourceProvider -ProviderNamespace "Microsoft.Storage"
# Register-AzResourceProvider -ProviderNamespace "Microsoft.Insights"
# Required for automating Key Vault creation, not for Azure Local.
Register-AzResourceProvider -ProviderNamespace "Microsoft.KeyVault"
Aguarde até que todos os provedores de recursos estejam no estado Registrado.
Para listar todos os provedores de recursos e seus status, execute o comando a seguir.
Get-AzResourceProvider | Format-Table
Observação
Para registrar ou exibir os status do provedor de recursos no portal local, acesse sua Assinatura, expanda Configurações e selecione Provedores de recursos.
Implantar Azure Local para formar o cluster de gerenciamento
Agora você tem um plano de controle implantado e configurado, uma assinatura e um grupo de recursos criados para sua implantação de Azure Local e (opcionalmente) um SPN criado para usar para automação de implantação.
Verifique a implantação antes de criar recursos de Azure locais.
- Entre com o operador raiz definido durante a implantação ou use uma conta de proprietário da assinatura.
- Em um cliente com acesso de rede ao seu IP de Ingress, abra seu navegador e vá para
https://portal.<FQDN>. Substitua<FQDN>pelo seu nome de domínio.- Você é redirecionado para seu provedor de identidade para entrar.
- Entre no provedor de identidade com as credenciais configuradas durante a implantação.
- Você deverá ver Azure portal em execução em sua rede.
- Verifique se existe uma assinatura para sua infraestrutura de Azure Local (por exemplo, assinatura do Operador).
- Verifique se os provedores de recursos necessários estão registrados na assinatura.
- Verifique se existe um grupo de recursos para sua infraestrutura do Azure Local (por exemplo, azurelocal-disconnected-operations).
Observação
O cluster de gerenciamento não dá suporte a implantações sem AD.
Iniciar cada nó do Azure Local
Para inicializar cada nó, execute este script do PowerShell. Modifique as variáveis necessárias para corresponder aos detalhes do ambiente:
| Operações desconectadas do Azure Local | Versão da solução de destino |
|---|---|
| 2604 | 12.2604.1003.1005 |
| 2605 | 12.2605.1003.1003 |
Observação
Se os computadores forem pré-instalados com uma imagem OEM, siga as etapas em Manipular imagens OEM pré-instaladas em operações desconectadas.
$resourcegroup = 'azurelocal-management-cluster'
$applianceCloudName = "azure.local"
$applianceConfigBasePath = "C:\AzureLocalDisconnectedOperations\"
$applianceFQDN = "autonomous.cloud.private"
$subscriptionName = "Operator subscription"
Connect-AzAccount -EnvironmentName $applianceCloudName -UseDeviceAuthentication
Write-Host "Ensuring you are using operator subscription for the management cluster.."
$subscription = Get-AzSubscription -SubscriptionName $subscriptionName
# Set the context to that subscription
Set-AzContext -SubscriptionId $subscription.Id
$armTokenResponse = Get-AzAccessToken -ResourceUrl "https://armmanagement.$($applianceFQDN)"
# $ArmAccessToken = $armTokenResponse.Token
# Convert token to string for use in initialization
# Workaround needed for Az.Accounts 5.0.4
$ArmAccessToken = [System.Net.NetworkCredential]::new("", $armTokenResponse.Token).Password
# Bootstrap each node
Invoke-AzStackHciArcInitialization -SubscriptionID $subscription.Id -TenantID $subscription.TenantId -ResourceGroup $resourceGroup -Cloud $applianceCloudName -Region "Autonomous" -CloudFqdn $applianceFQDN -ArmAccessToken $ArmAccessToken -TargetSolutionVersion '12.2604.1003.1005'
# If bootstrap fails or timesouts after 45:00:00 - see known-issues with CRL.
Observação
Verifique se você executa a inicialização no primeiro computador antes de passar para outros nós.
Os nós aparecem no portal local logo após a execução das etapas e as extensões aparecem nos nós poucos minutos após a instalação.
Você também pode usar o Aplicativo Configurador para inicializar cada nó.
Verifique se o TargetSolutionVersion parâmetro está definido como a versão correta da solução usada para a implantação.
Gerenciar imagens OEM pré-instaladas em operações desconectadas
Pré-requisitos
Baixe CombinedSolutionBundle. Para obter mais informações, consulte o pacote de atualização da solução.
Em um computador conectado, baixe o pacote de inicialização.
Atualizar o serviço bootstrap
Copie e extraia o arquivo BootstrapBundle.zip . Este pacote inclui:
Update-BootstrapService.ps1. Script de atualização assinado.
Microsoft.Azure. Edge.Bootstrap.Setup.Official.release.10.3342.1.3008.nupkg. Pacote NuGet do Bootstrap.
Copie ambos os arquivos para cada nó do Azure Local. Por exemplo, copie-os para C:\packages.
Em cada nó, execute o script de atualização do bootstrap e verifique se o serviço de bootstrap foi atualizado com êxito.
# Run the bootstrap update script on the node C:\packages\Update-BootstrapService.ps1 -NugetPath "C:\packages\Microsoft.Azure.Edge.Bootstrap.Setup.Official.release.10.3342.1.3008.nupkg"Parar o serviço de inicialização
stop-service *bootstrap*
- Verificar se os serviços foram interrompidos
Get-Service *bootstrap*
- Modificar o arquivo de configuração de inicialização
Editar o seguinte arquivo: C:\Windows\System32\Bootstrap\content_10.3342.1.3008\Microsoft.Azure.Edge.Bootstrap.ManagementService\windows.mae.config.jsem
- Localize a linha dizendo: "EnableNodeAddValidation": true
- Modifique a linha para : "EnableNodeAddValidation": false
- Salve o arquivo.
- Iniciar o serviço de inicialização
start-service *bootstrap*
- Verificar se os serviços estão em execução
Get-Service *bootstrap*
Inicializar Azure Arc
Copie Platform.zip para o diretório C:\zerodayupdate em cada nó.
Em cada nó, execute o comando
Invoke-AzStackHciArcInitialization:# Initialize Azure Arc with ALDO-specific parameters Invoke-AzStackHciArcInitialization -TenantId $Tenant -SubscriptionID $Subscription -ResourceGroup $RG -Region $Region # cloud must be set to `Azure.local` for disconnected operations -Cloud "Azure.local" -TargetSolutionVersion "<SolutionVersionToDeploy>" #LocalPlatformPackagePath - The local path to the `Platform.zip` file you copied -LocalPlatformPackagePath "C:\zerodayupdate\Platform.zip"Importante
Defina o parâmetro Cloud como
Azure.local. Qualquer outro valor faz com que o nó tente o registro com a nuvem Azure pública, o que falha em um ambiente desconectado. Verifique se TargetSolutionVersion corresponde à versão do dispositivo de operações desconectada. Versões incompatíveis causam falhas de implantação.Aguarde a conclusão da inicialização. Esse processo pode levar de até 30 a 60 minutos.
Execute o seguinte comando no nó de semente e aguarde até que o dispositivo esteja íntegro:
Get-ApplianceHealthStateExecute
Invoke-AzStackHciArcInitializationnovamente em cada nó.
Pré-criar Azure Key Vault
Crie o Azure Key Vault antes de implantar Azure Local para evitar longos atrasos de implantação causados por um problema conhecido.
Para obter um exemplo de código, consulte problemas conhecidos.
Depois de criar o Key Vault, aguarde 5 minutos antes de continuar com a próxima etapa de implantação do portal.
Implantar o cluster de gerenciamento (primeira instância Azure Local)
Com o plano de controle implantado e configurado, você pode concluir o cluster de gerenciamento implantando Azure Local usando o plano de controle local.
Siga estas etapas para criar uma instância de Azure Local (cluster):
- Acesse o portal local de um navegador de sua escolha.
- Navegue até
portal.FQDN. Por exemplo,https://portal.autonomous.cloud.private. - Selecione seus nós e conclua as etapas de implantação descritas no Deploy Azure Local usando o portal Azure.
Observação
Se você criar Azure Key Vault durante a implantação, aguarde cerca de 5 minutos para que as permissões RBAC entrem em vigor.
Se você vir um erro de validação, é um problema conhecido. As permissões ainda podem estar se propagando. Aguarde um pouco, atualize o navegador e reimplante o cluster.
Tarefas após a implantação de operações desconectadas
Execute as seguintes tarefas depois de implantar Azure Local com operações desconectadas:
- Faça backup das chaves do BitLocker (não ignore esta etapa). Durante a implantação, o dispositivo é criptografado. Sem as chaves de recuperação para os volumes, você não pode recuperar e restaurar o aparelho. Para obter mais informações, consulte Compreenda os controles de segurança com operações desconectadas no Azure Local.
- Atribuir operadores extras. Você pode atribuir um ou mais operadores navegando até Assinaturas de Operador. Atribua a função de colaborador no nível da assinatura.
- Exporte os certificados do serviço guardião do host e faça backup da pasta para a qual você os exporta em uma unidade ou compartilhamento externo.
- Registrar o cluster de gerenciamento
- Bloqueie o cluster de gerenciamento. Restrinja os operadores de implantar cargas de trabalho no cluster de gerenciamento. Limite o acesso do operador a alguns selecionados e imponha essa restrição usando Azure Policy para bloquear cargas de trabalho no recurso de cluster.
- Limpe os discos. Se os discos de dados foram usados durante o processo de inicialização, verifique se eles foram removidos.
Observação
Não ignore estas etapas. Considere isso como uma lista de verificação de conclusão da implantação. Essas etapas são essenciais para poder se recuperar em caso de desastres, receber suporte e manter-se em conformidade.
Implantar clusters de carga de trabalho
Para implantar instâncias de Azure Local padrão como clusters de carga de trabalho, siga as mesmas etapas usadas para o cluster de gerenciamento.
Implantar um cluster com reconhecimento de rack
A partir da versão 2604, você pode implantar um cluster do Azure Local com reconhecimento de rack em operações desconectadas do Azure Local.
Uma testemunha de compartilhamento de arquivos é necessária para implantar um cluster com reconhecimento de rack em operações Azure Local desconectadas. O compartilhamento de arquivos deve ser local e estar hospedado em um servidor Windows associado à mesma floresta do Active Directory que o cluster.
Antes de iniciar a implantação, conclua os seguintes pré-requisitos:
Adicionar o ambiente de operações desconectadas do Azure Local aos nós
Importe a chave pública do certificado raiz em cada nó. Consulte as etapas 8 a 10 de Prepare Azure Local para implantações desconectadas.
Para implantar um cluster com reconhecimento de rack, use o seguinte modelo ARM: create-cluster-rac-enabled-disconnected.
Para obter um exemplo que mostra o formato de várias entradas, como ArcNodeResourceID, consulte o arquivo JSON do parâmetro azuredeploy.parameters.json. Para obter uma descrição detalhada dos parâmetros definidos nesses arquivos, consulte a referência de parâmetros de modelo do ARM.
Importante
- Verifique se todos os parâmetros no arquivo JSON estão preenchidos.
- Substitua quaisquer valores de espaço reservado, como [""] por dados reais. Esses placeholders indicam que o parâmetro espera uma estrutura de array.
- Se os valores necessários estiverem ausentes ou formatados incorretamente, a validação falhará.
Exemplo de configuração de cluster com reconhecimento de racks
O exemplo a seguir implanta um cluster de quatro nós com reconhecimento de racks, com dois nós em cada rack:
node1 e node2 estão fisicamente localizados no mesmo rack (Zona1).
node3 e node4 estão localizados em um rack diferente (Zona2).
Além de todos os parâmetros de implantação padrão, configure os seguintes parâmetros para implantação com reconhecimento de rack.
IDs dos recursos do nó do Arc
"arcNodeResourceIds": {
"value": [
"/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HybridCompute/machines/node1",
"/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HybridCompute/machines/node2",
"/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HybridCompute/machines/node3",
"/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HybridCompute/machines/node4"
]
}
Padrão de cluster e zonas de disponibilidade locais
Defina clusterPattern como RackAware e defina uma zona de disponibilidade local para cada rack. Atribua nós a zonas com base na localização física do rack. Neste exemplo, o nó1 e o nó2 estão na Zona1, enquanto o nó3 e o nó4 estão na Zona2.
"clusterPattern": {
"value": "RackAware"
},
"localAvailabilityZones": {
"value": [
{
"localAvailabilityZoneName": "Zone1",
"nodes": ["node1","node2"]
},
{
"localAvailabilityZoneName": "Zone2",
"nodes": ["node3","node4"]
}
]
}
Testemunha de compartilhamento de arquivos
Um cluster com reconhecimento de rack em operações desconectadas do Azure Local requer uma testemunha de compartilhamento de arquivos. Defina witnessType como FileShare e especifique o caminho UNC para o compartilhamento de arquivos.
"witnessType": {
"value": "FileShare"
},
"witnessPath": {
"value": "witness_share_path"
}
Configuração de intenção de rede
Para clusters com reconhecimento de rack, a intenção de rede de armazenamento deve ser uma intenção dedicada separada do gerenciamento e do tráfego de computação. Defina duas intenções de rede:
- ManagementCompute – manipula o gerenciamento e o tráfego de computação em adaptadores compartilhados.
- Armazenamento – manipula o tráfego de armazenamento em adaptadores dedicados.
Configure os IDs da VLAN de armazenamento para cada adaptador de armazenamento. As IDs de VLAN padrão (711 e 712) podem ser personalizadas para seu ambiente.
"networkingType": {
"value": "switchedMultiserverDeployment"
},
"networkingPattern": {
"value" : "convergedManagementCompute"
},
"intentList" : {
"value": [
{
"name": "ManagementCompute",
"trafficType": [
"Management",
"Compute"
],
"adapter": [
"ethernet",
"ethernet 2"
],
"overridevirtualswitchConfiguration": false,
"virtualswitchConfigurationoverrides": {
"enableIov": "",
"loadBalancingAlgorithm": ""
},
"overrideQosPolicy": false,
"qosPolicyoverrides": {
"priorityvalue8021Action_SMB": "",
"priorityvalues8021Action_Cluster": "",
"bandwidthPercentage_SMB": ""
},
"overrideAdapterProperty": false,
"adapterPropertyoverrides": {
"jumboPacket": "",
"networkDirect": "",
"networkDirectTechnology": ""
}
},
{
"name": "Storage",
"trafficType": [
"Storage"
],
"adapter": [
"ethernet 3",
"ethernet 4"
],
"overridevirtualswitchConfiguration": false,
"virtualswitchConfigurationoverrides": {
"enableIov": "",
"loadBalancingAlgorithm": ""
},
"overrideQosPolicy": false,
"qosPolicyoverrides": {
"priorityvalue8021Action_SMB": "",
"priorityvalues8021Action_Cluster": "",
"bandwidthPercentage_SMB": ""
},
"overrideAdapterProperty": false,
"adapterPropertyoverrides": {
"jumboPacket": "",
"networkDirect": "",
"networkDirectTechnology": ""
}
}
]
},
"storageNetworkList": {
"value": [
{
"name": "Storage1Network",
"networkAdapterName": "ethernet 3",
"vlanId": "711"
},
{
"name": "Storage2Network",
"networkAdapterName": "ethernet 4",
"vlanId": "712"
}
]
}
Apêndice
Bloquear cluster de gerenciamento
$operatorSubscriptionId = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
$resourceGroup = 'azurelocal-management-cluster'
$managementClusterLocationName = 'managementcluster-location'
$customLocationId = "/subscriptions/$($operatorSubscriptionId)/resourceGroups/$($resourceGroup)/providers/Microsoft.ExtendedLocation/customLocations/$($managementClusterLocationName)"
Import-Module "$applianceConfigBasePath\OperationsModule\AzureLocal.Orchestration.psm1"
Set-ManagementClusterLock `
-Enabled $true `
-SubscriptionId $operatorSubscriptionId `
-MgmtClusterCustomLocationId $customLocationId
Limpar discos de dados usados para inicialização
# ===============================
# Remove CSV and Return Space to Pool
# ===============================
$CsvName="Cluster Virtual Disk (InfraLocal_1)"
$VirtualDiskName ="InfraLocal_1"
Write-Host "Starting CSV removal process..." -ForegroundColor Cyan
# --- Validate CSV exists ---
$csv = Get-ClusterSharedVolume -Name $CsvName -ErrorAction Stop
Write-Host "Found CSV: $($csv.Name)"
# --- Remove CSV ---
$csv = remove-ClusterSharedVolume -Name $CsvName -ErrorAction Stop
Write-Host "Removed CSV: $($csv.Name)"
# --- Take Cluster Resources offline ---
Write-Host "Taking CSV resource offline..." -ForegroundColor Yellow
Stop-ClusterResource -Name $csv.name -Wait 120
# --- Remove Cluster Resources offline ---
Write-Host "Taking CSV resource offline..." -ForegroundColor Yellow
remove-ClusterResource -Name $csv.name
# --- Remove virtual disk and return space to pool ---
Write-Host "Remoing virtual disk..." -ForegroundColor Yellow
remove-virtualdisk -FriendlyName $VirtualDiskName
Solução de problemas e reconfiguração usando o endpoint de gerenciamento
Para usar o ponto de extremidade de gerenciamento para solução de problemas e reconfiguração, você precisa do endereço IP de gerenciamento usado durante a implantação, juntamente com o certificado do cliente e a senha usados para proteger o ponto de extremidade.
De um cliente com acesso de rede ao ponto de extremidade de gerenciamento, importe o OperationsModule e defina o contexto (modifique o script para corresponder à sua configuração):
Import-Module "$applianceConfigBasePath\OperationsModule\Azure.Local.DisconnectedOperations.psd1" -Force
$password = ConvertTo-SecureString 'RETRACTED' -AsPlainText -Force
$context = Set-DisconnectedOperationsClientContext -ManagementEndpointClientCertificatePath "${env:localappdata}\AzureLocalOpModuleDev\certs\ManagementEndpoint\ManagementEndpointClientAuth.pfx" -ManagementEndpointClientCertificatePassword $password -ManagementEndpointIpAddress "169.254.53.25"
Depois de definir o contexto, você pode usar todos os cmdlets de gerenciamento fornecidos pelo módulo Operações, como redefinir a configuração de identidade, verificar o estado de integridade e muito mais.
Para obter uma lista completa dos cmdlets disponíveis, use o PowerShell Get-Command -Module OperationsModule. Para obter detalhes sobre cada cmdlet, use o Get-Help <cmdletname> comando.
Solução de problemas de implantações
Sistema não configurado
Depois de instalar o dispositivo, você poderá ver essa tela por um tempo. Deixe a configuração ser executada por 2 a 3 horas. Depois de esperar de 2 a 3 horas, a tela desaparecerá e você verá o portal de Azure regular. Se a tela não desaparecer e você não puder acessar o portal de Azure local, solucione o problema.
Para localizar logs do OperationsModule no primeiro computador, acesse
C:\ProgramData\Microsoft\AzureLocalDisconnectedOperations\Logs.Para exibir o estado de integridade do dispositivo, use o cmdlet
Get-ApplianceHealthStatedo ponto de extremidade de gerenciamento. Se você vir essa tela e o cmdlet não indicar erros e todos os serviços estiverem com status 100, abra um tíquete de suporte pelo portal do Azure.
Install-Appliance falha
Atualize a configuração do dispositivo e execute novamente a instalação após a falha.
Por exemplo:
Se o endereço IP já estiver em uso, modifique o objeto de configuração.
Aqui está um exemplo para modificar o endereço IP de entrada
# Set a new IP address $ingressNetworkConfiguration.IngressIpAddress = '192.168.0.115'Se
install-appliancefalhar durante a instalação, atualize$installAzureLocalParamse executeInstall-appliancenovamente conforme descrito em Instalar e configurar o dispositivo.Se a implantação do dispositivo tiver sido bem-sucedida e você estiver atualizando a configuração de rede, confira
Get-Help Set-Applianceas configurações que você pode atualizar após a implantação.
Próximas etapas
- Registrar operações desconectadas para o Azure Local.
Esse recurso só está disponível no Azure Local 2602 ou posterior.