Laboratuvara yapıt deposu ekleme

Bu makalede, Azure DevTest Labs'da laboratuvarınıza yapıt deposunu nasıl ekleyeceğiniz açıklayıcıdır. Yapıtlar, sanal makinelere (VM) yüklenecek araçlar veya uygulamalardır. GitHub veya Azure Repos Git deposundan yüklediğiniz bir JSON dosyasında yapıtları tanımlarsınız.

Genel DevTest Labs GitHub yapıt deposu , Windows ve Linux için birçok ortak yapıt sağlar. Bu ortak depodaki yapıtlar, DevTest Labs'de varsayılan olarak kullanılabilir. VM'lere yapıt ekleme hakkında bilgi için bkz. DevTest Labs VM'lerine yapıt ekleme.

Genel yapıt deposunda bulunmayan özel yapıtlar da oluşturabilirsiniz. Özel yapıtlar oluşturma hakkında bilgi edinmek için bkz. Özel yapıtlar oluşturma. Özel yapıtlarınızı kendi yapıt deponuza ekleyebilir ve tüm laboratuvar kullanıcılarının yapıtları kullanabilmesi için depoyu laboratuvarınıza ekleyebilirsiniz.

Bu makalede Azure portal, Azure Kaynak Yönetimi (ARM) şablonunu veya Azure PowerShell kullanarak laboratuvarınıza yapıt deposu ekleme adımları gösterilmektedir. Laboratuvara yapıt deposu eklemeyi otomatikleştirmek için bir Azure PowerShell veya Azure CLI betiği de kullanabilirsiniz.

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önkoşullar

Laboratuvara yapıt deposu eklemek için Git HTTPS kopya URL'sini ve GitHub veya yapıt dosyalarını içeren Azure Repos deposu için kişisel erişim belirtecini bilmeniz gerekir.

GitHub için kopya URL'sini ve kişisel erişim belirtecini alma

  1. Yapıtlarınızın bulunduğu GitHub deposunun giriş sayfasında Kod'u seçin ve Kopyala'nın altında HTTPS URL'sini kopyalayın.
  2. GitHub'ın sağ üst köşesindeki profil resminizi seçin ve ardından Ayarlar'ı seçin.
  3. Profil sayfanızın sol menüsünde Geliştirici Ayarları'nı ve ardından Kişisel erişim belirteçleri'ni seçin.
  4. Yeni belirteç oluştur'a tıklayın.
  5. Yeni kişisel erişim belirteci sayfasındaki Not'un altına belirteç için isteğe bağlı bir açıklama girin. Tüm varsayılan değerleri kabul edin ve belirteç oluştur'u seçin.
  6. Oluşturulan belirteci kaydedin.

Azure Repos için kopya URL'sini ve kişisel erişim belirtecini alma

  1. Yapıtlarınızın bulunduğu deponun ana sayfasında Kopyala'yı seçin. Depoyu Kopyala sayfasında kopya URL'sini kopyalayın.
  2. Azure DevOps sayfasının sağ üst köşesinde Kullanıcı ayarları>Kişisel erişim belirteçleri'ni seçin.
  3. Kişisel Erişim Belirteçleri sayfasında Yeni Belirteç'i seçin.
  4. Belirtecin bilgilerini doldurun, kapsamlar için Oku'yu ve ardından Oluştur'u seçin.
  5. başarılı sayfasında belirteci kopyaladığınızdan emin olun çünkü Azure Repos belirteci depolamaz veya yeniden göstermez.

