A PowerShell Az modul telepítése az Azure Stack Hubhoz

Ez a cikk azt ismerteti, hogyan telepítheti az Azure PowerShell Az és a kompatibilis Azure Stack Hub-rendszergazdai modulokat a PowerShellGet használatával. Az Az modulok Telepíthetők Windows, macOS és Linux platformokra.

Az Azure Stack Hubhoz készült Az-modulokat egy Docker-tárolóban is futtathatja. Útmutatásért lásd: A Docker használata az Azure Stack Hubhoz készült PowerShell futtatásához.

Ha az Azure Stack Hubhoz készült PowerShell-erőforrásmodulokat (AzureRM) szeretné telepíteni, tekintse meg az Azure Stack Hubhoz készült PowerShell AzureRM-modul telepítését ismertető témakört.

Fontos

Valószínűleg nem lesznek új Azure Resource Modules-modulkiadások. Az Azure-erőforrásmodulok moduljai csak kritikus javítások esetén támogatottak. A továbbiakban csak Az-kiadások lesznek az Azure Stack Hubhoz.

API-profilokkal megadhatja az Azure Stack Hub erőforrás-szolgáltatóinak kompatibilis végpontjait.

Az API-profilok lehetővé teszik az Azure és az Azure Stack Hub közötti verzióeltéréseket. Az API-verzióprofil az Azure Resource Manager PowerShell-modulok adott API-verziókkal rendelkező készlete. Minden felhőplatform támogatott API-verzióprofilokat biztosít. Az Azure Stack Hub például egy adott profilverziót támogat, például a 2020-09-01-hybrid verziót. Profil telepítésekor a rendszer telepíti a megadott profilnak megfelelő Azure Resource Manager PowerShell-modulokat.

Az Azure Stack Hub-kompatibilis PowerShell Az-modulokat internetkapcsolattal, részlegesen csatlakoztatott vagy leválasztott forgatókönyvekben telepítheti. Ez a cikk végigvezeti az ilyen forgatókönyvekre vonatkozó részletes utasításokon.

1. Az előfeltételek ellenőrzése

Az Az-modulok az Azure Stack Hubon a 2002-s vagy újabb frissítéssel és az aktuális gyorsjavításokkal támogatottak. További információért tekintse meg az Azure Stack Hub kibocsátási megjegyzéseit .

Az Azure PowerShell Az modulok a PowerShell 5.1-et vagy újabb verzióját használják Windows rendszeren, vagy a PowerShell Core 6.x és újabb verzióit minden platformon. Telepítse az operációs rendszerhez elérhető PowerShell Core legújabb verzióját . Azure PowerShell nem rendelkezik más követelményekkel a PowerShell Core-on való futtatáskor.

A PowerShell verziójának megtekintéséhez futtassa az alábbi parancsot:

$PSVersionTable.PSVersion

A Windows előfeltételei

Az Azure PowerShell használata PowerShell 5.1-ben Windows rendszeren:

  1. Frissítsen a Windows PowerShell 5.1-re, ha szükséges. Ha Windows 10 rendszert használ, már telepítve van a PowerShell 5.1.
  2. Telepítse a .NET-keretrendszer 4.7.2-es vagy újabb verzióját.
  3. Győződjön meg arról, hogy a PowerShellGet legújabb verziójával rendelkezik. Futtassa a következő parancsmagokat egy emelt szintű parancssorból:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

powershell -noprofile
$PSVersionTable
Uninstall-Module PowershellGet -AllVersions -Force -Confirm:$false
Get-module PowershellGet
Find-module PowershellGet
Install-Module PowershellGet -MinimumVersion 2.2.3 -Force

2. A Linux és a Mac előfeltételei

A PowerShell Core 6.x vagy újabb verziójára van szükség. Útmutatásért kövesse a hivatkozást

3. Az Azure Stack Hub PowerShell-modulok meglévő verzióinak eltávolítása

