Agen penyediaan untuk grup penyebaran
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Grup penyebaran memudahkan untuk menentukan grup logis komputer target untuk penyebaran, dan menginstal agen yang diperlukan pada setiap komputer. Artikel ini menjelaskan cara membuat grup penyebaran, dan cara menginstal dan menyediakan agen pada setiap komputer virtual atau fisik dalam grup penyebaran Anda.
Anda dapat menginstal agen dengan salah satu cara berikut:
- Jalankan skrip yang dihasilkan secara otomatis saat Anda membuat grup penyebaran.
- Instal ekstensi Azure VM Azure Pipelines Agent pada setiap VM.
- Gunakan tugas penyebaran Templat ARM di alur rilis Anda.
Untuk informasi tentang agen dan alur, lihat:
Jalankan skrip penginstalan pada server target
Di tab Grup penyebaran dari Azure Pipelines, pilih +Baru untuk membuat grup baru.
Masukkan nama untuk grup, dan secara opsional deskripsi, lalu pilih Buat.
Di bagian Daftarkan komputer menggunakan baris perintah di halaman berikutnya, pilih sistem operasi komputer target.
Pilih Gunakan token akses pribadi dalam skrip untuk autentikasi. Pelajari selengkapnya.
Pilih Salin skrip ke clipboard.
Masuk ke setiap komputer target secara bergantian menggunakan akun dengan izin yang sesuai dan:
Buka perintah Administrator PowerShell, tempelkan skrip yang Anda salin, lalu jalankan untuk mendaftarkan komputer dengan grup ini.
Jika Anda mendapatkan kesalahan saat menjalankan skrip bahwa saluran aman tidak dapat dibuat, jalankan perintah ini di prompt Administrator PowerShell:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Saat diminta untuk mengonfigurasi tag untuk agen, tekan
Y
dan masukkan tag apa pun yang akan Anda gunakan untuk mengidentifikasi subset komputer dalam grup untuk penyebaran parsial.Tag yang Anda tetapkan memungkinkan Anda membatasi penyebaran ke server tertentu saat grup penyebaran digunakan dalam pekerjaan Jalankan pada grup komputer.
Saat dimintai akun pengguna, tekan Return untuk menerima default.
Tunggu hingga skrip selesai dengan pesan
Service vstsagent.{organization-name}.{computer-name} started successfully
.
Di halaman Grup penyebaran Azure Pipelines, buka tab Mesin dan verifikasi bahwa agen sedang berjalan. Jika tag yang Anda konfigurasi tidak terlihat, refresh halaman.
Menginstal ekstensi Azure VM Azure Pipelines Agent
Di tab Grup penyebaran dari Azure Pipelines, pilih +Baru untuk membuat grup baru.
Masukkan nama untuk grup, dan secara opsional deskripsi, lalu pilih Buat.
Dalam portal Azure, untuk setiap VM yang akan disertakan dalam grup penyebaran, buka bilah Ekstensi, pilih + Tambahkan untuk membuka daftar Sumber daya baru, dan pilih Agen Alur Azure.
Di bilah Instal ekstensi , tentukan nama langganan Azure Pipelines yang akan digunakan. Misalnya, jika URL adalah
https://dev.azure.com/contoso
, cukup tentukan contoso.Tentukan nama proyek dan nama grup penyebaran.
Secara opsional, tentukan nama untuk agen. Jika tidak ditentukan, ia menggunakan nama VM yang ditambahkan dengan
-DG
.Masukkan Token Akses Pribadi (PAT) yang akan digunakan untuk autentikasi terhadap Azure Pipelines.
Secara opsional, tentukan daftar tag yang dipisahkan koma yang akan dikonfigurasi pada agen. Tag tidak peka huruf besar/kecil, dan masing-masing tidak boleh lebih dari 256 karakter.
Pilih OK untuk memulai penginstalan agen pada VM ini.
Tambahkan ekstensi ke VM lain yang ingin Anda sertakan dalam grup penyebaran ini.
Menggunakan tugas penyebaran Templat ARM
Penting
Instruksi ini mengacu pada tugas versi 2. Alihkan versi Tugas Anda dari 3 ke 2.
Anda dapat menggunakan tugas penyebaran Templat ARM untuk menyebarkan templat Azure Resource Manager (ARM) yang menginstal ekstensi Azure VM Agen Azure Pipelines saat Anda membuat komputer virtual, atau untuk memperbarui grup sumber daya untuk menerapkan ekstensi setelah komputer virtual dibuat. Atau, Anda dapat menggunakan opsi penyebaran tingkat lanjut dari tugas penyebaran Templat ARM untuk menyebarkan agen ke grup penyebaran.
Instal ekstensi Azure VM "Azure Pipelines Agent" menggunakan templat ARM
Templat ARM adalah file JSON yang secara deklaratif mendefinisikan sekumpulan sumber daya Azure. Templat dapat dibaca secara otomatis dan sumber daya yang disediakan oleh Azure. Dalam satu templat, Anda dapat menyebarkan beberapa layanan bersama dengan dependensinya.
Untuk VM Windows, buat templat ARM dan tambahkan elemen sumber daya di Microsoft.Compute/virtualMachine
bawah sumber daya seperti yang ditunjukkan di sini:
"resources": [
{
"name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/',
concat(parameters('vmNamePrefix'),copyindex()))]"
],
"properties": {
"publisher": "Microsoft.VisualStudio.Services",
"type": "TeamServicesAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"VSTSAccountName": "[parameters('VSTSAccountName')]",
"TeamProject": "[parameters('TeamProject')]",
"DeploymentGroup": "[parameters('DeploymentGroup')]",
"AgentName": "[parameters('AgentName')]",
"AgentMajorVersion": "auto|2|3",
"Tags": "[parameters('Tags')]"
},
"protectedSettings": {
"PATToken": "[parameters('PATToken')]"
}
}
}
]
Catatan
Di Azure DevOps Server 2022, nilai yang diizinkan untuk AgentMajorVersion
adalah auto|N
. Di Azure DevOps Server 2022.1 dan yang lebih tinggi, nilai yang diizinkan untuk AgentMajorVersion
adalah auto|2|3
.
"resources": [
{
"name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/',
concat(parameters('vmNamePrefix'),copyindex()))]"
],
"properties": {
"publisher": "Microsoft.VisualStudio.Services",
"type": "TeamServicesAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"VSTSAccountName": "[parameters('VSTSAccountName')]",
"TeamProject": "[parameters('TeamProject')]",
"DeploymentGroup": "[parameters('DeploymentGroup')]",
"AgentName": "[parameters('AgentName')]",
"AgentMajorVersion": "auto|N",
"Tags": "[parameters('Tags')]"
},
"protectedSettings": {
"PATToken": "[parameters('PATToken')]"
}
}
}
]
Mana:
- VSTSAccountName diperlukan. Langganan Azure Pipelines untuk digunakan. Contoh: Jika URL Anda adalah
https://dev.azure.com/contoso
, cukup tentukancontoso
- TeamProject diperlukan. Proyek yang memiliki grup penyebaran yang ditentukan di dalamnya
- DeploymentGroup diperlukan. Grup penyebaran tempat agen penyebaran akan didaftarkan
- AgentName bersifat opsional. Jika tidak ditentukan, nama VM dengan
-DG
ditambahkan akan digunakan - Tag bersifat opsional. Daftar tag yang dipisahkan koma yang akan diatur pada agen. Tag tidak peka huruf besar/kecil dan masing-masing tidak boleh lebih dari 256 karakter
- PATToken diperlukan. Token Akses Pribadi yang digunakan untuk mengautentikasi terhadap Azure Pipelines untuk mengunduh dan mengonfigurasi agen
Catatan
Jika Anda menyebarkan ke VM Linux, pastikan parameter type
dalam kode adalah TeamServicesAgentLinux
.
Memecahkan masalah ekstensi
Ini adalah beberapa masalah yang diketahui dengan ekstensi:
File status menjadi terlalu besar: Masalah ini terjadi pada VM Windows; belum diamati di VM Linux. File status berisi objek JSON yang menjelaskan status ekstensi saat ini. Objek adalah tempat penampung untuk mencantumkan operasi yang dilakukan sejauh ini. Azure membaca file status ini dan meneruskan objek status sebagai respons terhadap permintaan API. File memiliki ukuran maksimum yang diizinkan; jika ukuran melebihi ambang batas, Azure tidak dapat membacanya sepenuhnya dan memberikan kesalahan untuk status tersebut. Pada setiap boot ulang komputer, beberapa operasi dilakukan oleh ekstensi (meskipun mungkin berhasil diinstal sebelumnya), yang menambahkan file status. Jika komputer di-boot ulang dalam jumlah besar, ukuran file status melebihi ambang batas, yang menyebabkan kesalahan ini. Pesan kesalahan berbunyi:
Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes
. Perhatikan bahwa penginstalan ekstensi mungkin telah berhasil, tetapi kesalahan ini menyembunyikan status ekstensi yang sebenarnya.Kami telah memperbaiki masalah ini untuk boot ulang komputer (versi
1.27.0.2
untuk ekstensi Windows dan1.21.0.1
untuk ekstensi Linux dan seterusnya), jadi pada boot ulang, tidak ada yang akan ditambahkan ke file status. Jika Anda mengalami masalah ini dengan ekstensi Anda sebelum perbaikan dibuat (artinya, Anda mengalami masalah ini dengan versi ekstensi sebelumnya) dan ekstensi Anda di-autoupad ke versi dengan perbaikan, masalah masih akan berlanjut. Ini karena pada pembaruan ekstensi, versi ekstensi yang lebih baru masih berfungsi dengan file status sebelumnya. Saat ini, Anda masih dapat menghadapi masalah ini jika Anda menggunakan versi ekstensi yang lebih lama dengan bendera untuk menonaktifkan pembaruan otomatis versi minor, atau jika file status besar dibawa dari versi ekstensi sebelumnya ke versi yang lebih baru yang berisi perbaikan, atau karena alasan lain. Jika demikian, Anda bisa melewati masalah ini dengan menghapus instalan dan menginstal ulang ekstensi. Menghapus instalan ekstensi membersihkan seluruh direktori ekstensi, sehingga file status baru akan dibuat untuk penginstalan baru. Anda perlu menginstal versi terbaru ekstensi. Solusi ini adalah perbaikan permanen, dan setelah mengikuti ini, Anda tidak boleh menghadapi masalah lagi.Masalah dengan data kustom: Masalah ini bukan dengan ekstensi, tetapi beberapa pelanggan telah melaporkan kebingungan mengenai lokasi data kustom pada VM pada pengalihan versi OS. Kami menyarankan solusi berikut. Python 2 tidak digunakan lagi, jadi kami telah membuat ekstensi untuk bekerja dengan Python 3. Jika Anda masih menggunakan versi OS sebelumnya yang tidak menginstal Python 3 secara default, untuk menjalankan ekstensi, Anda harus menginstal Python 3 pada VM atau beralih ke versi OS yang memiliki Python 3 yang diinstal secara default. Pada VM linux, data kustom disalin ke file
/var/lib/waagent/ovf-env.xml
untuk versi Agen Linux Microsoft Azure sebelumnya, dan untuk/var/lib/waagent/CustomData
versi Agen Linux Microsoft Azure yang lebih baru. Tampaknya pelanggan yang telah melakukan hardcoding hanya salah satu dari dua jalur ini menghadapi masalah saat beralih versi OS karena file tidak ada pada versi OS baru, tetapi file lain ada. Jadi, untuk menghindari melanggar provisi VM, Anda harus mempertimbangkan kedua file dalam templat sehingga jika salah satu gagal, yang lain harus berhasil.
Untuk informasi selengkapnya tentang templat ARM, lihat Menentukan sumber daya di templat Azure Resource Manager.
Untuk menggunakan templat:
Di tab Grup penyebaran dari Azure Pipelines, pilih +Baru untuk membuat grup baru.
Masukkan nama untuk grup, dan secara opsional deskripsi, lalu pilih Buat.
Di tab Rilis Azure Pipelines, buat alur rilis dengan tahap yang berisi tugas penyebaran Templat ARM.
Berikan parameter yang diperlukan untuk tugas seperti langganan Azure, nama grup sumber daya, lokasi, dan informasi templat, lalu simpan alur rilis.
Buat rilis dari alur rilis untuk menginstal agen.
Menginstal agen menggunakan opsi penyebaran tingkat lanjut
Di tab Grup penyebaran dari Azure Pipelines, pilih +Baru untuk membuat grup baru.
Masukkan nama untuk grup, dan secara opsional deskripsi, lalu pilih Buat.
Di tab Rilis Azure Pipelines, buat alur rilis dengan tahap yang berisi tugas penyebaran Templat ARM.
Pilih tugas dan perluas bagian Opsi penyebaran tingkat lanjut untuk komputer virtual. Konfigurasikan parameter di bagian ini sebagai berikut:
Aktifkan Prasyarat: pilih Konfigurasikan dengan Agen Grup Penyebaran.
Titik akhir Azure Pipelines/TFS: Pilih koneksi layanan Team Foundation Server/TFS yang ada yang menunjuk ke target Anda. Pendaftaran agen untuk grup penyebaran memerlukan akses ke proyek Visual Studio Anda. Jika Anda tidak memiliki koneksi layanan yang sudah ada, pilih Tambahkan dan buat sekarang. Konfigurasikan untuk menggunakan Token Akses Pribadi (PAT) dengan cakupan dibatasi untuk Grup Penyebaran.
Proyek: Tentukan proyek yang berisi grup penyebaran.
Grup Penyebaran: Tentukan nama grup penyebaran tempat agen akan didaftarkan.
Salin tag Azure VM ke agen: Saat diatur (dicentang), tag apa pun yang sudah dikonfigurasi pada Azure VM akan disalin ke agen grup penyebaran yang sesuai. Secara default, semua tag Azure disalin menggunakan format
Key: Value
. Contohnya,Role: Web
.
Berikan parameter lain yang diperlukan untuk tugas seperti langganan Azure, nama grup sumber daya, dan lokasi, lalu simpan alur rilis.
Buat rilis dari alur rilis untuk menginstal agen.
Topik terkait
- Jalankan pada pekerjaan grup komputer
- Menyebarkan agen di Windows
- Menyebarkan agen di macOS
- Menyebarkan agen di Linux
Bantuan dan dukungan
- Jelajahi tips pemecahan masalah.
- Dapatkan saran tentang Stack Overflow.
- Posting pertanyaan Anda, cari jawaban, atau sarankan fitur di Komunitas Pengembang Azure DevOps.
- Dapatkan dukungan untuk Azure DevOps.