Megosztás a következőn keresztül:


Virtuális gépek üzembe helyezése az Azure Stack Edge Pro GPU-eszközön az Azure CLI és a Python használatával

A következőkre vonatkozik: Igen a Pro GPU termékváltozatáhozAzure Stack Edge Pro – GPUIgen a Pro 2 termékváltozathozAzure Stack Edge Pro 2Igen a Pro R termékváltozathozAzure Stack Edge Pro RIgen a Mini R termékváltozathozAzure Stack Edge Mini R

Az Azure Stack Edge-eszközökön API-kkal hozhat létre és felügyelhet virtuális gépeket (VM-eket). Ezek az API-k a helyi Azure Stack Edge-végpont használatával hívott szabványos Azure Resource Manager API-k. Az Azure Resource Manager API-k konzisztens felügyeleti réteget biztosítanak, amely ebben az esetben virtuális gépek létrehozását, frissítését és törlését teszi lehetővé az eszközön lévő helyi előfizetésben. Azure PowerShell-parancsmagokkal csatlakozhat az Azure Stack Edge-en futó Azure Resource Managerhez.

Ez az oktatóanyag bemutatja, hogyan hozhat létre és kezelhet virtuális gépeket az Azure Stack Edge Pro-eszközön a Python és az Azure API használatával.

Virtuális gép üzembehelyezési munkafolyamata

Az üzembe helyezési munkafolyamatot az alábbi diagram szemlélteti.

Virtuális gép üzembehelyezési munkafolyamata

Az üzembe helyezési munkafolyamat magas szintű összefoglalása a következő:

  1. Csatlakozás az Azure Resource Managerhez
  2. Erőforráscsoport létrehozása
  3. Tárfiók létrehozása
  4. Blob URI hozzáadása gazdagépfájlhoz
  5. Tanúsítványok telepítése
  6. VHD feltöltése
  7. Felügyelt lemezek létrehozása a VHD-ből
  8. Virtuálisgép-rendszerkép létrehozása a rendszerkép által felügyelt lemezről
  9. Virtuális gép létrehozása korábban létrehozott erőforrásokkal
  10. Virtuális hálózat létrehozása
  11. Virtuális hálózati adapter létrehozása a virtuális hálózat alhálózat-azonosítójával

A munkafolyamat-diagram részletes ismertetését lásd : Virtuális gépek üzembe helyezése az Azure Stack Edge Pro-eszközön az Azure PowerShell használatával. Az Azure Resource Managerhez való csatlakozásról további információt a Csatlakozás az Azure Resource Managerhez az Azure PowerShell használatával című témakörben talál.

Előfeltételek

