Menambahkan repositori artefak ke laboratorium
Artikel ini memberi tahu Anda cara menambahkan repositori artefak ke lab Anda di Azure DevTest Labs. Artefak adalah alat atau aplikasi untuk diinstal pada mesin virtual (VM). Anda menentukan artefak dalam file JSON yang Anda muat dari repositori Git GitHub atau Azure Repos.
Repositori artefak GitHub DevTest Labs publik menyediakan banyak artefak umum untuk Windows dan Linux. Artefak di repositori publik ini tersedia secara default di DevTest Labs. Untuk informasi tentang menambahkan artefak ke VM, lihat Menambahkan artefak ke VM DevTest Labs.
Anda juga dapat membuat artefak kustom yang tidak tersedia di repositori artefak publik. Untuk mempelajari tentang membuat artefak kustom, lihat Membuat artefak kustom. Anda dapat menambahkan artefak kustom Anda ke repositori artefak Anda sendiri, dan menambahkan repositori ke lab Anda sehingga semua pengguna lab dapat menggunakan artefak.
Artikel ini menunjukkan kepada Anda cara menambahkan repositori artefak ke lab Anda dengan menggunakan portal Azure, templat Azure Resource Management (ARM), atau Azure PowerShell. Anda juga dapat menggunakan skrip Azure PowerShell atau Azure CLI guna mengotomatiskan penambahan repositori artefak ke lab.
Catatan
Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Prasyarat
Untuk menambahkan repositori artefak ke lab, Anda perlu mengetahui URL klon Git HTTPS dan token akses privat untuk repositori GitHub atau Azure Repos yang memiliki file artefak.
Dapatkan URL kloning dan token akses pribadi untuk GitHub
- Di halaman beranda repositori GitHub yang memiliki artefak Anda, pilih Kode, dan di bawah Klon, salin URL HTTPS.
- Pilih gambar profil Anda di pojok kanan atas GitHub, lalu pilih Pengaturan.
- Di halaman profil Anda, di menu kiri, pilih Pengembang Pengaturan, lalu pilih Token akses privat.
- Klik Buat token baru.
- Di halaman Token akses privat baru, di bawah Catatan, masukkan deskripsi opsional untuk token. Terima semua default, lalu pilih Buat token.
- Simpan token yang dihasilkan.
Dapatkan URL kloning dan token akses privat untuk Azure Repos
- Di halaman utama repositori yang memiliki artefak Anda, pilih Klon. Di halaman Repositori Klon, salin URL klon.
- Di pojok kanan atas halaman Azure DevOps, pilih Pengaturan pengguna>Token akses privat.
- Di halaman Token Akses Privat, pilih Token Baru.
- Isi informasi untuk token, pilih Baca untuk cakupan, lalu pilih Buat.
- Di halaman Berhasil, pastikan untuk menyalin token, karena Azure Repos tidak menyimpan token atau menampilkannya lagi.
Menambahkan repositori artefak ke lab di portal Azure
Di halaman lab Gambaran Umum, pilih Konfigurasi dan kebijakan dari navigasi kiri.
Di halaman Konfigurasi dan kebijakan, pilih Repositori di bawah Sumber daya eksternal di navigasi kiri.
Di halaman Repositori, Public Artifact Repo secara otomatis hadir dan terhubung ke repositori GitHub publik DevTest Labs. Jika repo ini tidak diaktifkan untuk lab Anda, Anda dapat mengaktifkannya dengan memilih kotak centang di sebelah Repo Artefak Publik, lalu memilih Aktifkan di bilah menu atas.
Untuk menambahkan repositori artefak Anda ke lab, pilih Tambahkan di bilah menu atas.
Di panel Repositori, masukkan informasi berikut:
- Nama: Nama repositori untuk digunakan di lab.
- URL klon Git: URL klon Git HTTPS dari GitHub atau Azure Repos.
- Cabang (opsional): Cabang yang memiliki definisi artefak Anda.
- Token akses privat: Token akses privat dari GitHub atau Azure Repos.
- Jalur folder: Folder untuk definisi templat ARM Anda, relatif terhadap URL klon Git. Pastikan untuk menyertakan garis miring maju awal di jalur folder.
Pilih Simpan.
Repositori sekarang muncul di daftar Repositori untuk lab.
Menambahkan repositori artefak dengan menggunakan templat ARM
Templat ARM adalah file JSON yang menjelaskan sumber daya Azure yang akan dibuat. Untuk informasi selengkapnya tentang templat ARM, lihat Memahami struktur dan sintaksis templat ARM.
Templat ARM berikut menambahkan repositori artefak ke lab. Templat membuat laboratorium jika belum ada.
Meninjau templat ARM
Templat sampel mengumpulkan informasi berikut dalam parameter. Beberapa parameter memiliki default, tetapi perintah penyebaran harus menentukan nama lab, URI repositori artefak, jenis repositori, dan token akses privat repositori.
- Nama lab.
- Tampilkan nama untuk repositori artefak di DevTest Labs. Nilai defaultnya adalah
Team Repository
. - URI dari repositori artefak, yang Anda salin sebelumnya.
- Cabang repositori yang berisi artefak. Nilai defaultnya adalah
main
. - Nama folder yang berisi artefak. Nilai defaultnya adalah:
/Artifacts
. - Jenis repositori. Nilai yang diizinkan adalah
VsoGit
, untuk Azure Repos, atauGitHub
. - Token akses privat untuk repositori, yang Anda salin sebelumnya.
{
"$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"
}
}
]
}
]
}
Menyebarkan templat
Ada beberapa cara untuk menyebarkan templat ARM guna membuat atau memperbarui sumber daya Azure. Untuk informasi dan instruksi, lihat artikel berikut:
- Menyebarkan sumber daya dengan templat ARM dan Azure PowerShell
- Menyebarkan sumber daya dengan templat ARM dan Azure CLI
- Menyebarkan sumber daya dengan templat ARM dan portal Azure
- Sebarkan sumber daya dengan templat ARM dan REST API Azure Resource Manager
Untuk contoh ini, sebarkan templat dengan menggunakan Azure PowerShell.
Catatan
Cmdlet yang menyebarkan templat bersifat khusus konteks, sehingga menggunakan penyewa dan langganan saat ini. Jika Anda perlu mengubah konteks, gunakan Set-AzContext sebelum menyebarkan templat
Buat grup sumber daya menggunakan New-AzResourceGroup. Jika grup sumber daya yang ingin Anda gunakan sudah ada, lewati langkah ini.
New-AzResourceGroup -Name MyLabResourceGroup1 -Location westus
Buat penyebaran ke grup sumber daya menggunakan New-AzResourceGroupDeployment. Anda dapat membuat beberapa penyebaran sumber daya ke grup sumber daya yang sama. Jika Anda menyebarkan beberapa kali ke grup sumber daya yang sama, pastikan nama setiap penyebaran unik.
New-AzResourceGroupDeployment ` -Name MyLabResourceGroup-Deployment1 ` -ResourceGroupName MyLabResourceGroup1 ` -TemplateFile azuredeploy.json ` -TemplateParameterFile azuredeploy.parameters.json
Setelah New-AzResourceGroupDeployment
berhasil dijalankan, keluaran menampilkan informasi penting seperti status penyediaan, yang seharusnya succeeded
, dan keluaran apa pun untuk templat.
Menambahkan repositori artefak dengan menggunakan Azure PowerShell
Contoh skrip PowerShell berikut, New-DevTestLabArtifactRepository.ps1, menambahkan repositori artefak ke lab. Skrip lengkap mencakup beberapa pesan dan komentar verbose.
<#
.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
Parameter
Skrip PowerShell membutuhkan parameter berikut:
Parameter | Deskripsi |
---|---|
LabName |
Nama lab. |
ArtifactRepositoryName |
Nama untuk repositori artefak baru. Skrip membuat nama acak untuk repositori jika tidak ditentukan. |
ArtifactRepositoryDisplayName |
Tampilkan nama yang muncul di daftar repositori artefak lab. |
RepositoryUri |
URI dari repositori artefak, yang Anda salin sebelumnya. |
RepositoryBranch |
Cabang repositori yang berisi artefak. Nilai defaultnya adalah main . |
FolderPath |
Folder yang berisi artefak. Nilai defaultnya adalah: /Artifacts . |
PersonalAccessToken |
Token keamanan untuk mengakses repositori, yang Anda salin sebelumnya. |
SourceType |
Apakah repositori artefak adalah repositori VSOGit (Azure Repos) atau GitHub. |
Repositori itu sendiri memerlukan nama internal untuk identifikasi, yang berbeda dari nama tampilan yang terlihat di portal Azure. Anda tidak melihat nama internal menggunakan portal Azure, tetapi Anda melihatnya saat menggunakan REST API Azure atau Azure PowerShell. Skrip membuat nama acak jika perintah penyebaran tidak menentukan satu.
#Set artifact repository name, if not set by user
if ($ArtifactRepositoryName -eq $null){
$ArtifactRepositoryName = "PrivateRepo" + (Get-Random -Maximum 999)
}
Perintah PowerShell
Skrip menggunakan perintah PowerShell berikut:
Perintah | Catatan |
---|---|
Mendapatkan-AzResource | Mendapatkan detail tentang lab, seperti lokasinya. Perhatikan bahwa Anda membuat sumber repositori artefak di lokasi yang sama dan di bawah grup sumber daya yang sama dengan lab. |
Baru-AzResource | Menambahkan sumber daya Azure. Tidak ada perintah khusus untuk menambahkan repositori artefak. Cmdlet ini memerlukan ResourceId atau pasangan ResourceName dan ResourceType untuk mengetahui jenis sumber daya yang akan dibuat. Skrip saat ini menggunakan pasangan ResourceName dan ResourceType . |
Cara yang baik untuk menemukan nama sumber daya dan informasi jenis sumber daya adalah menggunakan situs web Azure REST API Browser. Sumber Artefak DevTest Labs menunjukkan API REST guna membuat dan mengelola sumber artefak DevTest Labs. Skrip saat ini menggunakan ID sumber daya berikut:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}
Jenis sumber daya adalah semua yang tercantum setelah providers
di URI, kecuali untuk item dalam tanda kurung kurawal. Nama sumber daya adalah semua yang terlihat dalam kurung kurawal. Jika Anda menggunakan lebih dari satu item untuk nama sumber daya, pisahkan setiap item dengan garis miring:
$resourcetype = 'Microsoft.DevTestLab/labs/artifactSources'
$resourceName = $LabName + '/' + $ArtifactRepositoryName
Menjalankan skrip PowerShell
Jalankan skrip PowerShell, dengan mengganti nilai Anda sendiri dengan nilai contoh di LabName
, LabResourceGroupName
, ArtifactRepositoryName
, RepositoryUri
, PersonalAccessToken
, dan 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"
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk