Összetevők hozzáadása a DevTest Labs virtuális gépekhez
Ez a cikk azt ismerteti, hogyan adhat hozzá összetevőket az Azure DevTest Labs virtuális gépekhez. Az összetevők megadják a virtuális gép kiépítéséhez szükséges műveleteket, például Windows PowerShell-szkriptek futtatását, Bash-parancsok futtatását vagy szoftverek telepítését. Paraméterek használatával testre szabhatja az összetevőket a saját igényeinek megfelelően.
A DevTest Labs-összetevők a nyilvános DevTest Labs Git-adattárból vagy privát Git-adattárakból származhatnak. Ha saját egyéni összetevőket szeretne létrehozni, és tárolni szeretné őket egy adattárban, olvassa el az Egyéni összetevők létrehozása című témakört. Ha hozzá szeretné adni az összetevő-adattárat egy tesztkörnyezethez, hogy a tesztkörnyezet felhasználói hozzáférhessenek az egyéni összetevőkhöz, olvassa el az Összetevő-adattár hozzáadása a laborhoz című témakört.
A DevTest Labs-tesztkörnyezet tulajdonosai megadhatják a létrehozáskor az összes tesztkörnyezeti virtuális gépen telepíteni kívánt kötelező összetevőket. További információ: Kötelező összetevők megadása a DevTest Labs virtuális gépekhez.
A virtuális gép létrehozásakor nem módosíthatja vagy távolíthatja el a kötelező összetevőket, de bármilyen elérhető egyéni összetevőt hozzáadhat. Ez a cikk azt ismerteti, hogyan adhat hozzá elérhető összetevőket a virtuális gépekhez az Azure Portal vagy az Azure PowerShell használatával.
Összetevők hozzáadása virtuális gépekhez az Azure Portalról
A virtuális gép létrehozása során összetevőket adhat hozzá, vagy hozzáadhat összetevőket a meglévő tesztkörnyezeti virtuális gépekhez.
Összetevők hozzáadása a virtuális gép létrehozása során:
A labor kezdőlapján válassza a Hozzáadás lehetőséget.
Az Alaplap kiválasztása lapon válassza ki a kívánt virtuális gép típusát.
A Laborerőforrás létrehozása képernyőn válassza az Összetevők hozzáadása vagy eltávolítása lehetőséget.
Az Összetevők hozzáadása lapon válassza a virtuális géphez hozzáadni kívánt összetevők melletti nyilat.
Minden Összetevő hozzáadása panelen adja meg a szükséges és nem kötelező paraméterértékeket, majd kattintson az OK gombra. Az összetevő a Kijelölt összetevők területen jelenik meg, és a konfigurált összetevők száma frissül.
A hozzáadásuk után módosíthatja az összetevőket.
- Alapértelmezés szerint az összetevők a hozzáadásuk sorrendjében telepítenek. A sorrend átrendezéséhez jelölje ki a három pontot ... az összetevő mellett a Kijelölt összetevők listában, majd válassza az Áthelyezés felfelé, Lefelé, Ugrás fentre vagy Ugrás lefelé lehetőséget.
- Az összetevő paramétereinek szerkesztéséhez válassza a Szerkesztés lehetőséget az Összetevő hozzáadása panel újbóli megnyitásához.
- Ha törölni szeretné az összetevőt a Kijelölt összetevők listájából, válassza a Törlés lehetőséget.
Ha végzett az összetevők hozzáadásával és rendezésével, válassza az OK gombot.
A laborerőforrás létrehozása képernyő a hozzáadott összetevők számát jeleníti meg. A virtuális gép létrehozása előtt az összetevők hozzáadásához, szerkesztéséhez, átrendezéséhez vagy törléséhez válassza ismét az Összetevők hozzáadása vagy eltávolítása lehetőséget.
A virtuális gép létrehozása után a telepített összetevők megjelennek a virtuális gép Összetevők lapján. Az egyes összetevők telepítésének részleteinek megtekintéséhez válassza ki az összetevő nevét.
Összetevők telepítése meglévő virtuális gépre:
A tesztkörnyezet kezdőlapján válassza ki a virtuális gépet a Saját virtuális gépek listából.
A virtuális gép lapján válassza az Összetevők elemet a felső menüsávon vagy a bal oldali navigációs sávon.
Az Összetevők lapon válassza az Összetevők alkalmazása lehetőséget.
Az Összetevők hozzáadása lapon válassza ki és konfigurálja az összetevőket ugyanúgy, mint egy új virtuális gép esetében.
Ha befejezte az összetevők hozzáadását, válassza a Telepítés lehetőséget. Az összetevők azonnal települnek a virtuális gépre.
Összetevők hozzáadása virtuális gépekhez az Azure PowerShell használatával
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető 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.
Az alábbi PowerShell-szkript az Invoke-AzResourceAction parancsmaggal alkalmaz egy összetevőt egy virtuális gépre.
#Requires -Module Az.Resources
param
(
[Parameter(Mandatory=$true, HelpMessage="The ID of the subscription that contains the lab")]
[string] $SubscriptionId,
[Parameter(Mandatory=$true, HelpMessage="The name of the lab that has the VM")]
[string] $DevTestLabName,
[Parameter(Mandatory=$true, HelpMessage="The name of the VM")]
[string] $VirtualMachineName,
[Parameter(Mandatory=$true, HelpMessage="The repository where the artifact is stored")]
[string] $RepositoryName,
[Parameter(Mandatory=$true, HelpMessage="The artifact to apply to the VM")]
[string] $ArtifactName,
[Parameter(ValueFromRemainingArguments=$true)]
$Params
)
# Set the appropriate subscription
Set-AzContext -SubscriptionId $SubscriptionId | Out-Null
# Get the lab resource group name
$resourceGroupName = (Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' | Where-Object { $_.Name -eq $DevTestLabName}).ResourceGroupName
if ($resourceGroupName -eq $null) { throw "Unable to find lab $DevTestLabName in subscription $SubscriptionId." }
# Get the internal repository name
$repository = Get-AzResource -ResourceGroupName $resourceGroupName `
-ResourceType 'Microsoft.DevTestLab/labs/artifactsources' `
-ResourceName $DevTestLabName `
-ApiVersion 2016-05-15 `
| Where-Object { $RepositoryName -in ($_.Name, $_.Properties.displayName) } `
| Select-Object -First 1
if ($repository -eq $null) { "Unable to find repository $RepositoryName in lab $DevTestLabName." }
# Get the internal artifact name
$template = Get-AzResource -ResourceGroupName $resourceGroupName `
-ResourceType "Microsoft.DevTestLab/labs/artifactSources/artifacts" `
-ResourceName "$DevTestLabName/$($repository.Name)" `
-ApiVersion 2016-05-15 `
| Where-Object { $ArtifactName -in ($_.Name, $_.Properties.title) } `
| Select-Object -First 1
if ($template -eq $null) { throw "Unable to find template $ArtifactName in lab $DevTestLabName." }
# Find the VM in Azure
$FullVMId = "/subscriptions/$SubscriptionId/resourceGroups/$resourceGroupName`
/providers/Microsoft.DevTestLab/labs/$DevTestLabName/virtualmachines/$virtualMachineName"
$virtualMachine = Get-AzResource -ResourceId $FullVMId
# Generate the artifact id
$FullArtifactId = "/subscriptions/$SubscriptionId/resourceGroups/$resourceGroupName`
/providers/Microsoft.DevTestLab/labs/$DevTestLabName/artifactSources/$($repository.Name)`
/artifacts/$($template.Name)"
# Handle the input parameters to pass through
$artifactParameters = @()
# Fill the artifact parameter with the additional -param_ data and strip off the -param_
$Params | ForEach-Object {
if ($_ -match '^-param_(.*)') {
$name = $_ -replace '^-param_'
} elseif ( $name ) {
$artifactParameters += @{ "name" = "$name"; "value" = "$_" }
$name = $null #reset name variable
}
}
# Create a structure to pass the artifact data to the action
$prop = @{
artifacts = @(
@{
artifactId = $FullArtifactId
parameters = $artifactParameters
}
)
}
# Apply the artifact
if ($virtualMachine -ne $null) {
# Apply the artifact by name to the virtual machine
$status = Invoke-AzResourceAction -Parameters $prop -ResourceId $virtualMachine.ResourceId -Action "applyArtifacts" -ApiVersion 2016-05-15 -Force
if ($status.Status -eq 'Succeeded') {
Write-Output "##[section] Successfully applied artifact: $ArtifactName to $VirtualMachineName"
} else {
Write-Error "##[error]Failed to apply artifact: $ArtifactName to $VirtualMachineName"
}
} else {
Write-Error "##[error]$VirtualMachine was not found in the DevTest Lab, unable to apply the artifact"
}