Connessione ad Azure Resource Manager nel dispositivo Azure Stack Edge
SI APPLICA A:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Azure Resource Manager offre un livello di gestione che consente di creare, aggiornare ed eliminare risorse nella sottoscrizione di Azure. Il dispositivo Azure Stack Edge supporta le stesse API di Azure Resource Manager per creare, aggiornare ed eliminare le macchine virtuali in una sottoscrizione locale. Questo supporto consente di gestire il dispositivo in modo coerente con il cloud.
Questo articolo descrive come connettersi alle API locali nel dispositivo Azure Stack Edge tramite Azure Resource Manager tramite Azure PowerShell.
La tabella seguente riepiloga i vari endpoint esposti nel dispositivo, i protocolli supportati e le porte per accedere a tali endpoint. In tutto l'articolo sono disponibili riferimenti a questi endpoint.
# | Endpoint | Protocolli supportati | Porta usata | Utilizzo |
---|---|---|---|---|
1. | Azure Resource Manager | https | 443 | Per connettersi ad Azure Resource Manager per l'automazione |
2. | Servizio token di sicurezza | https | 443 | Per eseguire l'autenticazione tramite token di accesso e aggiornamento |
3. | Blob* | https | 443 | Per connettersi all'archiviazione BLOB tramite REST |
* Connessione all'endpoint di archiviazione BLOB non è necessario per connettersi ad Azure Resource Manager.
Il processo di connessione alle API locali del dispositivo tramite Azure Resource Manager richiede la procedura seguente:
N.ro passaggio | Eseguire questo passaggio... | .. in questa posizione. |
---|---|---|
1. | Configurare il dispositivo Azure Stack Edge | Interfaccia utente Web locale |
2. | Creare e installare i certificati | Interfaccia utente Web locale/client Windows |
3. | Esaminare e configurare i prerequisiti | Client Windows |
4. | Configurare Azure PowerShell nel client | Client Windows |
5. | Modificare il file host per la risoluzione dei nomi dell'endpoint | Client Windows o server DNS |
6. | Verificare che il nome dell'endpoint sia stato risolto | Client Windows |
7. | Usare i cmdlet di Azure PowerShell per verificare la connessione ad Azure Resource Manager | Client Windows |
Le sezioni seguenti illustrano in dettaglio ognuno dei passaggi precedenti nella connessione ad Azure Resource Manager.
Prima di iniziare, assicurarsi che il client usato per la connessione al dispositivo tramite Azure Resource Manager usi TLS 1.2. Per altre informazioni, vedere Configurare TLS 1.2 nel client Windows che accede al dispositivo Azure Stack Edge.
Seguire questa procedura nell'interfaccia utente Web locale del dispositivo Azure Stack Edge.
Completare le impostazioni di rete per il dispositivo Azure Stack Edge.
Prendere nota dell'indirizzo IP del dispositivo. Questo indirizzo IP verrà usato in un secondo momento.
Configurare il nome del dispositivo e il dominio DNS dalla pagina Dispositivo . Prendere nota del nome del dispositivo e del dominio DNS perché verranno usati in un secondo momento.
Importante
Il nome del dispositivo, il dominio DNS verrà usato per formare gli endpoint esposti. Usare gli endpoint di Azure Resource Manager e BLOB dalla pagina Dispositivo nell'interfaccia utente Web locale.
I certificati assicurano che la comunicazione sia attendibile. Nel dispositivo Azure Stack Edge, i certificati autofirmati, BLOB e Azure Resource Manager vengono generati automaticamente. Facoltativamente, è possibile inserire anche i propri certificati di BLOB firmati e Azure Resource Manager.
Quando si porta un certificato firmato personalizzato, è necessaria anche la catena di firma corrispondente del certificato. Per la catena di firma, Azure Resource Manager e i certificati BLOB nel dispositivo, sono necessari anche i certificati corrispondenti nel computer client per autenticare e comunicare con il dispositivo.
Per connettersi ad Azure Resource Manager, è necessario creare o ottenere certificati di firma ed endpoint, importarli nel client Windows e infine caricare questi certificati nel dispositivo.
Solo per l'uso di test e sviluppo, è possibile usare Windows PowerShell per creare certificati nel sistema locale. Durante la creazione dei certificati per il client, seguire queste linee guida:
È prima necessario creare un certificato radice per la catena di firma. Per altre informazioni, vedere La procedura per creare certificati della catena di firma.
È quindi possibile creare i certificati endpoint per Azure Resource Manager e BLOB (facoltativo). È possibile ottenere questi endpoint dalla pagina Dispositivo nell'interfaccia utente Web locale. Vedere la procedura per creare certificati endpoint.
Per tutti questi certificati, assicurarsi che il nome soggetto e il nome alternativo soggetto siano conformi alle linee guida seguenti:
Type Nome soggetto (SN) Nome alternativo soggetto (SAN) Esempio di nome soggetto Azure Resource Manager management.<Device name>.<Dns Domain>
login.<Device name>.<Dns Domain>
management.<Device name>.<Dns Domain>
management.mydevice1.microsoftdatabox.com
Archiviazione BLOB* *.blob.<Device name>.<Dns Domain>
*.blob.< Device name>.<Dns Domain>
*.blob.mydevice1.microsoftdatabox.com
Certificato singolo multi-SAN per entrambi gli endpoint <Device name>.<dnsdomain>
login.<Device name>.<Dns Domain>
management.<Device name>.<Dns Domain>
*.blob.<Device name>.<Dns Domain>
mydevice1.microsoftdatabox.com
* L'archiviazione BLOB non è necessaria per connettersi ad Azure Resource Manager. Viene elencato qui nel caso in cui si creino account di archiviazione locali nel dispositivo.
Per altre informazioni sui certificati, vedere Come caricare i certificati nel dispositivo e importare i certificati nei client che accedono al dispositivo.
I certificati creati nel passaggio precedente si trovano nell'archivio personale nel client. Questi certificati devono essere esportati nel client in file di formato appropriati che possono quindi essere caricati nel dispositivo.
Il certificato radice deve essere esportato come file di formato DER con estensione di file .cer . Per i passaggi dettagliati, vedere Esportare i certificati come file di formato .cer.
I certificati endpoint devono essere esportati come file pfx con chiavi private. Per i passaggi dettagliati, vedere Esportare i certificati come file con estensione pfx con chiavi private.
I certificati radice ed endpoint vengono quindi caricati nel dispositivo usando l'opzione +Aggiungi certificato nella pagina Certificati nell'interfaccia utente Web locale. Per caricare i certificati, seguire la procedura descritta in Caricare i certificati.
Il client Windows in cui si richiamano le API di Azure Resource Manager deve stabilire una relazione di trust con il dispositivo. A questo scopo, i certificati creati nel passaggio precedente devono essere importati nel client Windows nell'archivio certificati appropriato.
Il certificato radice esportato come formato DER con estensione .cer ora deve essere importato nelle autorità di certificazione radice attendibili nel sistema client. Per i passaggi dettagliati, vedere Importare i certificati nell'archivio Autorità di certificazione radice attendibili.
I certificati endpoint esportati come file pfx devono essere esportati come .cer. Questo .cer viene quindi importato nell'archivio certificati personale nel sistema. Per i passaggi dettagliati, vedere Importare i certificati nell'archivio personale.
Il client Windows deve soddisfare i prerequisiti seguenti:
Eseguire Windows PowerShell 5.1. È necessario disporre di Windows PowerShell 5.1. Per controllare la versione di PowerShell nel sistema, eseguire il cmdlet seguente:
$PSVersionTable.PSVersion
Confrontare la versione principale e assicurarsi che sia 5.1 o versione successiva.
Se hai una versione obsoleta, vedi Aggiornamento di Windows PowerShell esistente.
Se PowerShell 5.1 non è disponibile, seguire Installazione di Windows PowerShell.
Di seguito è riportato un esempio di output.
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. Try the new cross-platform PowerShell https://aka.ms/pscore6 PS C:\windows\system32> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 5 1 19041 906
È possibile accedere a PowerShell Gallery.
Eseguire PowerShell come amministratore. Verificare che la versione di PowerShellGet sia precedente alla 2.2.3. Verificare inoltre se
PSGallery
è registrato come repository.Install-Module PowerShellGet -MinimumVersion 2.2.3 Import-Module -Name PackageManagement -ErrorAction Stop Get-PSRepository -Name "PSGallery"
Di seguito è riportato un esempio di output.
PS C:\windows\system32> Install-Module PowerShellGet -MinimumVersion 2.2.3 PS C:\windows\system32> Import-Module -Name PackageManagement -ErrorAction Stop PS C:\windows\system32> Get-PSRepository -Name "PSGallery" Name InstallationPolicy SourceLocation ---- ------------------ -------------- PSGallery Trusted https://www.powershellgallery.com/api/v2
Se il repository non è attendibile o sono necessarie altre informazioni, vedere Convalidare l'accessibilità di PowerShell Gallery.
Installare i moduli di Azure PowerShell nel client che funzionano con il dispositivo.
Esegui PowerShell come amministratore. È necessario avere accesso a PowerShell Gallery.
Verificare prima di tutto che nel client non siano presenti versioni di
AzureRM
eAz
moduli esistenti. Per verificare, eseguire i comandi seguenti:# Check existing versions of AzureRM modules Get-InstalledModule -Name AzureRM -AllVersions # Check existing versions of Az modules Get-InstalledModule -Name Az -AllVersions
Se sono presenti versioni esistenti, usare il
Uninstall-Module
cmdlet per disinstallare. Per ulteriori informazioni, vedere,- Disinstallare i moduli AzureRM.
- Disinstallare i moduli Az.
Per installare i moduli di Azure PowerShell necessari da PowerShell Gallery, eseguire il comando seguente:
Se il client usa PowerShell Core versione 7.0 o successiva:
# Install the Az.BootStrapper module. Select Yes when prompted to install NuGet. Install-Module -Name Az.BootStrapper # Install and import the API Version Profile into the current PowerShell session. Use-AzProfile -Profile 2020-09-01-hybrid -Force # Confirm the installation of PowerShell Get-Module -Name "Az*" -ListAvailable
Se il client usa PowerShell 5.1 o versione successiva:
#Install the Az module version 1.10.0 Install-Module -Name Az -RequiredVersion 1.10.0
Assicurarsi di avere la versione corretta del modulo Az in esecuzione alla fine dell'installazione.
Se è stato usato PowerShell 7 o versione successiva, l'output di esempio seguente indica che i moduli Az versione 2.0.1 (o successiva) sono stati installati correttamente.
PS C:\windows\system32> Install-Module -Name Az.BootStrapper PS C:\windows\system32> Use-AzProfile -Profile 2020-09-01-hybrid -Force Loading Profile 2020-09-01-hybrid PS C:\windows\system32> Get-Module -Name "Az*" -ListAvailable
Se è stato usato PowerShell 5.1 o versione successiva, l'output di esempio seguente indica che i moduli Az versione 1.10.0 sono stati installati correttamente.
PS C:\WINDOWS\system32> Get-InstalledModule -Name Az -AllVersions Version Name Repository Description ------- ---- ---------- ----------- 1.10.0 Az PSGallery Mic... PS C:\WINDOWS\system32>
A questo punto si aggiungerà l'indirizzo IP del dispositivo a:
- Il file host nel client OPPURE
- La configurazione del server DNS
Importante
È consigliabile modificare la configurazione del server DNS per la risoluzione dei nomi di endpoint.
Nel client Windows in uso per connettersi al dispositivo seguire questa procedura:
Avviare Blocco note come amministratore e quindi aprire il file hosts che si trova in C:\Windows\System32\Drivers\etc.
Aggiungere le voci seguenti al file hosts sostituendo i valori con quelli appropriati per il dispositivo:
<Device IP> login.<appliance name>.<DNS domain> <Device IP> management.<appliance name>.<DNS domain> <Device IP> <storage name>.blob.<appliance name>.<DNS domain>
Importante
La voce nel file hosts deve corrispondere esattamente a quella fornita per connettersi ad Azure Resource Manager in un passaggio successivo. Assicurarsi che la voce Dns Domain (Dominio DNS) sia in lettere minuscole. Per ottenere i valori per
<appliance name>
e<DNS domain>
, passare alla pagina Dispositivo nell'interfaccia utente locale del dispositivo.L'INDIRIZZO IP del dispositivo è stato salvato dall'interfaccia utente Web locale in un passaggio precedente.
La voce è l'endpoint per il servizio token di sicurezza.The
login.<appliance name>.<DNS domain>
entry is the endpoint for Security Token Service (STS). Il servizio token di sicurezza è responsabile della creazione, della convalida, del rinnovo e dell'annullamento dei token di sicurezza. Il servizio token di sicurezza viene usato per creare il token di accesso e il token di aggiornamento usati per la comunicazione continua tra il dispositivo e il client.L'endpoint per l'archiviazione BLOB è facoltativo quando ci si connette ad Azure Resource Manager. Questo endpoint è necessario quando si trasferiscono i dati in Azure tramite account di archiviazione.
Per indicazioni, vedere l'immagine seguente. Salvare il file hosts.
Controllare se il nome dell'endpoint viene risolto nel client in uso per connettersi al dispositivo.
È possibile usare l'utilità della
ping.exe
riga di comando per verificare che il nome dell'endpoint sia stato risolto. Dato un indirizzo IP, ilping
comando restituisce il nome host TCP/IP del computer da tracciare.Aggiungere l'opzione
-a
alla riga di comando come illustrato nell'esempio seguente. Se il nome host è restituito, restituirà anche queste informazioni potenzialmente preziose nella risposta.
Impostare l'ambiente Azure Resource Manager e verificare che il dispositivo alla comunicazione client tramite Azure Resource Manager funzioni correttamente. Per questa verifica, seguire questa procedura:
Usare il cmdlet
Add-AzEnvironment
per assicurarsi che la comunicazione tramite Azure Resource Manager funzioni correttamente e che le chiamate API attraversino la porta dedicata per Azure Resource Manager - 443.Il cmdlet
Add-AzEnvironment
aggiunge endpoint e metadati per consentire ai cmdlet di Azure Resource Manager di connettersi a una nuova istanza di Azure Resource Manager.Importante
L'URL dell'endpoint di Azure Resource Manager specificato nel cmdlet seguente fa distinzione tra maiuscole e minuscole. Assicurarsi che l'URL dell'endpoint sia tutto in minuscolo e corrisponda a quello specificato nel file hosts. Se il caso non corrisponde, verrà visualizzato un errore.
Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>/"
Di seguito è riportato un output di esempio:
PS C:\WINDOWS\system32> Add-AzEnvironment -Name AzASE -ARMEndpoint "https://management.myasegpu.wdshcsso.com/" Name Resource Manager Url ActiveDirectory Authority ---- -------------------- ------------------------- AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
Impostare l'ambiente come Azure Stack Edge e la porta da usare per le chiamate di Azure Resource Manager come 443. L'ambiente viene definito in due modi:
Impostare l'ambiente. Digitare il comando seguente:
Set-AzEnvironment -Name <Environment Name>
Ecco un esempio di output.
PS C:\WINDOWS\system32> Set-AzEnvironment -Name AzASE Name Resource Manager Url ActiveDirectory Authority ---- -------------------- ------------------------- AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
Per altre informazioni, vedere Set-AzEnvironment.
Definire l'ambiente inline per ogni cmdlet eseguito. In questo modo, tutte le chiamate API passano attraverso l'ambiente corretto. Per impostazione predefinita, le chiamate passano attraverso il pubblico di Azure, ma si vuole che vengano eseguite nell'ambiente impostato per il dispositivo Azure Stack Edge.
Vedere altre informazioni su come cambiare gli ambienti Az.
Chiamare le API del dispositivo locale per autenticare le connessioni ad Azure Resource Manager.
Queste credenziali sono per un account del computer locale e vengono usate esclusivamente per l'accesso alle API.
È possibile connettersi tramite
login-AzAccount
o tramiteConnect-AzAccount
il comando .Per accedere, digitare il comando seguente.
$pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass) Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
Usare l'ID tenant c0257de7-538f-415c-993a-1b87a031879d come in questa istanza è hardcoded. Usare il nome utente e la password seguenti.
Nome utente - EdgeArmUser
Password - Impostare la password per Azure Resource Manager e usare questa password per accedere.
Di seguito è riportato un esempio di output per :
Connect-AzAccount
PS C:\windows\system32> $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force; PS C:\windows\system32> $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass) PS C:\windows\system32> Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred Account SubscriptionName TenantId Environment ------- ---------------- -------- ----------- EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzASE PS C:\windows\system32>
Un modo alternativo per accedere consiste nell'usare il
login-AzAccount
cmdlet .login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
Ecco un esempio di output.
PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d Account SubscriptionName TenantId ------- ---------------- -------- EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a... PS C:\WINDOWS\system32>
Per verificare che la connessione al dispositivo funzioni, usare il
Get-AzResource
comando . Questo comando deve restituire tutte le risorse esistenti localmente nel dispositivo.Ecco un esempio di output.
PS C:\WINDOWS\system32> Get-AzResource Name : aseimagestorageaccount ResourceGroupName : ase-image-resourcegroup ResourceType : Microsoft.Storage/storageaccounts Location : dbelocal ResourceId : /subscriptions/.../resourceGroups/ase-image-resourcegroup/providers/Microsoft.Storage/storageac counts/aseimagestorageaccount Tags : Name : myaselinuxvmimage1 ResourceGroupName : ASERG ResourceType : Microsoft.Compute/images Location : dbelocal ResourceId : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Compute/images/myaselinuxvmimage1 Tags : Name : ASEVNET ResourceGroupName : ASERG ResourceType : Microsoft.Network/virtualNetworks Location : dbelocal ResourceId : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET Tags : PS C:\WINDOWS\system32>
Se si verificano problemi con le connessioni di Azure Resource Manager, vedere Risolvere i problemi di Azure Resource Manager per indicazioni.
Importante
La connessione ad Azure Resource Manager scade ogni 1,5 ore o se il dispositivo Azure Stack Edge viene riavviato. In questo caso, tutti i cmdlet eseguiti restituiranno messaggi di errore all'effetto che non si è più connessi ad Azure. Sarà necessario eseguire di nuovo l'accesso.
Potrebbe essere necessario passare da un ambiente all'altro.
Eseguire Disconnect-AzAccount
il comando per passare a un oggetto diverso AzEnvironment
. Se si usa e Login-AzAccount
senza usare Disconnect-AzAccount
Set-AzEnvironment
, l'ambiente non viene modificato.
Negli esempi seguenti viene illustrato come passare tra due ambienti e AzASE1
AzASE2
.
In primo luogo, elencare tutti gli ambienti esistenti nel client.
PS C:\WINDOWS\system32> Get-AzEnvironment
Name Resource Manager Url ActiveDirectory Authority
---- -------------------- -------------------------
AzureChinaCloud https://management.chinacloudapi.cn/ https://login.chinacloudapi.cn/
AzureCloud https://management.azure.com/ https://login.microsoftonline.com/
AzureGermanCloud https://management.microsoftazure.de/ https://login.microsoftonline.de/
AzDBE1 https://management.HVTG1T2-Test.microsoftdatabox.com https://login.hvtg1t2-test.microsoftdatabox.com/adfs/
AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/
AzDBE2 https://management.CVV4PX2-Test.microsoftdatabox.com https://login.cvv4px2-test.microsoftdatabox.com/adfs/
Ottenere quindi l'ambiente a cui si è attualmente connessi tramite Azure Resource Manager.
PS C:\WINDOWS\system32> Get-AzContext |fl *
Name : Default Provider Subscription (...) - EdgeArmUser@localhost
Account : EdgeArmUser@localhost
Environment : AzDBE2
Subscription : ...
Tenant : c0257de7-538f-415c-993a-1b87a031879d
TokenCache : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache
VersionProfile :
ExtendedProperties : {}
È ora necessario disconnettersi dall'ambiente corrente prima di passare all'altro ambiente.
PS C:\WINDOWS\system32> Disconnect-AzAccount
Id : EdgeArmUser@localhost
Type : User
Tenants : {c0257de7-538f-415c-993a-1b87a031879d}
AccessToken :
Credential :
TenantMap : {}
CertificateThumbprint :
ExtendedProperties : {[Subscriptions, ...], [Tenants, c0257de7-538f-415c-993a-1b87a031879d]}
Accedere all'altro ambiente. Di seguito è riportato l'output di esempio.
PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzDBE1
Eseguire questo cmdlet per verificare l'ambiente a cui si è connessi.
PS C:\WINDOWS\system32> Get-AzContext |fl *
Name : Default Provider Subscription (...) - EdgeArmUser@localhost
Account : EdgeArmUser@localhost
Environment : AzDBE1
Subscription : ...
Tenant : c0257de7-538f-415c-993a-1b87a031879d
TokenCache : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache
VersionProfile :
ExtendedProperties : {}
Si è ora passati all'ambiente previsto.