A szükséges verzió telepítése előtt távolítsa el a korábban telepített Azure Stack Hub Azure Resource Manager vagy Az PowerShell-modulokat. Távolítsa el a modulokat az alábbi két módszer egyikével:

  1. A meglévő Azure Resource Manager- és Az PowerShell-modulok eltávolításához zárja be az összes aktív PowerShell-munkamenetet, és futtassa a következő parancsmagokat:

    Get-Module -Name Azure* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Azs.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Az.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    

    Ha "A modul már használatban van" hibaüzenetet kapja, zárja be a modulokat használó PowerShell-munkameneteket, és futtassa újra a fenti szkriptet.

  2. Ha a Uninstall-Module nem sikerült, törölje az összes olyan mappát, amely a következővel Azurekezdődik: , Azvagy Azs. a $env:PSModulePath helyekről. A Windows PowerShell esetében a helyek lehetnek C:\Program Files\WindowsPowerShell\Modules és C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. A PowerShell Core esetében a helyek lehetnek C:\Program Files\PowerShell\7\Modules és C:\Users\{yourusername}\Documents\PowerShell\Modules. A mappák törlése eltávolítja a meglévő Azure PowerShell modulokat.

4. Csatlakoztatva: Telepítés internetkapcsolattal

Az Azure Stack Az modul a PowerShell 5.1 vagy újabb verziójával fog működni Egy Windows rendszerű gépen, illetve a PowerShell 6.x vagy újabb verziójával Linux vagy macOS platformon. Az előnyben részesített telepítési módszer a PowerShellGet-parancsmagok használata. Ez a módszer ugyanúgy működik a támogatott platformokon.

  1. Futtassa a következő parancsot egy PowerShell-munkamenetből a PowerShellGet legalább 2.2.3-as verzióra való frissítéséhez

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Zárja be a PowerShell-munkamenetet, majd nyisson meg egy új PowerShell-munkamenetet, hogy a frissítés érvénybe lépjen.

  1. Futtassa az alábbi parancsot egy PowerShell-munkamenetből:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.2.0 
    
  1. Futtassa az alábbi parancsot egy PowerShell-munkamenetből:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.1.1
    

Figyelmeztetés

Az Azure Resource Manager (AzureRM) és az Az modul egyszerre nem telepíthető a Windows PowerShell 5.1-hez. Ha az Azure-Resource Manager elérhetővé kell tenni a rendszeren, telepítse a PowerShell Core 6.x vagy újabb verziójához készült Az modult. Ehhez telepítse a PowerShell Core 6.x vagy újabb verzióját, majd kövesse ezeket az utasításokat egy PowerShell Core-terminálban.

5. Leválasztva: Telepítés internetkapcsolat nélkül

Leválasztott forgatókönyv esetén először letölti a PowerShell-modulokat egy internetkapcsolattal rendelkező gépre. Ezután átviszi őket az Azure Stack Development Kitbe (ASDK) a telepítéshez.

Jelentkezzen be egy internetkapcsolattal rendelkező számítógépre, és az alábbi szkriptekkel töltse le az Azure Resource Manager és az Azure Stack Hub-csomagokat az Azure Stack Hub verziójától függően.

A telepítés öt lépésből áll:

  1. Telepítse az Azure Stack Hub PowerShellt egy csatlakoztatott gépre.
  2. További tárolási funkciók engedélyezése.
  3. A PowerShell-csomagok átvitele a leválasztott munkaállomásra.
  4. Manuálisan indítsa el a NuGet-szolgáltatót a leválasztott munkaállomáson.
  5. Ellenőrizze a PowerShell telepítését.

Az Azure Stack Hub PowerShell telepítése

Azure Stack Hub 2108 vagy újabb.

Az Azure Resource Manager vagy az Az modulokat is használhatja. Az Azure Resource Manager esetében tekintse meg a PowerShell AzureRM-modul telepítésével kapcsolatos utasításokat. Az alábbi kód a megbízható online adattárból https://www.powershellgallery.com/menti a modulokat.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-module -Name PowerShellGet -MinimumVersion 2.2.3 -Force
Import-Module -Name PackageManagement -ErrorAction Stop

$savedModulesPath = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name Az -Path $savedModulesPath -Force -RequiredVersion 2.0.1
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.2.0

Azure Stack Hub 2102.

Az Azure Resource Manager vagy az Az modulokat is használhatja. Az Azure Resource Manager esetében tekintse meg a PowerShell AzureRM-modul telepítésével kapcsolatos utasításokat. Az alábbi kód a megbízható online adattárból https://www.powershellgallery.com/menti a modulokat.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-module -Name PowerShellGet -MinimumVersion 2.2.3 -Force
Import-Module -Name PackageManagement -ErrorAction Stop