Azure portal bir laboratuvara yapıt deposu ekleme

  1. Laboratuvarın Genel Bakış sayfasında sol gezinti bölmesinden Yapılandırma ve ilkeler'i seçin.

  2. Yapılandırma ve ilkeler sayfasında, sol gezinti bölmesindeki Dış kaynaklar'ın altında Depolar'ı seçin.

    Depolar sayfasında Genel Yapıt Deposu otomatik olarak bulunur ve DevTest Labs genel GitHub deposuna bağlanır. Bu depo laboratuvarınız için etkinleştirilmediyse, Genel Yapıt Deposu'nun yanındaki onay kutusunu ve ardından üst menü çubuğunda Etkinleştir'i seçerek bu depoyu etkinleştirebilirsiniz.

  3. Yapıt deponuzu laboratuvara eklemek için üst menü çubuğunda Ekle'yi seçin.

    Depolar yapılandırma ekranını gösteren ekran görüntüsü.

  4. Depo bölmesine aşağıdaki bilgileri girin:

    • Ad: Laboratuvarda kullanılacak depo adı.
    • Git kopyalama URL'si: GitHub'dan veya Azure Repos Git HTTPS kopyası URL'si.
    • Dal (isteğe bağlı): Yapıt tanımlarınızı içeren dal.
    • Kişisel erişim belirteci: GitHub'dan veya Azure Repos kişisel erişim belirteci.
    • Klasör yolları: ARM şablon tanımlarınızın Git kopya URL'sine göre klasörü. klasör yoluna ilk eğik çizgiyi eklediğinizden emin olun.
  5. Kaydet’i seçin.

    Laboratuvara yeni yapıt deposu eklemeyi gösteren ekran görüntüsü.

Depo artık laboratuvarın Depolar listesinde görünür.

ARM şablonu kullanarak yapıt deposu ekleme

ARM şablonları, oluşturulacak Azure kaynaklarını açıklayan JSON dosyalarıdır. ARM şablonları hakkında daha fazla bilgi için bkz. ARM şablonlarının yapısını ve söz dizimini anlama.

Aşağıdaki ARM şablonu laboratuvara bir yapıt deposu ekler. Şablon, henüz yoksa laboratuvarı oluşturur.

ARM şablonunu gözden geçirme

Örnek şablon parametrelerde aşağıdaki bilgileri toplar. Bazı parametrelerin varsayılanları vardır, ancak dağıtım komutunun laboratuvar adını, yapıt depo URI'sini, depo türünü ve depo kişisel erişim belirtecini belirtmesi gerekir.

  • Laboratuvar adı.
  • DevTest Labs'de yapıt deposunun görünen adı. Team Repository varsayılan değerdir.
  • Daha önce kopyaladığınız yapıt deposunun URI'sini.
  • Yapıtları içeren depo dalı. main varsayılan değerdir.
  • Yapıtları içeren klasörün adı. Varsayılan değer: /Artifacts.
  • Depo türü. İzin verilen değerler, Azure Repos veya GitHubiçin şeklindedirVsoGit.
  • Daha önce kopyaladığınız depo için kişisel erişim belirteci.
{

    "$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"
                    }
                }
            ]
        }
    ]
}

Şablonu dağıtma

Azure kaynaklarını oluşturmak veya güncelleştirmek için ARM şablonları dağıtmanın çeşitli yolları vardır. Bilgi ve yönergeler için aşağıdaki makalelere bakın:

Bu örnekte, Azure PowerShell kullanarak şablonu dağıtın.

Not

Şablonu dağıtan cmdlet'ler bağlama özgü olduğundan geçerli kiracıyı ve aboneliği kullanır. Bağlamı değiştirmeniz gerekiyorsa, şablonu dağıtmadan önce Set-AzContext kullanın

  1. New-AzResourceGroup kullanarak bir kaynak grubu oluşturun. Kullanmak istediğiniz kaynak grubu zaten varsa, bu adımı atlayın.

    New-AzResourceGroup -Name MyLabResourceGroup1 -Location westus
    
  2. New-AzResourceGroupDeployment komutunu kullanarak kaynak grubuna bir dağıtım oluşturun. Aynı kaynak grubuna birkaç kaynak dağıtımı yapabilirsiniz. Aynı kaynak grubuna birkaç kez dağıtım yapıyorsanız, her dağıtım adının benzersiz olduğundan emin olun.

    New-AzResourceGroupDeployment `
        -Name MyLabResourceGroup-Deployment1 `
        -ResourceGroupName MyLabResourceGroup1 `
        -TemplateFile azuredeploy.json `
        -TemplateParameterFile azuredeploy.parameters.json
    

Başarıyla çalıştırıldıktan sonra New-AzResourceGroupDeployment çıktı, sağlama durumu gibi önemli bilgileri gösterir; bu succeededdurum olmalıdır ve şablonun tüm çıkışlarını gösterir.

Azure PowerShell kullanarak yapıt deposu ekleme

Aşağıdaki örnek PowerShell betiği New-DevTestLabArtifactRepository.ps1laboratuvara bir yapıt deposu ekler. Tam betik bazı ayrıntılı iletiler ve açıklamalar içerir.


<#

.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 11111111-1111-1111-1111-111111111111
.\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

Parametreler

PowerShell betiği aşağıdaki parametreleri alır:

Parametre Açıklama
LabName Laboratuvarın adı.
ArtifactRepositoryName Yeni yapıt deposunun adı. Betik, belirtilmemişse depo için rastgele bir ad oluşturur.
ArtifactRepositoryDisplayName Laboratuvarın yapıt deposu listesinde görünen görünen ad.
RepositoryUri Daha önce kopyaladığınız yapıt deposunun URI'sini.
RepositoryBranch Yapıtları içeren depo dalı. main varsayılan değerdir.
FolderPath Yapıtları içeren klasör. Varsayılan değer: /Artifacts.
PersonalAccessToken Daha önce kopyaladığınız depoya erişmek için güvenlik belirteci.
SourceType Yapıt deposunun bir VSOGit (Azure Repos) veya GitHub deposu olup olmadığı.

Deponun tanımlanması için Azure portal görünen adından farklı bir iç ad gerekir. Azure portal kullanırken iç adı görmezsiniz, ancak Azure REST API'lerini veya Azure PowerShell kullanırken görürsünüz. Dağıtım komutu bir ad belirtmezse betik rastgele bir ad oluşturur.

#Set artifact repository name, if not set by user
if ($ArtifactRepositoryName -eq $null){
    $ArtifactRepositoryName = "PrivateRepo" + (Get-Random -Maximum 999)
}

PowerShell komutları

Betik aşağıdaki PowerShell komutlarını kullanır:

Komut Notlar
Get-AzResource Laboratuvarla ilgili konumu gibi ayrıntıları alır. Yapıt deposu kaynağını laboratuvarla aynı konumda ve aynı kaynak grubu altında oluşturursunuz.
New-AzResource Azure kaynağını ekler. Yapıt depoları eklemek için belirli bir komut yoktur. Bu cmdlet'in oluşturulacak kaynağın ResourceId türünü bilmesi için veya ResourceName ve ResourceType çiftine ihtiyacı vardır. Geçerli betik ve ResourceType çiftini ResourceName kullanır.

Kaynak adı ve kaynak türü bilgilerini bulmanın iyi bir yolu Azure REST API Browser web sitesini kullanmaktır. DevTest Labs Yapıt Kaynakları , DevTest Labs yapıt kaynaklarını oluşturmaya ve yönetmeye yönelik REST API'lerini gösterir. Geçerli betik aşağıdaki kaynak kimliğini kullanır:

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}

Kaynak türü, küme ayraçlarındaki öğeler dışında URI'de sonra providers listelenen her şeydir. Kaynak adı, küme ayraçlarındaki her şeydir. Kaynak adı için birden fazla öğe kullanıyorsanız, her öğeyi eğik çizgiyle ayırın:

$resourcetype = 'Microsoft.DevTestLab/labs/artifactSources'
$resourceName = $LabName + '/' + $ArtifactRepositoryName

PowerShell betiğini çalıştırma

, , ArtifactRepositoryNameRepositoryUriPersonalAccessTokenve SourceTypeiçindeki örnek değerler için kendi değerlerinizi LabNameLabResourceGroupNamedeğiştirerek PowerShell betiğini çalıştırın:

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"

Sonraki adımlar