Összetevő-adattár hozzáadása egy laborhoz
Ez a cikk bemutatja, hogyan adhat hozzá összetevő-adattárat a laborhoz az Azure DevTest Labsban. Az összetevők virtuális gépekre (virtuális gépekre) telepíthető eszközök vagy alkalmazások. A GitHubról vagy az Azure Repos Git-adattárból betöltött JSON-fájlban definiálhat összetevőket.
A nyilvános DevTest Labs GitHub-összetevő-adattár számos gyakori összetevőt biztosít Windowshoz és Linuxhoz. A nyilvános adattárban lévő összetevők alapértelmezés szerint elérhetők a DevTest Labsban. További információ az összetevők virtuális gépekhez való hozzáadásáról: Összetevők hozzáadása a DevTest Labs virtuális gépekhez.
Létrehozhat olyan egyéni összetevőket is, amelyek nem érhetők el a nyilvános összetevők adattárában. Az egyéni összetevők létrehozásáról további információt az Egyéni összetevők létrehozása című témakörben talál. Hozzáadhatja az egyéni összetevőket a saját összetevő-adattárához, és hozzáadhatja az adattárat a laborhoz, hogy az összes laborfelhasználó használni tudja az összetevőket.
Ez a cikk bemutatja, hogyan adhat hozzá összetevő-adattárat a laborhoz az Azure Portal, az Azure Resource Management (ARM) sablon vagy az Azure PowerShell használatával. Azure PowerShell- vagy Azure CLI-szkripttel automatizálhatja az összetevő-adattár laborhoz való hozzáadását.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg Az Azure PowerShell telepítése témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Összetevő-adattár hozzáadása
Az összetevő-adattárat azure-adattárból vagy GitHub-adattárból is hozzáadhatja. A hitelesítést úgy választhatja ki, hogy engedélyeket rendel hozzá egy felügyelt identitáshoz, GitHub-alkalmazáshitelesítéssel vagy PAT használatával. A felügyelt identitásokról további információt az Azure-erőforrások felügyelt identitásai című témakörben talál .
Válassza ki a használni kívánt adattár és hitelesítés típusának lapját.
- Azure Repos-adattár MSI-vel
- Azure Repos-adattár PAT használatával
- GitHub-adattár DevCenter-alkalmazás
- GitHub-adattár PAT használatával
Összetevő-adattár hozzáadásához hajtsa végre a következő feladatokat:
- Engedélyek hozzárendelése az Azure-adattárakban a felügyelt identitáshoz.
- Adja hozzá az összetevő-adattárat.
Engedélyek hozzárendelése az Azure-adattárakban a felügyelt identitáshoz
Meg kell adnia a felügyelt identitás engedélyeit az Azure-adattár adattárának.
Jelentkezzen be az Azure DevOps-szervezetbe.
Feljegyzés
Az Azure DevOps-szervezetnek ugyanabban a könyvtárban kell lennie, mint a labort tartalmazó Azure-előfizetésnek.
Válassza a Szervezeti beállítások lehetőséget.
Az Áttekintés lapon válassza a Felhasználók lehetőséget.
A Felhasználók lapon válassza a Felhasználók hozzáadása lehetőséget.
Az alábbi adatok megadásával vagy kiválasztásával fejezze be az Új felhasználók hozzáadása elemet, majd válassza a Hozzáadás elemet:
Név szerint Érték Felhasználók vagy szolgáltatásnevek Adja meg a labor nevét.
Rendszer által hozzárendelt MSI használatakor adja meg a tesztkörnyezet nevét, nem pedig a felügyelt fiók objektumazonosítóját. Ha felhasználó által hozzárendelt MSI-t használ, használja a felügyelt fiók nevét.Hozzáférési szint Válassza az Alapszintű lehetőséget. Hozzáadás projektekhez Válassza ki az adattárat tartalmazó projektet. Azure DevOps-csoportok Válassza a Projektolvasók lehetőséget. E-mail-meghívások küldése (csak felhasználóknak) Törölje a jelet a jelölőnégyzetből.
Azure DevOps-összetevő-adattár hozzáadása egy laborhoz az Azure Portalon
A tesztkörnyezet Áttekintés lapján válassza a Konfiguráció és szabályzatok lehetőséget a bal oldali navigációs sávon.
A Konfiguráció és szabályzatok lapon válassza az Adattárak lehetőséget a bal oldali navigációs sáv Külső erőforrások területén.
Az Adattárak lapon a nyilvános összetevő-adattár automatikusan jelen van, és csatlakozik a DevTest Labs nyilvános GitHub-adattárhoz. Ha ez az adattár nincs engedélyezve a laborban, engedélyezheti azt a Nyilvános összetevők adattára melletti jelölőnégyzet bejelölésével, majd a felső menüsávOn az Engedélyezés gombra kattintva.
Ha hozzá szeretné adni az összetevő-adattárat a laborhoz, válassza a Hozzáadás lehetőséget a felső menüsávon.
Az Adattár panelen adja meg a következő adatokat:
- Név: A laborban használandó adattárnév.
- Git-klón URL-címe: A Git HTTPS-klón URL-címe az Azure-adattárakból.
- Ág (nem kötelező): Az az ág, amely az összetevődefiníciókkal rendelkezik.
- Mappa elérési útjai: Az ARM-sablondefiníciók mappája a Git-klón URL-címéhez viszonyítva. Ügyeljen arra, hogy a kezdeti perjelet belefoglalja a mappa elérési útjába.
- Felügyelt identitás: Ezzel a beállítással használhatja a felügyelt identitást a hitelesítéshez.
Válassza a Mentés lehetőséget.
Az adattár ekkor megjelenik a labor Adattárak listájában.
Összetevő-adattár hozzáadása ARM-sablonnal
Az ARM-sablonok olyan JSON-fájlok, amelyek leírják a létrehozandó Azure-erőforrásokat. Az ARM-sablonokról további információt az ARM-sablonok szerkezetének és szintaxisának ismertetése című témakörben talál.
Az alábbi ARM-sablon egy összetevő-adattárat ad hozzá egy laborhoz. A sablon akkor hozza létre a labort, ha még nem létezik.
Az ARM-sablon áttekintése
A mintasablon a következő adatokat gyűjti a paraméterekben. Egyes paraméterek alapértelmezettek, de az üzembe helyezési parancsnak meg kell adnia a tesztkörnyezet nevét, az összetevő-adattár URI-ját, az adattár típusát és az adattár személyes hozzáférési jogkivonatát.
- Labornév.
- Az összetevő-adattár megjelenítendő neve a DevTest Labsban. Az alapértelmezett érték
Team Repository
. - Az összetevő-adattár URI-ja, amelyet korábban másolt.
- Az összetevőket tartalmazó adattárág. Az alapértelmezett érték
main
. - Az összetevőket tartalmazó mappa neve. Az alapértelmezett érték a következő:
/Artifacts
. - Az adattár típusa. Az engedélyezett értékek az
VsoGit
Azure Repos vagyGitHub
a . - Személyes hozzáférési jogkivonat az adattárhoz, amelyet korábban másolt.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"labName": {
"type": "string"
},
"artifactRepositoryDisplayName": {
"type": "string",
"defaultValue": "Team Repository"
},
"artifactRepoUri": {
"type": "string"
},
"artifactRepoBranch": {
"type": "string",
"defaultValue": "main"
},
"artifactRepoFolder": {
"type": "string",
"defaultValue": "/Artifacts"
},
"artifactRepoType": {
"type": "string",
"allowedValues": ["VsoGit", "GitHub"]
},
"artifactRepoSecurityToken": {
"type": "securestring"
}
},
"variables": {
"artifactRepositoryName": "[concat('Repo-', uniqueString(subscription().subscriptionId))]"
},
"resources": [{
"apiVersion": "2016-05-15",
"type": "Microsoft.DevTestLab/labs",
"name": "[parameters('labName')]",
"location": "[resourceGroup().location]",
"resources": [
{
"apiVersion": "2016-05-15",
"name": "[variables('artifactRepositoryName')]",
"type": "artifactSources",
"dependsOn": [
"[resourceId('Microsoft.DevTestLab/labs', parameters('labName'))]"
],
"properties": {
"uri": "[parameters('artifactRepoUri')]",
"folderPath": "[parameters('artifactRepoFolder')]",
"branchRef": "[parameters('artifactRepoBranch')]",
"displayName": "[parameters('artifactRepositoryDisplayName')]",
"securityToken": "[parameters('artifactRepoSecurityToken')]",
"sourceType": "[parameters('artifactRepoType')]",
"status": "Enabled"
}
}
]
}
]
}
A sablon üzembe helyezése
Az Azure-erőforrások létrehozásához vagy frissítéséhez többféleképpen is üzembe helyezhet ARM-sablonokat. További információkért és utasításokért tekintse meg a következő cikkeket:
- Erőforrások üzembe helyezése ARM-sablonokkal és Azure PowerShell-lel
- Erőforrások üzembe helyezése ARM-sablonokkal és Azure CLI-vel
- Erőforrások üzembe helyezése ARM-sablonokkal az Azure Portalon
- Erőforrások üzembe helyezése ARM-sablonokkal és Resource Manager REST API-val
Ebben a példában helyezze üzembe a sablont az Azure PowerShell használatával.
Feljegyzés
A sablont üzembe helyező parancsmagok környezetfüggőek, ezért az aktuális bérlőt és előfizetést használják. Ha módosítania kell a környezetet, használja a Set-AzContext parancsot a sablon üzembe helyezése előtt
Hozzon létre egy erőforráscsoportot a New-AzResourceGroup használatával. Ha a használni kívánt erőforráscsoport már létezik, hagyja ki ezt a lépést.
New-AzResourceGroup -Name MyLabResourceGroup1 -Location westus
Hozzon létre egy üzembe helyezést az erőforráscsoportban a New-AzResourceGroupDeployment használatával. Több erőforrás-üzembe helyezést is elvégezhet ugyanahhoz az erőforráscsoporthoz. Ha többször is üzembe helyezi ugyanazt az erőforráscsoportot, győződjön meg arról, hogy az egyes üzembehelyezési nevek egyediek.
New-AzResourceGroupDeployment ` -Name MyLabResourceGroup-Deployment1 ` -ResourceGroupName MyLabResourceGroup1 ` -TemplateFile azuredeploy.json ` -TemplateParameterFile azuredeploy.parameters.json
A sikeres futtatás után New-AzResourceGroupDeployment
a kimenet olyan fontos információkat jelenít meg, mint a kiépítési állapot, amelynek meg kell lennie succeeded
, és a sablon kimenetei.
Összetevő-adattár hozzáadása az Azure PowerShell használatával
A következő PowerShell-példaszkript, a New-DevTestLabArtifactRepository.ps1 hozzáad egy összetevő-adattárat egy laborhoz. A teljes szkript részletes üzeneteket és megjegyzéseket tartalmaz.
<#
.SYNOPSIS
This script creates a new custom repository and adds it to an existing DevTest Lab.
.PARAMETER LabName
The name of the lab.
.PARAMETER LabResourceGroupName
The name of the resource group that contains the lab.
.PARAMETER ArtifactRepositoryName
Name for the new artifact repository. The script creates a random name for the repository if not specified.
.PARAMETER ArtifactRepositoryDisplayName
Display name for the artifact repository.
This name appears in the list of artifact repositories for a lab.
.PARAMETER RepositoryUri
Uri to the artifact repository.
.PARAMETER RepositoryBranch
Branch that contains the artifact files. Defaults to 'main'.
.PARAMETER FolderPath
Folder that contains the artifact files. Defaults to '/Artifacts'
.PARAMETER PersonalAccessToken
Personal access token for the GitHub or Azure Repos repository.
.PARAMETER SourceType
Whether the artifact repository is a VSOGit (Azure Repos) or GitHub repository.
.EXAMPLE
Set-AzContext -SubscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.\New-DevTestLabArtifactRepository.ps1 -LabName "mydevtestlab" -LabResourceGroupName "mydtlrg" -ArtifactRepositoryName "MyTeam Repository" -RepositoryUri "https://github.com/<myteam>/<nameofrepo>.git" -PersonalAccessToken "1111...." -SourceType "GitHub"
.NOTES
The script uses the current Azure context. To set the context, use Set-AzContext.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
$LabName,
[Parameter(Mandatory=$true)]
$LabResourceGroupName,
$ArtifactRepositoryName,
$ArtifactRepositoryDisplayName = 'Team Artifact Repository',
[Parameter(Mandatory=$true)]
$RepositoryUri,
$RepositoryBranch = 'main',
$FolderPath = '/Artifacts',
[Parameter(Mandatory=$true)]
$PersonalAccessToken ,
[Parameter(Mandatory=$true)]
[ValidateSet('VsoGit', 'GitHub')]
$SourceType
)
# Set artifact repository internal name if not specified.
if ($ArtifactRepositoryName -eq $null){
$ArtifactRepositoryName = "PrivateRepo" + (Get-Random -Maximum 999)
}
# Sign in to Azure.
Connect-AzAccount
#Get Lab Resource.
$LabResource = Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' -ResourceName $LabName -ResourceGroupName $LabResourceGroupName
Write-Verbose "Lab Name: $($LabResource.Name)"
Write-Verbose "Lab Resource Group Name: $($LabResource.ResourceGroupName)"
Write-Verbose "Lab Resource Location: $($LabResource.Location)"
Write-Verbose "Artifact Repository Internal Name: $ArtifactRepositoryName"
#Prepare properties object for the call to New-AzResource.
$propertiesObject = @{
uri = $RepositoryUri;
folderPath = $FolderPath;
branchRef = $RepositoryBranch;
displayName = $ArtifactRepositoryDisplayName;
securityToken = $PersonalAccessToken;
sourceType = $SourceType;
status = 'Enabled'
}
Write-Verbose "Properties to be passed to New-AzResource:$($propertiesObject | Out-String)"
#Add resource to the current subscription.
$resourcetype = 'Microsoft.DevTestLab/labs/artifactSources'
$resourceName = $LabName + '/' + $ArtifactRepositoryName
Write-Verbose "Az ResourceType: $resourcetype"
Write-Verbose "Az ResourceName: $resourceName"
Write-Verbose "Creating artifact repository '$ArtifactRepositoryDisplayName'..."
$result = New-AzResource -Location $LabResource.Location -ResourceGroupName $LabResource.ResourceGroupName -properties $propertiesObject -ResourceType $resourcetype -ResourceName $resourceName -ApiVersion 2016-05-15 -Force
#Alternate implementation:
# Use resourceId rather than resourcetype and resourcename parameters.
# Using resourceId lets you specify the $SubscriptionId rather than using the
# subscription id of Get-AzContext.
#$resourceId = "/subscriptions/$SubscriptionId/resourceGroups/$($LabResource.ResourceGroupName)/providers/Microsoft.DevTestLab/labs/$LabName/artifactSources/$ArtifactRepositoryName"
#$result = New-AzResource -properties $propertiesObject -ResourceId $resourceId -ApiVersion 2016-05-15 -Force
# Check the result.
if ($result.Properties.ProvisioningState -eq "Succeeded") {
Write-Verbose ("Successfully added artifact repository source '$ArtifactRepositoryDisplayName'")
}
else {
Write-Error ("Error adding artifact repository source '$ArtifactRepositoryDisplayName'")
}
#Return the newly created resource to use in later scripts.
return $result
Paraméterek
A PowerShell-szkript a következő paramétereket használja:
Paraméter | Leírás |
---|---|
LabName |
A labor neve. |
ArtifactRepositoryName |
Az új összetevő-adattár neve. A szkript véletlenszerű nevet hoz létre az adattár számára, ha nincs megadva. |
ArtifactRepositoryDisplayName |
Megjelenítendő név, amely megjelenik a labor összetevő-adattárának listájában. |
RepositoryUri |
Az összetevő-adattár URI-ja, amelyet korábban másolt. |
RepositoryBranch |
Az összetevőket tartalmazó adattárág. Az alapértelmezett érték main . |
FolderPath |
Az összetevőket tartalmazó mappa. Az alapértelmezett érték a következő: /Artifacts . |
PersonalAccessToken |
Biztonsági jogkivonat a korábban másolt adattár eléréséhez. |
SourceType |
Azt, hogy az összetevő-adattár VSOGit (Azure-adattár) vagy GitHub-adattár-e. |
Az adattárnak egy belső névre van szüksége az azonosításhoz, amely eltér az Azure Portal megjelenítendő nevéétől. Az Azure Portal használatakor nem látja a belső nevet, de az Azure REST API-k vagy az Azure PowerShell használatakor is megjelenik. A szkript véletlenszerű nevet hoz létre, ha az üzembe helyezési parancs nem ad meg egyet.
#Set artifact repository name, if not set by user
if ($ArtifactRepositoryName -eq $null){
$ArtifactRepositoryName = "PrivateRepo" + (Get-Random -Maximum 999)
}
PowerShell-parancsok
A szkript a következő PowerShell-parancsokat használja:
Parancs | Jegyzetek |
---|---|
Get-AzResource | Lekéri a labor adatait, például a helyét. Az összetevő-adattár forrását ugyanabban a helyen és ugyanabban az erőforráscsoportban hozza létre, mint a labor. |
New-AzResource | Hozzáadja az Azure-erőforrást. Az összetevő-adattárak hozzáadásához nincs külön parancs. Ennek a parancsmagnak vagy a párnak vagy ResourceType ResourceName a ResourceId párnak ismernie kell a létrehozandó erőforrás típusát. Az aktuális szkript a és ResourceType a ResourceName párot használja. |
Az erőforrásnév és az erőforrástípus információinak felderítésére jó módszer az Azure REST API Browser webhelyének használata. A DevTest Labs összetevőforrásai REST API-kat mutatnak a DevTest Labs-összetevőforrások létrehozásához és kezeléséhez. Az aktuális szkript a következő erőforrás-azonosítót használja:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}
Az erőforrástípus az URI után providers
minden, a szögletes zárójelben lévő elemek kivételével. Az erőforrás neve minden, ami a kapcsos zárójelekben szerepel. Ha egynél több elemet használ az erőforrásnévhez, minden elemet különítse el perjellel:
$resourcetype = 'Microsoft.DevTestLab/labs/artifactSources'
$resourceName = $LabName + '/' + $ArtifactRepositoryName
A PowerShell-parancsprogram futtatása
Futtassa a PowerShell-szkriptet, és helyettesítse a saját értékeit a példaértékekhez a következőben LabName
: , LabResourceGroupName
, ArtifactRepositoryName
, RepositoryUri
, PersonalAccessToken
és SourceType
:
Set-AzContext -SubscriptionId <Your Azure subscription ID>
.\New-DevTestLabArtifactRepository.ps1 -LabName "mydevtestlab" -LabResourceGroupName "mydtlrg" -ArtifactRepositoryName "myteamrepository" -RepositoryUri "https://github.com/myteam/myteamrepository.git" - "1111...." -SourceType "GitHub"