$savedModulesPath = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name Az -Path $savedModulesPath -Force -RequiredVersion 2.0.1
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.1.1

Megjegyzés

Internetkapcsolattal nem rendelkező gépeken a következő parancsmag futtatását javasoljuk a telemetriai adatgyűjtés letiltására. A parancsmagok teljesítménycsökkenését tapasztalhatja a telemetriai adatgyűjtés letiltása nélkül. Ez csak az internetkapcsolattal nem rendelkező gépekre vonatkozik

Disable-AzDataCollection

Csomagok hozzáadása a munkaállomáshoz

  1. Másolja a letöltött csomagokat egy USB-eszközre.

  2. Jelentkezzen be a leválasztott munkaállomásra, és másolja a csomagokat az USB-eszközről a munkaállomás egy helyére.

  3. Manuálisan indítsa el a NuGet-szolgáltatót a leválasztott munkaállomáson. Útmutatásért tekintse meg a NuGet-szolgáltató manuális rendszerindítását egy olyan gépen, amely nem csatlakozik az internethez.

  4. Regisztrálja ezt a helyet alapértelmezett adattárként, és telepítse a AzureRMAzureStack modulokat ebből az adattárból:

 # requires -Version 5
 # requires -RunAsAdministrator
 # requires -Module PowerShellGet
 # requires -Module PackageManagement

 $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
 $RepoName = "MyNuGetSource"

 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

 Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted

 Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.2.0 -Scope AllUsers

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
 # requires -Version 5
 # requires -RunAsAdministrator
 # requires -Module PowerShellGet
 # requires -Module PackageManagement

 $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
 $RepoName = "MyNuGetSource"

 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

 Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted

 Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.1.1 -Scope AllUsers

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers

A PowerShell telepítésének megerősítése

Erősítse meg a telepítést a következő parancs futtatásával:

Get-Module -Name "Az*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable

6. A PowerShell konfigurálása proxykiszolgáló használatára

Azokban a forgatókönyvekben, amelyekben proxykiszolgálóra van szükség az internet eléréséhez, először konfigurálja a PowerShellt egy meglévő proxykiszolgáló használatára:

  1. Nyisson meg egy emelt szintű PowerShell-parancssort.

  2. Futtassa az alábbi parancsot:

    #To use Windows credentials for proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    
    #Alternatively, to prompt for separate credentials that can be used for #proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = Get-Credential
    

7. Az Az modul használata

A parancsmagokat és kódmintákat az Azure Resource Manager alapján használhatja. Azonban módosítania kell a modulok és parancsmagok nevét. A modulnevek úgy módosultak, hogy az AzureRM Azure és a parancsmagok esetében is ugyanaz legyen Az. Az AzureRM.Compute modul új neve például Az.Compute.A New-AzureRMVM New-AzVM lett, a Get-AzureStorageBlob pedig Get-AzStorageBlob.

Az AzurRM-szkript Az-be való áthelyezéséről és az Azure Stack Hub Az moduljának kompatibilitástörő változásairól részletesebben a Migrálás az AzureRM-ből az Azure PowerShell Az-be című témakörben olvashat.

Ismert problémák

Hiba történt az Az-modulok telepítésekor

  • Alkalmazható: Ez a probléma 2002-ben és későbbre vonatkozik
  • Ok: A modul telepítésekor hibaüzenet jelenik meg. Ekkor megkezdődik a hibaüzenet: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. Vagy a hibaüzenet a következő szöveget is tartalmazhatja: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Szervizelés: Futtassa a következő parancsmagot ugyanabban a munkamenetben:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Zárja be a munkamenetet, és indítson el egy új emelt szintű PowerShell-munkamenetet.
  • Előfordulás: Gyakori

Az Az modul telepítésekor tévesen Rendszergazda szükséges jogosultságokkal kapcsolatos hibaüzenet jelenik meg

  • Alkalmazható: Ez a probléma 2002-ben és későbbre vonatkozik
  • Ok: Ha emelt szintű parancssorból telepíti a modult, hibaüzenet jelenik meg. A hiba azt mondja: Administrator rights required.
  • Szervizelés: Zárja be a munkamenetet, és indítson el egy új emelt szintű PowerShell-munkamenetet. Győződjön meg arról, hogy nincs meglévő Az. A munkamenetbe betöltött fiókok modul.
  • Előfordulás: Gyakori

A 2020.09.01-i hibrid profil használatakor a parancsmag New-AzVmss meghiúsul

  • Alkalmazható: Ez a probléma a 2020-09-01-hibrid profilra vonatkozik.
  • Ok: A New-AzVmss parancsmag nem működik a 2020-09-01 hibrid profillal.
  • Szervizelés: Használjon sablont virtuálisgép-méretezési csoport létrehozásához. Az Azure Stack Hub Resource Manager sablonjainak mintáit az AzureStack-QuickStart-Templates/101-vmss-windows-vm gitHub-adattárban találja, és útmutatást talál az Azure Stack Hub erőforrás-kezelőinek a Visual Studio Code-tal való használatához.
  • Előfordulás: Gyakori

PowerShell-szkript futtatásakor megjelenő hiba

  • Alkalmazható: Ez a probléma 2002-ben és későbbre vonatkozik.

  • Ok: Ha szkripteket vagy PowerShell-parancsokat futtat az Azure Stack Hub adott moduljaival, a szkriptnek vagy a parancsnak elérhetőnek kell lennie a modulban. A következő hibaüzenet jelenhet meg:

    Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, 
    Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
    

    A jelenlegi modul a PowerShell Az modul, amely felváltotta a PowerShell AzureRM modult. Ha olyan szkriptet próbál futtatni, amely AzureRM-parancsokat hív meg az Az modul telepítésekor, a szkript hibákat jelez. Vagy ha olyan szkriptet próbál futtatni, amely meghívja az Az-parancsokat az AzureRM-modul telepítésekor, a szkript hibákat fog jelezni.

  • Szervizelés: Távolítsa el az AzureRM modult, és telepítse az Az modult. Útmutatásért lásd: Az Azure Stack Hubhoz készült PowerShell Az modul telepítése. Ha az Azure Stack Hub Toolst használja, használja az Az-eszközöket. Klónozza az eszközök adattárát az az ágból, vagy töltse le a AzureStack-Tools az az ágból. Útmutatásért lásd: Azure Stack Hub-eszközök letöltése a GitHubról

  • Előfordulás: Gyakori

Hiba New-AzADServicePrincipal és New-AzADApplication

  • Alkalmazható: Azure Stack-környezetek az Azure Active Directoryval (Azure AD).

  • Ok: Az Azure Active Directory Graph kompatibilitástörő változást vezetett be, amely korlátozza, hogy az IdentifierUri Active Directory-alkalmazások egy ellenőrzött tartomány altartományai legyenek a címtárban. A módosítás előtt ezt a korlátozást csak a több-bérlős alkalmazásokra kényszerítették. Ez a korlátozás mostantól az önálló bérlői alkalmazásokra is vonatkozik. A módosítás a következő hibát eredményezi: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Szervizelés: Ezt a korlátozást kétféleképpen megkerülheti.

    • Olyan szolgáltatásnévre van szüksége, amely a címtárbérlés altartománya. Ha például a könyvtár, contoso.onmicrosoft.coma szolgáltatásnév nevének a következő formában <foo>.contoso.onmicrosoft.comkell lennie: . Használja a következő parancsmagot:

      New-AzADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
      

      Az identitással és a szolgáltatásnevek Azure Stack Hubbal való használatával kapcsolatos további információkért tekintse meg az Azure Stack Hub identitásszolgáltatóinak áttekintését.

    • Hozza létre a Azure AD alkalmazást, amely érvényesIdentifierUri, majd hozza létre az alkalmazás társítását végző szolgáltatásnevet a következő parancsmag használatával:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Előfordulás: Gyakori

Hiba: "A SharedTokenCacheCredential hitelesítés sikertelen"

  • Alkalmazható: Ez a probléma az összes támogatott kiadásra vonatkozik.
  • Ok: A SharedTokenCacheCredential hitelesítés sikertelen volt , ha az AzAccounts több verziója telepítve van az Azure Stack Hub PowerShell-modul 2.1.1-es verziójával.
  • Szervizelés: Távolítsa el az AzAccounts összes verzióját, és csak a támogatott AzAccounts 2.2.8-es verzióját telepítse.
  • Előfordulás: Gyakori

Következő lépések