Mielőtt elkezdené létrehozni és felügyelni egy virtuális gépet az Azure Stack Edge Pro-eszközön az Azure CLI és a Python használatával, meg kell győződnie arról, hogy teljesítette az alábbi lépésekben felsorolt előfeltételeket:

  1. Az Azure Stack Edge Pro-eszköz hálózati beállításait az 1. lépésben leírtak szerint végezte el: Az Azure Stack Edge Pro-eszköz konfigurálása.

  2. Engedélyezte a hálózati adaptert a számításhoz. Ez a hálózati adapter IP-címe virtuális kapcsoló létrehozásához használható a virtuális gép üzembe helyezéséhez. A következő lépések végigvezetik a folyamaton:

    1. Nyissa meg a Computet. Válassza ki a virtuális kapcsoló létrehozásához használni kívánt hálózati adaptert.

      Fontos

      A számításhoz csak egy portot konfigurálhat.

    2. Engedélyezze a számítást a hálózati adapteren. Az Azure Stack Edge Pro létrehoz és kezel egy, a hálózati adapternek megfelelő virtuális kapcsolót.

  3. Létrehozta és telepítette az összes tanúsítványt az Azure Stack Edge Pro-eszközön és az ügyfél megbízható tárolójában. Kövesse a 2. lépésben leírt eljárást: Tanúsítványok létrehozása és telepítése.

  4. Létrehozott egy Base-64 kódolású .cer tanúsítványt (PEM formátum) az Azure Stack Edge Pro-eszközhöz. Ez a tanúsítvány már fel van töltve aláírási láncként az eszközön, és telepítve van az ügyfél megbízható gyökértárolójában. Ez a tanúsítvány pem formátumban is szükséges ahhoz, hogy a Python működjön ezen az ügyfélen.

    Konvertálja ezt a tanúsítványt formátummá pem a certutil paranccsal. Ezt a parancsot a tanúsítványt tartalmazó könyvtárban kell futtatnia.

    certutil.exe <SourceCertificateName.cer> <DestinationCertificateName.pem>
    

    A következő példaparancsok használatát mutatja be:

    PS C:\Certificates> certutil.exe -encode aze-root.cer aze-root.pem
    Input Length = 2150
    Output Length = 3014
    CertUtil: -encode command completed successfully.
    PS C:\Certificates>
    

    Ezt pem később is hozzáadja a Python-tárolóhoz.

  5. Az eszköz IP-címét a hálózati lapon, az eszköz helyi webes felhasználói felületén rendelte hozzá. Adja hozzá ezt az IP-címet a következőhöz:

    • Az ügyfél gazdagépfájlja, VAGY,
    • A DNS-kiszolgáló konfigurációja

    Fontos

    Javasoljuk, hogy módosítsa a DNS-kiszolgáló konfigurációját a végpontnévfeloldáshoz.

    1. Indítsa el a Jegyzettömbet rendszergazdaként (a fájl mentéséhez rendszergazdai jogosultságokra van szükség), majd nyissa meg a következő helyen található gazdagépfájltC:\Windows\System32\Drivers\etc: .

      A Windows Explorer gazdagépfájlja

    2. Adja hozzá a következő bejegyzéseket a gazdagépfájlhoz, és cserélje le az eszköz megfelelő értékeit:

      <Device IP> login.<appliance name>.<DNS domain>
      <Device IP> management.<appliance name>.<DNS domain>
      <Device IP> <storage name>.blob.<appliance name>.<DNS domain>
      
    3. Referenciaként használja az alábbi képet. Mentse a gazdagépfájlt .

      gazdagépfájl a Jegyzettömbben

  6. Töltse le az eljárás során használt Python-szkriptet .

  7. A környezet előkészítése az Azure CLI-re:

1. lépés: Az Azure CLI/Python beállítása az ügyfélen

Profil ellenőrzése és az Azure CLI telepítése

  1. Telepítse az Azure CLI-t az ügyfélre. Ebben a példában az Azure CLI 2.0.80 lett telepítve. Az Azure CLI verziójának ellenőrzéséhez futtassa az az --version parancsot.

    A fenti parancs mintakimenete a következő:

    PS C:\windows\system32> az --version
    azure-cli                         2.0.80
    
    command-modules-nspkg              2.0.3
    core                              2.0.80
    nspkg                              3.0.4
    telemetry                          1.0.4
    Extensions:
    azure-cli-iot-ext                  0.7.1
    
    Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe'
    Extensions directory 'C:\.azure\cliextensions'
    
    Python (Windows) 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)]
    
    Legal docs and information: aka.ms/AzureCliLegal
    
    Your CLI is up-to-date.
    
    Please let us know how we are doing: https://aka.ms/clihats
    PS C:\windows\system32>
    

    Ha nem rendelkezik Azure CLI-vel, töltse le és telepítse az Azure CLI-t Windows rendszeren. Az Azure CLI a Windows parancssori felületén vagy a Windows PowerShellen keresztül futtatható.

  2. Jegyezze fel a parancssori felület Python-helyét. Az Azure CLI megbízható főtanúsítvány-tárolójának helyének meghatározásához szüksége van a Python-helyre.

  3. A cikkben használt példaszkript futtatásához a következő Python-kódtár-verziókra lesz szüksége:

    azure-common==1.1.23
    azure-mgmt-resource==2.1.0
    azure-mgmt-network==2.7.0
    azure-mgmt-compute==5.0.0
    azure-mgmt-storage==1.5.0
    azure-storage-blob==1.2.0rc1
    haikunator
    msrestazure==0.6.2
    

    A verziók telepítéséhez futtassa a következő parancsot:

    .\python.exe -m pip install haikunator
    

    Az alábbi mintakimenet a Haikunator telepítését mutatja be:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python.exe -m pip install haikunator
    
    Collecting haikunator
      Downloading https://files.pythonhosted.org/packages/43/fa/130968f1a1bb1461c287b9ff35c630460801783243acda2cbf3a4c5964a5/haikunator-2.1.0-py2.py3-none-any.whl
    
    Installing collected packages: haikunator
    Successfully installed haikunator-2.1.0
    You are using pip version 10.0.1, however version 20.0.1 is available.
    You should consider upgrading using the 'python -m pip install --upgrade pip' command.
    
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> 
    

    Az alábbi mintakimenet a pip telepítését mutatja be a következőhöz msrestazure:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python.exe -m pip install msrestazure==0.6.2
    Requirement already satisfied: msrestazure==0.6.2 in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (0.6.2)
    Requirement already satisfied: msrest<2.0.0,>=0.6.0 in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (from msrestazure==0.6.2) (0.6.10)
    === CUT ===========================  CUT ==================================
    Requirement already satisfied: cffi!=1.11.3,>=1.8 in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (from cryptography>=1.1.0->adal<2.0.0,>=0.6.0->msrestazure==0.6.2) (1.13.2)
    Requirement already satisfied: pycparser in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography>=1.1.0->adal<2.0.0,>=0.6.0->msrestazure==0.6.2) (2.18)
    You are using pip version 10.0.1, however version 20.0.1 is available.
    You should consider upgrading using the 'python -m pip install --upgrade pip' command.
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
    

