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: Azure Stack Edge Pro – GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure 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.
Az üzembe helyezési munkafolyamat magas szintű összefoglalása a következő:
- Csatlakozás az Azure Resource Managerhez
- Erőforráscsoport létrehozása
- Tárfiók létrehozása
- Blob URI hozzáadása gazdagépfájlhoz
- Tanúsítványok telepítése
- VHD feltöltése
- Felügyelt lemezek létrehozása a VHD-ből
- Virtuálisgép-rendszerkép létrehozása a rendszerkép által felügyelt lemezről
- Virtuális gép létrehozása korábban létrehozott erőforrásokkal
- Virtuális hálózat létrehozása
- 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:
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.
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:
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.
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.
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.
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.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.
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ájlt
C:\Windows\System32\Drivers\etc
: .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>
Referenciaként használja az alábbi képet. Mentse a gazdagépfájlt .
A környezet előkészítése az Azure CLI-re:
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
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
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ó.
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.
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
Keresse meg a tanúsítvány helyét a számítógépen. A hely a telepítés
az cli
helyétől függően változhat. Futtassa rendszergazdaként a Windows PowerShellt. Váltson arra az elérési útra, aholaz 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
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
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
Á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
dbelocal
van á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éveAZURE_RESOURCE_LOCATION
azokat, 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"
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"
Á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>
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 azid
é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ó.
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.
- 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
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: