Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure DevTest Labs'de laboratuvarınıza yapıt deposu ekleme adımları açıklanmaktadır. Yapı nesneleri, 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 artefakt deposu, Windows ve Linux için birçok yaygın artefakt içerir. 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.
Ortak yapıt deposunda bulunmayan özel yapıtlar da oluşturabilirsiniz. Özel yapıtlar oluşturma hakkında bilgi edinmek için bkz . Özel yapıt 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ını, Azure Kaynak Yönetimi (ARM) şablonunu veya Azure PowerShell'i kullanarak laboratuvarınıza yapıt deposu ekleme adımları gösterilmektedir. Laboratuvara yapıt deposu eklemeyi otomatikleştirmek için Azure PowerShell veya Azure CLI betiği de kullanabilirsiniz.
Note
Azure ile etkileşim kurmak 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.
Azure portalını kullanarak yapıt deposu ekleme
Azure Repos deposundan veya GitHub deposundan yapıt deposu ekleyebilirsiniz. Yönetilen kimliğe izinler atayarak, GitHub uygulama kimlik doğrulamasını kullanarak veya PAT kullanarak kimlik doğrulamayı seçebilirsiniz. Yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz . Azure kaynakları için yönetilen kimlikler nelerdir?
Kullanmak istediğiniz depo ve kimlik doğrulaması türünün sekmesini seçin.
- Yönetilen kimliklerle Azure Repos deposu
- PAT ile Azure Repos deposu
- Dev Center uygulaması ile GitHub deposu
- PAT ile GitHub deposu
Yapıt deposu eklemek için aşağıdaki görevleri tamamlayın:
- Yönetilen kimlik için Azure Repos'ta izinler atayın.
- Yapıt deponuzu ekleyin.
Azure Repos'ta yönetilen kimlik için izinleri ayarlama
Yönetilen kimlik izinlerini Azure Repos'taki depoya vermeniz gerekir.
Azure DevOps kuruluşunuzda oturum açın.
Note
Azure DevOps kuruluşunuzun laboratuvarınızı içeren Azure aboneliğiyle aynı dizinde olması gerekir.
Kuruluş ayarları'nı seçin.
Genel Bakış sayfasında Kullanıcılar'ı seçin.
Kullanıcılar sayfasında Kullanıcı ekle'yi seçin.
Aşağıdaki bilgileri girerek veya seçerek Yeni kullanıcı ekleme işlemini tamamlayın ve ardından Ekle'yi seçin:
Name Value Kullanıcılar veya Hizmet Sorumluları Laboratuvarınızın adını girin.
Sistem tarafından atanan bir yönetilen kimlik kullandığınızda, yönetilen hesabın nesne kimliğini değil laboratuvarın adını belirtin. Kullanıcı tarafından atanan bir yönetilen kimlik kullandığınızda, yönetilen hesabın adını kullanın.Erişim düzeyi Temel'i seçin. Projelere ekle Deponuzu içeren projeyi seçin. Azure DevOps Grupları Proje Okuyucular'ı seçin. E-posta davetleri gönderme (yalnızca Kullanıcılara) Onay kutusunu temizleyin.
Azure portalındaki bir laboratuvara Azure DevOps yapıt deposu ekleme
Laboratuvarın Genel Bakış sayfasında sol bölmede Yapılandırma ve ilkeler'i seçin.
Yapılandırma ve ilkeler sayfasında, sol bölmedeki Dış kaynaklar'ın altındaki 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, Ortak Yapıt Deposu'nun yanındaki onay kutusunu ve ardından bölmenin üst kısmındaki Etkinleştir'i seçerek bu depoyu etkinleştirebilirsiniz.
Yapıt deponuzu laboratuvara eklemek için bölmenin üst kısmındaki Ekle'yi seçin.
Depo bölmesine aşağıdaki bilgileri girin:
- Ad: Laboratuvarda kullanılacak bir depo adı.
- Git kopyalama URL'si: Azure Repos'tan Git HTTPS kopyalama URL'si.
- Dal (isteğe bağlı): Yapıt tanımlarınızı içeren dal.
- Klasör yolları: GIT kopya URL'sine göre ARM şablon tanımlarınızın klasörü. İlk eğik çizgiyi klasör yoluna eklediğinizden emin olun.
- Yönetilen Kimlik: Kimlik doğrulaması için yönetilen kimliği kullanmak için bu seçeneği belirleyin.
Kaydetseçeneğini seçin.
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 bir yapıt deposunu laboratuvara ekler. Laboratuvar henüz yoksa şablon bunu oluşturur.
ARM şablonunu gözden geçirme
Örnek şablon parametrelerde aşağıdaki bilgileri toplar. Bazı parametreler varsayılan değerlere sahiptir, 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 içindeki artifakt deposunun görünen adı. Varsayılan değer şudur:
Team Repository. - Daha önce kopyaladığınız yapıt deposunun URI'sini.
- Yapıtları içeren depo şubesi. Varsayılan değer şudur:
main. - Yapıtları içeren klasörün adı. Varsayılan değer:
/Artifacts. - Depo türü. İzin verilen değerler
VsoGit, Azure Repos veyaGitHubşeklindedir. - 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:
- ARM şablonları ve Azure PowerShell ile kaynak dağıtma
- ARM şablonları ve Azure CLI ile kaynak dağıtma
- Azure portalında ARM şablonlarıyla kaynakları dağıtma
- ARM şablonları ve Resource Manager REST API'siyle kaynakları dağıtma
Bu yordam için Azure PowerShell kullanarak şablonu dağıtın.
Note
Şablonu dağıtan cmdlet'ler bağlama bağlı olarak çalışır, bu yüzden geçerli kiracıyı ve aboneliği kullanır. Bağlamı değiştirmeniz gerekiyorsa, şablonu dağıtmadan önce Set-AzContext kullanın.
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 westusNew-AzResourceGroupDeployment komutunu kullanarak kaynak grubuna 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
New-AzResourceGroupDeployment başarıyla çalıştırıldıktan sonra, çıktı sağlama durumu gibi önemli bilgileri ve şablon için succeeded olması gereken durumu gösterir ve tüm çıktıları açıklar.
Azure PowerShell kullanarak yapıt deposu ekleme
Aşağıdaki örnek PowerShell betiği New-DevTestLabArtifactRepository.ps1, laboratuvara bir yapıt deposu ekler. Betiğin tamamı uzun mesajlar, açıklamalar ve yorumlar 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 a name isn't 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 it's 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
# Alternative 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
Parameters
PowerShell betiği aşağıdaki parametreleri alır:
| Parameter | Description |
|---|---|
LabName |
Laboratuvarın adı. |
ArtifactRepositoryName |
Yeni yapıt deposunun adı. Betik, bir ad belirtilmezse depo için rastgele bir ad oluşturur. |
ArtifactRepositoryDisplayName |
Laboratuvarın artefakt deposu listesinde görünen ad. |
RepositoryUri |
Yapıt deposunun URI adresi. Bu değeri daha önce kopyalamıştınız. |
RepositoryBranch |
Artefaktları içeren depo dalı. Varsayılan değer şudur: main. |
FolderPath |
İçinde nesneleri barındıran klasör. Varsayılan değer şudur: /Artifacts. |
PersonalAccessToken |
Depoya erişmek için güvenlik belirteci. Bu değeri daha önce kopyalamıştınız. |
SourceType |
Yapıt deposunun bir VSOGit (Azure Repos) veya GitHub deposu olup olmadığı. |
Deponun tanımlanması için bir iç ad gerekir. Bu ad, Azure portalındaki görünen addan farklıdır. Azure portalını kullanırken iç adı görmezsiniz, ancak Azure REST API'lerini veya Azure PowerShell'i 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 it's 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:
| Command | Notes |
|---|---|
| Get-AzResource | Laboratuvarla ilgili konumu gibi ayrıntıları alır. Yapıt depo kaynağını laboratuvarla aynı konumda ve aynı kaynak grubu altında oluşturursunuz. |
| New-AzResource | Azure kaynağını ekler. Artifakt 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. Önceki betik ResourceName ve ResourceType çiftini 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. Önceki betik şu kaynak ID'sini kullanır:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}
Kaynak türü, URI'deki providers'den sonra listelenen her şeydir, ancak süslü parantezler içindeki ({}) öğeler hariç. Kaynak adı, kıvrık parantezlerin içindeki 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
Örnek değerler yerine kendi değerlerinizi LabName, LabResourceGroupName, ArtifactRepositoryName, RepositoryUri, PersonalAccessToken ve SourceType ile değ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"