Az Azure Stack Edge Pro hitelesítésszolgáltató főtanúsítványának megbízhatósága

  1. Keresse meg a tanúsítvány helyét a számítógépen. A hely a telepítés az clihelyétől függően változhat. Futtassa rendszergazdaként a Windows PowerShellt. Váltson arra az elérési útra, ahol az cli a telepített Python: C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe.

    A tanúsítvány helyének lekéréséhez írja be a következő parancsot:

    .\python -c "import certifi; print(certifi.where())"
    

    A parancsmag visszaadja a tanúsítvány helyét az alábbiak szerint:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python -c "import certifi; print(certifi.where())"
    C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\certifi\cacert.pem
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
    

    Jegyezze fel ezt a helyet, ahogy később használni fogja – C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\certifi\cacert.pem

  2. Az Azure Stack Edge Pro CA főtanúsítványának megbízhatóságához fűzze hozzá a meglévő Python-tanúsítványhoz. Megadja a PEM-tanúsítvány korábbi mentési helyét.

    $pemFile = "<Path to the pem format certificate>"
    

    Példa elérési út: "C:\VM-scripts\rootteam3device.pem"

    Ezután írja be a következő parancssorozatot a Windows PowerShellbe:

    $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
        $root.Import($pemFile)
    
    Write-Host "Extracting required information from the cert file"
    $md5Hash    = (Get-FileHash -Path $pemFile -Algorithm MD5).Hash.ToLower()
    $sha1Hash   = (Get-FileHash -Path $pemFile -Algorithm SHA1).Hash.ToLower()
    $sha256Hash = (Get-FileHash -Path $pemFile -Algorithm SHA256).Hash.ToLower()
    
    $issuerEntry  = [string]::Format("# Issuer: {0}", $root.Issuer)
    $subjectEntry = [string]::Format("# Subject: {0}", $root.Subject)
    $labelEntry   = [string]::Format("# Label: {0}", $root.Subject.Split('=')[-1])
    $serialEntry  = [string]::Format("# Serial: {0}", $root.GetSerialNumberString().ToLower())
    $md5Entry = [string]::Format("# MD5 Fingerprint: {0}", $md5Hash)
    $sha1Entry= [string]::Format("# SHA1 Fingerprint: {0}", $sha1Hash)
    $sha256Entry  = [string]::Format("# SHA256 Fingerprint: {0}", $sha256Hash)
    $certText = (Get-Content -Path $pemFile -Raw).ToString().Replace("`r`n","`n")
    
    $rootCertEntry = "`n" + $issuerEntry + "`n" + $subjectEntry + "`n" + $labelEntry + "`n" + `
    $serialEntry + "`n" + $md5Entry + "`n" + $sha1Entry + "`n" + $sha256Entry + "`n" + $certText
    
    Write-Host "Adding the certificate content to Python Cert store"
    Add-Content "${env:ProgramFiles(x86)}\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem" $rootCertEntry
    
    Write-Host "Python Cert store was updated to allow the Azure Stack Edge Pro CA root certificate"
    

Csatlakozás az Azure Stack Edge Pro-hoz

  1. Regisztrálja az Azure Stack Edge Pro-környezetet az az cloud register parancs futtatásával.

    Bizonyos esetekben a közvetlen kimenő internetkapcsolat proxyn vagy tűzfalon keresztül történik, amely az SSL-lehallgatást kényszeríti ki. Ezekben az esetekben a az cloud register parancs egy olyan hibával hiúsulhat meg, mint a "Nem lehet végpontokat lekérni a felhőből". A hiba megkerüléséhez állítsa be a következő környezeti változókat a Windows PowerShellben:

    $ENV:AZURE_CLI_DISABLE_CONNECTION_VERIFICATION = 1 
    $ENV:ADAL_PYTHON_SSL_NO_VERIFY = 1
    
  2. Állítsa be az Azure Resource Manager-végpont szkriptjének környezeti változóit, az erőforrások létrehozásának helyét és a forrás VHD helyének elérési útját. Az erőforrások helye az összes Azure Stack Edge Pro-eszközön rögzítve van, és a következőre dbelocalvan állítva: . Meg kell adnia a címelőtagokat és a privát IP-címet is. Az alábbi környezeti változók az értékeken alapuló értékek, kivéve AZURE_RESOURCE_LOCATIONazokat, amelyekhez keményen kell kódolni "dbelocal".

    $ENV:ARM_ENDPOINT = "https://management.team3device.teatraining1.com"
    $ENV:AZURE_RESOURCE_LOCATION = "dbelocal"
    $ENV:VHD_FILE_PATH = "C:\Downloads\Ubuntu1604\Ubuntu13.vhd"
    $ENV:ADDRESS_PREFIXES = "5.5.0.0/16"
    $ENV:PRIVATE_IP_ADDRESS = "5.5.174.126"
    
  3. A környezet regisztrálása. Az az cloud register futtatásakor használja a következő paramétereket:

    Érték Leírás Példa
    Környezet neve Annak a környezetnek a neve, amelyhez csatlakozni próbál Adjon meg egy nevet, például: aze-environ
    Resource Manager-végpont Ez az URL-cím.https://Management.<appliancename><dnsdomain>
    Ennek az URL-címnek a lekéréséhez nyissa meg az eszköz helyi webes felhasználói felületén található Eszközök lapot.
    Például: https://management.team3device.teatraining1.com.
    az cloud register -n <environmentname> --endpoint-resource-manager "https://management.<appliance name>.<DNS domain>"
    

    Az alábbiakban a fenti parancs mintahasználata látható:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az cloud register -n az-new-env --endpoint-resource-manager "https://management.team3device.teatraining1.com"
    
  4. Állítsa be az aktív környezetet a következő paranccsal:

    az cloud set -n <EnvironmentName>
    

    Az alábbiakban a fenti parancs mintahasználata látható:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az cloud set -n az-new-env
    Switched active cloud to 'az-new-env'.
    Use 'az login' to log in to this cloud.
    Use 'az account set' to set the active subscription.
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
    
  5. Jelentkezzen be az Azure Stack Edge Pro-környezetbe az az login paranccsal. Az Azure Stack Edge Pro-környezetbe felhasználóként vagy szolgáltatásnévként is bejelentkezhet.

    Felhasználóként való bejelentkezéshez kövesse az alábbi lépéseket:

    Megadhatja a felhasználónevet és a jelszót közvetlenül a az login parancson belül, vagy hitelesítheti a böngészőt. Az utóbbit akkor kell elvégeznie, ha a fiókjában engedélyezve van a többtényezős hitelesítés.

    Az alábbiakban a következő mintahasználat látható az login:

    PS C:\Certificates> az login -u EdgeARMuser
    

    A bejelentkezési parancs használata után a rendszer jelszót kér. Adja meg az Azure Resource Manager jelszavát.

    Az alábbiak a jelszó megadása után sikeres bejelentkezés mintakimenetét mutatják be:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az login -u EdgeARMuser
    Password:
    [
         {
             "cloudName": "az-new-env",
             "id": "A4257FDE-B946-4E01-ADE7-674760B8D1A3",
             "isDefault": true,
             "name": "Default Provider Subscription",
             "state": "Enabled",
             "tenantId": "c0257de7-538f-415c-993a-1b87a031879d",
             "user": {
                 "name": "EdgeArmUser@localhost",
                 "type": "user"
             }
         }
    ]
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
    

    Jegyezze fel az értékeket, tenantId mivel ezek az id értékek megfelelnek az Azure Resource Manager-előfizetés azonosítójának és az Azure Resource Manager-bérlőazonosítónak, és a későbbi lépésben lesznek használatban.

    A következő környezeti változókat szolgáltatásnévként kell beállítani:

    $ENV:ARM_TENANT_ID = "c0257de7-538f-415c-993a-1b87a031879d"
    $ENV:ARM_CLIENT_ID = "cbd868c5-7207-431f-8d16-1cb144b50971"
    $ENV:ARM_CLIENT_SECRET - "<Your Azure Resource Manager password>"
    $ENV:ARM_SUBSCRIPTION_ID = "<Your subscription ID>"
    

    Az Azure Resource Manager-ügyfélazonosítója kódolt. Az Azure Resource Manager-bérlőazonosító és az Azure Resource Manager-előfizetés azonosítója egyaránt megtalálható a az login korábban futtatott parancs kimenetében. Az Azure Resource Manager ügyfélkódja a beállított Azure Resource Manager-jelszó.

    További információ: Azure Resource Manager-jelszó.

  6. Módosítsa a profilt a 2019-03-01-hybrid verzióra. A profilverzió módosításához futtassa a következő parancsot:

    az cloud update --profile 2019-03-01-hybrid
    

    Az alábbiakban a következő mintahasználat látható az cloud update:

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az cloud update --profile 2019-03-01-hybrid
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
    

2. lépés: Virtuális gép létrehozása

A rendszer egy Python-szkriptet biztosít a virtuális gép létrehozásához. Attól függően, hogy felhasználóként van-e bejelentkezve, vagy szolgáltatásnévként van beállítva, a szkript ennek megfelelően veszi a bemenetet, és létrehoz egy virtuális gépet.

  1. Futtassa a Python-szkriptet ugyanabból a könyvtárból, ahol a Python telepítve van.
.\python.exe example_dbe_arguments_name_https.py cli
  1. A szkript futtatásakor a VHD feltöltése 20–30 percet vesz igénybe. A feltöltési művelet előrehaladásának megtekintéséhez használhatja az Azure Storage Explorert vagy az AzCopyt.

    Íme egy példa a szkript sikeres futtatásának kimenetére. A szkript létrehozza az összes erőforrást egy erőforráscsoporton belül, ezeket az erőforrásokat használja egy virtuális gép létrehozásához, és végül törli az erőforráscsoportot, beleértve az összes létrehozott erőforrást is.

    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python.exe example_dbe_arguments_name_https.py cli
    
    Create Resource Group
    Create a storage account
    Uploading to Azure Stack Storage as blob:
            ubuntu13.vhd
    
    Listing blobs...
            ubuntu13.vhd
    
    VM image resource id:
                /subscriptions/.../resourceGroups/azure-sample-group-virtual-machines118/providers/Microsoft.Compute/images/UbuntuImage
    
    Create Vnet
    Create Subnet
    Create NIC
    Creating Linux Virtual Machine
    Tag Virtual Machine
    Create (empty) managed Data Disk
    Get Virtual Machine by Name
    Attach Data Disk
    Detach Data Disk
    Deallocating the VM (to prepare for a disk resize)
    Update OS disk size
    Start VM
    Restart VM
    Stop VM
    
    List VMs in subscription
            VM: VmName118
    
    List VMs in resource group
            VM: VmName118
    
    Delete VM
    All example operations completed successfully!
    
    Delete Resource Group
    Deleted: azure-sample-group-virtual-machines118
    PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
    

Következő lépések

Linux rendszerű virtuális gépek általános CLI-parancsai