Agen Windows yang di-host mandiri
Azure DevOps
Untuk membangun dan menyebarkan Windows, Azure, dan solusi Visual Studio lainnya, Anda memerlukan setidaknya satu agen Windows. Agen Windows juga dapat membangun aplikasi Java dan Android.
Artikel ini menyediakan panduan untuk menggunakan perangkat lunak agen 3.x dengan Azure DevOps Services dan versi Azure DevOps Server saat ini. Untuk daftar versi Azure DevOps Server yang mendukung agen 3.x, lihat Apakah Azure DevOps Server mendukung agen 3.x.
Catatan
Artikel ini menjelaskan cara mengonfigurasi agen yang dihost sendiri. Jika Anda menggunakan Azure DevOps Services dan agen yang dihosting Microsoft memenuhi kebutuhan Anda, Anda dapat melewati pengaturan agen Windows yang dihost sendiri.
Pelajari tentang agen
Jika Anda sudah tahu apa itu agen dan cara kerjanya, jangan ragu untuk melompat langsung ke bagian berikut. Tetapi jika Anda ingin beberapa latar belakang lainnya tentang apa yang mereka lakukan dan cara kerjanya, lihat Agen Azure Pipelines.
Memeriksa prasyarat
Pastikan komputer Anda memiliki prasyarat ini:
- Versi sistem operasi
- OS Klien
- Windows 7 SP1 ESU
- Windows 8.1
- Windows 10
- Windows 11
- Server OS
- Windows Server 2012 atau yang lebih tinggi
- OS Klien
- Perangkat lunak agen menginstal versi .NET sendiri sehingga tidak ada prasyarat .NET.
- PowerShell 3.0 atau yang lebih tinggi
- Subversion - Jika Anda membangun dari repositori Subversion, Anda harus menginstal klien Subversion pada komputer.
- Direkomendasikan - Alat build Visual Studio (2015 atau lebih tinggi)
Anda harus menjalankan penyiapan agen secara manual untuk pertama kalinya. Setelah Anda merasakan cara kerja agen, atau jika Anda ingin mengotomatiskan pengaturan banyak agen, pertimbangkan untuk menggunakan konfigurasi yang tidak dijaga.
Spesifikasi perangkat keras
Spesifikasi perangkat keras untuk agen Anda akan bervariasi menurut kebutuhan Anda, ukuran tim, dll. Tidak dimungkinkan untuk membuat rekomendasi umum yang akan berlaku untuk semua orang. Sebagai titik referensi, tim Azure DevOps membangun kode agen yang dihosting menggunakan alur yang menggunakan agen yang dihosting. Di sisi lain, sebagian besar kode Azure DevOps dibangun oleh mesin kelas server 24-core yang menjalankan empat agen yang dihost sendiri masing-masing.
Menyiapkan izin
Keamanan informasi untuk agen yang dihost sendiri
Pengguna yang mengonfigurasi agen memerlukan izin admin kumpulan, tetapi pengguna yang menjalankan agen tidak.
Folder yang dikontrol oleh agen harus dibatasi untuk pengguna seserang mungkin karena berisi rahasia yang dapat didekripsi atau dieksfiltrasi.
Agen Azure Pipelines adalah produk perangkat lunak yang dirancang untuk menjalankan kode yang diunduhnya dari sumber eksternal. Secara inheren bisa menjadi target untuk serangan Eksekusi Kode Jarak Jauh (RCE).
Oleh karena itu, penting untuk mempertimbangkan model ancaman yang mengelilingi setiap penggunaan individu Agen Alur untuk melakukan pekerjaan, dan memutuskan apa saja izin minimum yang dapat diberikan kepada pengguna yang menjalankan agen, ke mesin tempat agen berjalan, kepada pengguna yang memiliki akses tulis ke definisi Alur, repositori git tempat yaml disimpan, atau grup pengguna yang mengontrol akses ke kumpulan untuk alur baru.
Ini adalah praktik terbaik agar identitas yang menjalankan agen berbeda dari identitas dengan izin untuk menghubungkan agen ke kumpulan. Pengguna yang menghasilkan kredensial (dan file terkait agen lainnya) berbeda dari pengguna yang perlu membacanya. Oleh karena itu, lebih aman untuk dengan hati-hati mempertimbangkan akses yang diberikan ke komputer agen itu sendiri, dan folder agen yang berisi file sensitif, seperti log dan artefak.
Masuk akal untuk memberikan akses ke folder agen hanya untuk administrator DevOps dan identitas pengguna yang menjalankan proses agen. Administrator mungkin perlu menyelidiki sistem file untuk memahami kegagalan build atau mendapatkan file log untuk dapat melaporkan kegagalan Azure DevOps.
Memutuskan pengguna mana yang akan Anda gunakan
Sebagai langkah satu kali, Anda harus mendaftarkan agen. Seseorang yang memiliki izin untuk mengelola antrean agen harus menyelesaikan langkah-langkah ini. Agen tidak akan menggunakan kredensial orang ini dalam operasi sehari-hari, tetapi mereka diharuskan untuk menyelesaikan pendaftaran. Pelajari selengkapnya tentang cara agen berkomunikasi.
Mengonfirmasi bahwa pengguna memiliki izin
Pastikan akun pengguna yang akan Anda gunakan memiliki izin untuk mendaftarkan agen.
Apakah pengguna adalah pemilik organisasi Azure DevOps atau administrator TFS atau Azure DevOps Server? Berhenti di sini, Anda memiliki izin.
Sebaliknya:
Buka browser dan navigasi ke tab Kumpulan agen untuk organisasi Azure Pipelines atau Server Azure DevOps atau server TFS:
Masuk ke organisasi Anda (
https://dev.azure.com/{yourorganization}
).Pilih Azure DevOps, Pengaturan organisasi.
Pilih Kumpulan agen.
Masuk ke koleksi proyek Anda (
http://your-server/DefaultCollection
).Pilih Azure DevOps, Pengaturan koleksi.
Pilih Kumpulan agen.
Pilih Azure DevOps, Pengaturan koleksi.
Pilih Kumpulan agen.
Pilih kumpulan di sisi kanan halaman lalu klik Keamanan.
Jika akun pengguna yang akan Anda gunakan tidak ditampilkan, dapatkan administrator untuk menambahkannya. Administrator dapat menjadi administrator kumpulan agen, pemilik organisasi Azure DevOps, atau administrator TFS atau Azure DevOps Server.
Jika ini adalah agen grup penyebaran, administrator dapat menjadi administrator grup penyebaran, pemilik organisasi Azure DevOps, atau administrator TFS atau Azure DevOps Server.
Anda dapat menambahkan pengguna ke peran administrator grup penyebaran di tab Keamanan pada halaman Grup Penyebaran di Azure Pipelines.
Catatan
Jika Anda melihat pesan seperti ini: Maaf, kami tidak dapat menambahkan identitas. Silakan coba identitas yang berbeda., Anda mungkin mengikuti langkah-langkah di atas untuk pemilik organisasi atau TFS atau administrator Azure DevOps Server. Anda tidak perlu melakukan apa pun; Anda sudah memiliki izin untuk mengelola kumpulan agen.
Mengunduh dan mengonfigurasi agen
Azure Pipelines
Masuk ke komputer menggunakan akun yang telah Anda siapkan izinnya seperti yang dijelaskan di atas.
Di browser web Anda, masuk ke Azure Pipelines, dan navigasikan ke tab Kumpulan agen:
Masuk ke organisasi Anda (
https://dev.azure.com/{yourorganization}
).Pilih Azure DevOps, Pengaturan organisasi.
Pilih Kumpulan agen.
Masuk ke koleksi proyek Anda (
http://your-server/DefaultCollection
).Pilih Azure DevOps, Pengaturan koleksi.
Pilih Kumpulan agen.
Pilih Azure DevOps, Pengaturan koleksi.
Pilih Kumpulan agen.
Pilih kumpulan Default , pilih tab Agen , dan pilih Agen baru.
Pada kotak dialog Dapatkan agen , pilih Windows.
Di panel kiri, pilih arsitektur prosesor versi OS Windows yang diinstal di komputer Anda. Versi agen x64 ditujukan untuk Windows 64-bit, sedangkan versi x86 ditujukan untuk Windows 32-bit. Jika Anda tidak yakin versi Windows mana yang diinstal, ikuti instruksi berikut untuk mengetahuinya.
Di panel kanan, klik tombol Unduh .
Ikuti instruksi di halaman untuk mengunduh agen.
Buka kemasan agen ke direktori pilihan Anda. Pastikan bahwa jalur ke direktori tidak berisi spasi karena alat dan skrip tidak selalu keluar dari spasi dengan benar. Folder yang disarankan adalah
C:\agents
. Mengekstrak folder unduhan atau folder pengguna lain dapat menyebabkan masalah izin.
Penting
Kami sangat menyarankan Anda mengonfigurasi agen dari jendela PowerShell yang ditingkatkan. Jika Anda ingin mengonfigurasi sebagai layanan, ini diperlukan.
Anda tidak boleh menggunakan ISE Windows PowerShell untuk mengonfigurasi agen.
Penting
Untuk alasan keamanan, kami sangat menyarankan untuk memastikan folder agen (C:\agents
) hanya dapat diedit oleh admin.
Catatan
Harap hindari menggunakan shell berbasis mintty, seperti git-bash, untuk konfigurasi agen. Mintty tidak sepenuhnya kompatibel dengan API Windows Input/Output asli (berikut adalah beberapa info tentang hal itu) dan kami tidak dapat menjamin skrip penyiapan akan berfungsi dengan benar dalam hal ini.
Memasang agen
Mulai jendela yang ditingkatkan (PowerShell) dan atur lokasi ke tempat Anda membuka kemasan agen.
cd C:\agents
Jalankan
config.cmd
. Ini akan mengajukan serangkaian pertanyaan untuk mengonfigurasi agen..\config.cmd
URL Server
Saat penyiapan meminta URL server Anda, untuk Layanan Azure DevOps, jawab https://dev.azure.com/{your-organization}
.
Saat penyiapan meminta URL server Anda, untuk Azure DevOps Server, jawab https://{my-server}/{my-collection}
.
Jenis autentikasi penyiapan agen
Saat Anda mendaftarkan agen, pilih dari jenis autentikasi berikut, dan penyiapan akan meminta informasi tambahan tertentu yang diperlukan untuk setiap jenis autentikasi. Untuk informasi selengkapnya, lihat Opsi autentikasi agen yang dihost sendiri.
- Token akses pribadi
- Sambungkan alternatif ke Azure DevOps Server atau TFS menggunakan autentikasi Dasar. Saat Anda memilih Alternatif , Anda akan dimintai kredensial Anda.
Agen Windows memiliki dua opsi autentikasi tambahan berikut di Azure DevOps Server dan TFS.
- Negosiasikan Sambungkan ke TFS sebagai pengguna selain pengguna yang masuk melalui skema autentikasi Windows seperti NTLM atau Kerberos. Setelah memilih Negosiasi, Anda akan dimintai kredensial.
- Terintegrasi (Default) Sambungkan agen Windows ke TFS menggunakan kredensial pengguna yang masuk melalui skema autentikasi Windows seperti NTLM atau Kerberos. Anda tidak akan dimintai kredensial setelah memilih metode ini.
Penting
Server Anda harus dikonfigurasi untuk mendukung metode autentikasi untuk menggunakan autentikasi Alternatif, Negosiasi, atau Terintegrasi.
Metode autentikasi yang digunakan untuk mendaftarkan agen hanya digunakan selama pendaftaran agen. Untuk mempelajari selengkapnya tentang cara agen berkomunikasi dengan Azure Pipelines setelah pendaftaran, lihat Komunikasi dengan Azure Pipelines atau TFS.
Pilih mode interaktif atau layanan
Untuk panduan tentang apakah akan menjalankan agen dalam mode interaktif atau sebagai layanan, lihat Agen: Interaktif vs. layanan.
Jika Anda memilih untuk berjalan sebagai layanan (yang kami sarankan), nama pengguna yang Anda jalankan sebagai harus 20 karakter atau lebih sedikit.
Jalankan agen
Jalankan secara interaktif
Jika Anda mengonfigurasi agen untuk berjalan secara interaktif, jalankan perintah berikut untuk memulai agen.
.\run.cmd
Untuk memulai ulang agen, tekan Ctrl+C untuk menghentikan agen, lalu jalankan run.cmd
untuk memulai ulang.
Catatan
Jika Anda menjalankan agen dari PowerShell Core untuk menjalankan tugas Windows PowerShell, alur Anda mungkin gagal dengan kesalahan seperti Error in TypeData "System.Security.AccessControl.ObjectSecurity": The member is already present
. Ini karena Windows PowerShell mewarisi PSModulePath
variabel lingkungan, yang mencakup lokasi modul PowerShell Core, dari proses induknya.
Sebagai solusinya, Anda dapat mengatur kenop AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL
agen ke true
dalam alur. Ini akan memungkinkan agen untuk mengatur ulang PSModulePath
sebelum menjalankan tugas.
variables:
AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL: "true"
Jika solusi ini tidak mengatasi masalah Anda, atau jika Anda perlu menggunakan lokasi modul kustom, Anda dapat mengatur $Env:PSModulePath
variabel sesuai kebutuhan di jendela PowerShell Core Anda sebelum menjalankan agen.
Jalankan sekali
Anda juga dapat memilih agar agen hanya menerima satu pekerjaan lalu keluar. Untuk menjalankan konfigurasi ini, gunakan perintah berikut.
.\run.cmd --once
Agen dalam mode ini hanya akan menerima satu pekerjaan dan kemudian berputar dengan anggun (berguna untuk berjalan di Docker pada layanan seperti Azure Container Instances).
Jalankan sebagai layanan
Jika Anda mengonfigurasi agen untuk dijalankan sebagai layanan, agen akan dimulai secara otomatis. Anda dapat melihat dan mengontrol status agen yang berjalan dari snap-in layanan. Jalankan services.msc
dan cari salah satu dari:
- "Agen Azure Pipelines (nama agen Anda)"
- "Agen VSTS (nama agen Anda)"
- "vstsagent. (nama organisasi). (nama agen Anda)"
Catatan
Untuk memungkinkan lebih banyak fleksibilitas dengan kontrol akses agen yang berjalan sebagai layanan dimungkinkan untuk menyiapkan jenis SID layanan agen sebagai [SERVICE_SID_TYPE_UNRESTRICTED
] melalui bendera atau perintah selama alur konfigurasi interaktif.
Secara default, layanan agen dikonfigurasi dengan SERVICE_SID_TYPE_NONE
.
Untuk detail selengkapnya tentang jenis SID, silakan periksa dokumentasi ini.
Untuk memulai ulang agen, klik kanan entri dan pilih Mulai ulang.
Catatan
Jika Anda perlu mengubah akun masuk agen, jangan lakukan dari snap-in Layanan. Sebagai gantinya, lihat informasi di bawah ini untuk mengonfigurasi ulang agen.
Untuk menggunakan agen Anda, jalankan pekerjaan menggunakan kumpulan agen. Jika Anda tidak memilih kumpulan yang berbeda, agen Anda akan berada di kumpulan Default .
Mengganti agen
Untuk mengganti agen, ikuti langkah-langkah Unduh dan konfigurasikan agen lagi.
Saat Mengonfigurasi agen menggunakan nama yang sama dengan agen yang sudah ada, Anda akan ditanya apakah Anda ingin mengganti agen yang ada. Jika Anda menjawab Y
, pastikan Anda menghapus agen (lihat di bawah) yang Anda ganti. Jika tidak, setelah beberapa menit konflik, salah satu agen akan dimatikan.
Menghapus dan mengonfigurasi ulang agen
Untuk menghapus agen:
.\config remove
Setelah menghapus agen, Anda dapat mengonfigurasinya lagi.
Konfigurasi tanpa pengawas
Agen dapat disiapkan dari skrip tanpa intervensi manusia.
Anda harus lulus --unattended
dan jawaban untuk semua pertanyaan.
Untuk mengonfigurasi agen, agen harus mengetahui URL ke organisasi atau koleksi dan kredensial seseorang yang berwenang untuk menyiapkan agen.
Semua respons lainnya bersifat opsional.
Parameter baris perintah apa pun dapat ditentukan menggunakan variabel lingkungan sebagai gantinya: letakkan namanya dalam huruf besar dan prepend VSTS_AGENT_INPUT_
.
Misalnya, VSTS_AGENT_INPUT_PASSWORD
alih-alih menentukan --password
.
Opsi yang diperlukan
--unattended
- penyiapan agen tidak akan meminta informasi, dan semua pengaturan harus disediakan pada baris perintah--url <url>
- URL server. Misalnya: https://dev.azure.com/myorganization atau http://my-azure-devops-server:8080/tfs--auth <type>
- jenis autentikasi. Nilai yang valid adalah:pat
(Token akses pribadi)SP
(Perwakilan Layanan) (Memerlukan agen versi 3.227.1 atau yang lebih baru)negotiate
(Kerberos atau NTLM)alt
(Autentikasi dasar)integrated
(Kredensial default Windows)
Opsi autentikasi
- Jika Anda memilih
--auth pat
:--token <token>
- menentukan token akses pribadi Anda- Anda juga dapat meneruskan token OAuth 2.0 sebagai
--token
parameter .
- Jika Anda memilih
--auth negotiate
atau--auth alt
:--userName <userName>
- menentukan nama pengguna Windows dalam formatdomain\userName
atauuserName@domain.com
--password <password>
- menentukan kata sandi
- Jika Anda memilih
--auth SP
:--clientID <clientID>
- menentukan ID Klien Perwakilan Layanan dengan akses ke agen pendaftaran--tenantId <tenantID>
- menentukan ID Penyewa tempat Perwakilan Layanan terdaftar--clientSecret <clientSecret>
- menentukan Rahasia Klien Perwakilan Layanan- Lihat Mendaftarkan agen menggunakan perwakilan layanan untuk informasi selengkapnya
Nama kumpulan dan agen
--pool <pool>
- nama kumpulan untuk bergabung dengan agen--agent <agent>
- nama agen--replace
- ganti agen dalam kumpulan. Jika agen lain mendengarkan dengan nama yang sama, agen akan mulai gagal dengan konflik
Penyiapan agen
--work <workDirectory>
- direktori kerja tempat data pekerjaan disimpan. Default ke_work
di bawah akar direktori agen. Direktori kerja dimiliki oleh agen tertentu dan tidak boleh dibagikan antara beberapa agen.--acceptTeeEula
- terima Perjanjian Lisensi Pengguna Akhir Di Mana Pun Penjelajah Tim (hanya macOS dan Linux)--disableloguploads
- jangan melakukan streaming atau mengirim output log konsol ke server. Sebagai gantinya, Anda dapat mengambilnya dari sistem file host agen setelah pekerjaan selesai.
Startup khusus Windows
--runAsService
- mengonfigurasi agen untuk berjalan sebagai layanan Windows (memerlukan izin administrator)--runAsAutoLogon
- mengonfigurasi masuk otomatis dan menjalankan agen saat startup (memerlukan izin administrator)--windowsLogonAccount <account>
- digunakan dengan--runAsService
atau--runAsAutoLogon
untuk menentukan nama pengguna Windows dalam formatdomain\userName
atauuserName@domain.com
--windowsLogonPassword <password>
- digunakan dengan--runAsService
atau--runAsAutoLogon
untuk menentukan kata sandi masuk Windows (tidak diperlukan untuk Akun Layanan Terkelola Grup dan akun bawaan Windows seperti 'NT AUTHORITY\NETWORK SERVICE')--enableservicesidtypeunrestricted
- digunakan dengan--runAsService
untuk mengonfigurasi agen dengan jenis SID layanan sebagaiSERVICE_SID_TYPE_UNRESTRICTED
(memerlukan izin administrator)--overwriteAutoLogon
- digunakan dengan--runAsAutoLogon
untuk menimpa masuk otomatis yang ada pada komputer--noRestart
- digunakan dengan--runAsAutoLogon
untuk menghentikan host memulai ulang setelah konfigurasi agen selesai
Pemecahan masalah mengonfigurasi agen dengan runAsAutoLogon
opsi
Mengonfigurasi agen dengan runAsAutoLogon
opsi menjalankan agen setiap kali setelah memulai ulang komputer.
Lakukan langkah berikutnya jika agen tidak dijalankan setelah menghidupkan ulang komputer.
Jika agen sudah dikonfigurasi pada komputer
Sebelum mengonfigurasi ulang agen, perlu untuk menghapus konfigurasi agen lama, jadi cobalah untuk menjalankan perintah ini dari folder agen:
.\config.cmd remove --auth 'PAT' --token '<token>'
Periksa apakah agen dihapus dari kumpulan agen Anda setelah menjalankan perintah:
<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents
Hapus agen dari kumpulan agen Anda secara manual jika tidak dihapus dengan menjalankan perintah .
Kemudian coba konfigurasi ulang agen dengan menjalankan perintah ini dari folder agen:
.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'
Tentukan nama agen (nama unik tertentu) dan periksa apakah agen ini muncul di kumpulan agen Anda setelah mengonfigurasi ulang.
Akan jauh lebih baik untuk membuka kemasan arsip agen (yang dapat diunduh di sini) dan menjalankan perintah ini dari folder agen baru yang tidak dikemas.
Periksa apakah kunci registri Windows direkam dan disimpan dengan benar
Jalankan whoami /user
perintah untuk mendapatkan <sid>
. Buka Registry Editor
dan ikuti jalurnya:
Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Periksa apakah ada kuncinya VSTSAgent
. Hapus kunci ini jika ada, lalu tutup Registry Editor
dan konfigurasikan agen dengan menjalankan .\config.cmd
perintah (tanpa arg) dari folder agen. Sebelum menjawab pertanyaan Enter Restart the machine at a later time?
, buka Registry Editor
lagi dan periksa apakah VSTSAgent
kunci telah muncul. Tekan Enter
untuk menjawab pertanyaan, dan periksa apakah VSTSAgent
kunci tetap ada di tempatnya setelah menghidupkan ulang komputer.
Periksa apakah kunci registri Windows berfungsi dengan baik pada komputer Anda
Buat autorun.cmd
file yang berisi baris berikut: echo "Hello from AutoRun!"
.
Buka Registry Editor
dan buat di jalur di atas pasangan kunci-nilai baru dengan kunci AutoRun
dan nilai
C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"
Hidupkan ulang mesin Anda. Anda mengalami masalah dengan kunci registri Windows jika Anda tidak melihat jendela konsol dengan pesan.Hello from AutoRun!
Grup penyebaran saja
--deploymentGroup
- mengonfigurasi agen sebagai agen grup penyebaran--deploymentGroupName <name>
- digunakan dengan--deploymentGroup
untuk menentukan grup penyebaran agar agen bergabung--projectName <name>
- digunakan dengan--deploymentGroup
untuk mengatur nama proyek--addDeploymentGroupTags
- digunakan dengan--deploymentGroup
untuk menunjukkan bahwa tag grup penyebaran harus ditambahkan--deploymentGroupTags <tags>
- digunakan dengan--addDeploymentGroupTags
untuk menentukan daftar tag yang dipisahkan koma untuk agen grup penyebaran - misalnya "web, db"
Hanya lingkungan
--addvirtualmachineresourcetags
- digunakan untuk menunjukkan bahwa tag sumber daya lingkungan harus ditambahkan--virtualmachineresourcetags <tags>
- digunakan dengan--addvirtualmachineresourcetags
untuk menentukan daftar tag yang dipisahkan koma untuk agen sumber daya lingkungan - misalnya "web, db"
.\config --help
selalu mencantumkan respons terbaru yang diperlukan dan opsional.
Diagnostik
Jika Anda mengalami masalah dengan agen yang dihost sendiri, Anda dapat mencoba menjalankan diagnostik. Setelah mengonfigurasi agen:
.\run --diagnostics
Ini akan berjalan melalui rangkaian diagnostik yang dapat membantu Anda memecahkan masalah. Fitur diagnostik tersedia mulai agen versi 2.165.0.
Diagnostik jaringan untuk agen yang dihost sendiri
Atur nilai Agent.Diagnostic
ke true
untuk mengumpulkan log tambahan yang dapat digunakan untuk memecahkan masalah jaringan untuk agen yang dihost sendiri. Untuk informasi selengkapnya, lihat Diagnostik jaringan untuk agen yang dihost sendiri
Bantuan tentang opsi lain
Untuk mempelajari tentang opsi lain:
.\config --help
Bantuan ini menyediakan informasi tentang alternatif autentikasi dan konfigurasi tanpa pengawas.
Kemampuan
Kemampuan agen Anda dikatalogkan dan diiklankan di kumpulan sehingga hanya build dan rilis yang dapat ditangani untuk itu. Lihat Kemampuan membangun dan merilis agen.
Dalam banyak kasus, setelah menyebarkan agen, Anda harus menginstal perangkat lunak atau utilitas. Umumnya Anda harus menginstal pada agen Anda perangkat lunak dan alat apa pun yang Anda gunakan di mesin pengembangan Anda.
Misalnya, jika build Anda menyertakan tugas npm, build tidak akan berjalan kecuali ada agen build di kumpulan yang telah menginstal npm.
Penting
Kemampuan mencakup semua variabel lingkungan dan nilai yang diatur saat agen berjalan. Jika salah satu nilai ini berubah saat agen berjalan, agen harus dimulai ulang untuk mengambil nilai baru. Setelah menginstal perangkat lunak baru pada agen, Anda harus memulai ulang agen agar kemampuan baru muncul di kumpulan, sehingga build dapat berjalan.
Jika Anda ingin mengecualikan variabel lingkungan sebagai kemampuan, Anda dapat menunjuknya dengan mengatur variabel VSO_AGENT_IGNORE
lingkungan dengan daftar variabel yang dibatasi koma untuk diabaikan.
FAQ
Versi Git apa yang dijalankan agen saya?
Secara default, agen Windows menggunakan versi Git yang dibundel dengan perangkat lunak agen. Microsoft merekomendasikan penggunaan versi Git yang dibundel dengan agen, tetapi Anda memiliki beberapa opsi untuk mengambil alih perilaku default ini dan menggunakan versi Git yang telah diinstal mesin agen di jalur.
- Atur variabel alur bernama
System.PreferGitFromPath
ketrue
di alur Anda. - Pada agen yang dihost sendiri, Anda dapat membuat file bernama .env di direktori akar agen dan menambahkan
System.PreferGitFromPath=true
baris ke file. Untuk informasi selengkapnya, lihat Bagaimana cara mengatur variabel lingkungan yang berbeda untuk setiap agen individu?
Untuk melihat versi Git yang digunakan oleh alur, Anda dapat melihat log untuk checkout
langkah di alur Anda, seperti yang ditunjukkan dalam contoh berikut.
Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1
Bagaimana cara memastikan saya memiliki versi agen terbaru?
Navigasi ke tab Kumpulan agen:
Masuk ke organisasi Anda (
https://dev.azure.com/{yourorganization}
).Pilih Azure DevOps, Pengaturan organisasi.
Pilih Kumpulan agen.
Masuk ke koleksi proyek Anda (
http://your-server/DefaultCollection
).Pilih Azure DevOps, Pengaturan koleksi.
Pilih Kumpulan agen.
Pilih Azure DevOps, Pengaturan koleksi.
Pilih Kumpulan agen.
Klik kumpulan yang berisi agen.
Pastikan agen diaktifkan.
Navigasi ke tab kemampuan:
Dari tab Kumpulan agen, pilih kumpulan agen yang diinginkan.
Pilih Agen dan pilih agen yang diinginkan.
Pilih tab Kapabilitas .
Catatan
Agen yang dihosting Microsoft tidak menampilkan kemampuan sistem. Untuk daftar perangkat lunak yang diinstal pada agen yang dihosting Microsoft, lihat Menggunakan agen yang dihosting Microsoft.
Dari tab Kumpulan agen, pilih kumpulan yang diinginkan.
Pilih Agen dan pilih agen yang diinginkan.
Pilih tab Kapabilitas .
Dari tab Kumpulan agen, pilih kumpulan yang diinginkan.
Pilih Agen dan pilih agen yang diinginkan.
Pilih tab Kapabilitas .
Cari kemampuannya
Agent.Version
. Anda dapat memeriksa nilai ini terhadap versi agen terbaru yang diterbitkan. Lihat Agen Azure Pipelines dan periksa halaman untuk nomor versi tertinggi yang tercantum.Setiap agen secara otomatis memperbarui dirinya sendiri ketika menjalankan tugas yang memerlukan versi agen yang lebih baru. Jika Anda ingin memperbarui beberapa agen secara manual, klik kanan kumpulan, dan pilih Perbarui semua agen.
Dapatkah saya memperbarui agen saya yang merupakan bagian dari kumpulan Azure DevOps Server?
Ya. Dimulai dengan Azure DevOps Server 2019, Anda dapat mengonfigurasi server untuk mencari file paket agen pada disk lokal. Konfigurasi ini akan mengambil alih versi default yang disertakan dengan server pada saat rilisnya. Skenario ini juga berlaku ketika server tidak memiliki akses ke internet.
Dari komputer dengan akses Internet, unduh versi terbaru file paket agen (dalam bentuk .zip atau .tar.gz) dari halaman Rilis GitHub Agen Azure Pipelines.
Transfer file paket yang diunduh ke setiap Tingkat Aplikasi Azure DevOps Server dengan menggunakan metode pilihan Anda (seperti drive USB, Transfer jaringan, dan sebagainya). Tempatkan file agen di bawah folder berikut:
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- macOS:
usr/share/Microsoft/Azure DevOps/Agents
Buat folder Agen jika tidak ada.
- Anda sudah siap! Server Azure DevOps Anda sekarang akan menggunakan file lokal setiap kali agen diperbarui. Setiap agen secara otomatis memperbarui dirinya sendiri ketika menjalankan tugas yang memerlukan versi agen yang lebih baru. Tetapi jika Anda ingin memperbarui beberapa agen secara manual, klik kanan kumpulan, lalu pilih Perbarui semua agen.
Saya menjalankan firewall dan kode saya ada di Azure Repos. URL apa saja yang perlu berkomunikasi dengan agen?
Jika Anda menjalankan agen di jaringan aman di belakang firewall, pastikan agen dapat memulai komunikasi dengan URL dan alamat IP berikut.
Domain URL | Deskripsi |
---|---|
https://{organization_name}.pkgs.visualstudio.com |
AZURE DevOps Packaging API untuk organisasi menggunakan {organization_name}.visualstudio.com domain |
https://{organization_name}.visualstudio.com |
Untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain |
https://{organization_name}.vsblob.visualstudio.com |
Telemetri Azure DevOps untuk organisasi menggunakan {organization_name}.visualstudio.com domain |
https://{organization_name}.vsrm.visualstudio.com |
Release Management Services untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain |
https://{organization_name}.vssps.visualstudio.com |
Azure DevOps Platform Services untuk organisasi menggunakan {organization_name}.visualstudio.com domain |
https://{organization_name}.vstmr.visualstudio.com |
Layanan Manajemen Pengujian Azure DevOps untuk organisasi menggunakan {organization_name}.visualstudio.com domain |
https://*.blob.core.windows.net |
Azure Artifacts |
https://*.dev.azure.com |
Untuk organisasi yang menggunakan dev.azure.com domain |
https://*.vsassets.io |
Azure Artifacts melalui CDN |
https://*.vsblob.visualstudio.com |
Telemetri Azure DevOps untuk organisasi menggunakan dev.azure.com domain |
https://*.vssps.visualstudio.com |
Azure DevOps Platform Services untuk organisasi menggunakan dev.azure.com domain |
https://*.vstmr.visualstudio.com |
Layanan Manajemen Pengujian Azure DevOps untuk organisasi menggunakan dev.azure.com domain |
https://app.vssps.visualstudio.com |
Untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain |
https://dev.azure.com |
Untuk organisasi yang menggunakan dev.azure.com domain |
https://login.microsoftonline.com |
Masuk Microsoft Entra |
https://management.core.windows.net |
API Manajemen Azure |
https://vstsagentpackage.azureedge.net |
Paket agen |
Untuk memastikan organisasi Anda bekerja dengan pembatasan firewall atau IP yang ada, pastikan bahwa dev.azure.com
dan *dev.azure.com
terbuka serta perbarui IP yang diizinkan untuk menyertakan alamat IP berikut, berdasarkan versi IP Anda. Jika saat ini Anda mengizinkan daftar 13.107.6.183
alamat IP dan 13.107.9.183
, biarkan alamat TERSEBUT di tempat, karena Anda tidak perlu menghapusnya.
Rentang IPv4
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
Rentang IPv6
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Catatan
Untuk informasi selengkapnya tentang alamat yang diizinkan, lihat Daftar alamat yang diizinkan dan koneksi jaringan.
Bagaimana cara menjalankan agen dengan sertifikat yang ditandatangani sendiri?
Catatan
Menjalankan agen dengan sertifikat yang ditandatangani sendiri hanya berlaku untuk Azure DevOps Server.
Jalankan agen dengan sertifikat yang ditandatangani sendiri
Bagaimana cara menjalankan agen di belakang proksi web?
Menjalankan agen di belakang proksi web
Bagaimana cara menghidupkan ulang agen
Jika Anda menjalankan agen secara interaktif, lihat instruksi mulai ulang di Jalankan secara interaktif. Jika Anda menjalankan agen sebagai layanan, mulai ulang agen dengan mengikuti langkah-langkah di Jalankan sebagai layanan.
Bagaimana cara mengatur variabel lingkungan yang berbeda untuk setiap agen individu?
Buat .env
file di bawah direktori akar agen dan letakkan variabel lingkungan yang ingin Anda atur ke dalam file dalam format berikut, lalu mulai ulang agen.
MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4
Bagaimana cara mengonfigurasi agen untuk melewati proksi web dan menyambungkan ke Azure Pipelines?
Jika Anda ingin agen melewati proksi Anda dan terhubung ke Azure Pipelines secara langsung, maka Anda harus mengonfigurasi proksi web Anda untuk memungkinkan agen mengakses URL berikut.
Untuk organisasi yang menggunakan *.visualstudio.com
domain:
https://login.microsoftonline.com
https://app.vssps.visualstudio.com
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com
Untuk organisasi yang menggunakan dev.azure.com
domain:
https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com
Untuk memastikan organisasi Anda bekerja dengan pembatasan firewall atau IP yang ada, pastikan bahwa dev.azure.com
dan *dev.azure.com
terbuka serta perbarui IP yang diizinkan untuk menyertakan alamat IP berikut, berdasarkan versi IP Anda. Jika saat ini Anda mengizinkan daftar 13.107.6.183
alamat IP dan 13.107.9.183
, biarkan alamat TERSEBUT di tempat, karena Anda tidak perlu menghapusnya.
Rentang IPv4
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
Rentang IPv6
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Catatan
Prosedur ini memungkinkan agen melewati proksi web. Alur build dan skrip Anda masih harus menangani melewati proksi web Anda untuk setiap tugas dan alat yang Anda jalankan di build Anda.
Misalnya, jika Anda menggunakan tugas NuGet, Anda harus mengonfigurasi proksi web untuk mendukung melewati URL untuk server yang menghosting umpan NuGet yang Anda gunakan.
Saya menggunakan TFS dan URL di bagian di atas tidak berfungsi untuk saya. Di mana saya bisa mendapatkan bantuan?
Saya menggunakan TFS lokal dan saya tidak melihat beberapa fitur ini. Mengapa bukan?
Beberapa fitur ini hanya tersedia di Azure Pipelines dan belum tersedia secara lokal. Beberapa fitur tersedia secara lokal jika Anda telah meningkatkan ke TFS versi terbaru.
Apa yang mengaktifkan SERVICE_SID_TYPE_UNRESTRICTED untuk layanan agen?
Saat mengonfigurasi perangkat lunak agen di Windows Server, Anda dapat menentukan pengidentifikasi keamanan layanan dari perintah berikut.
Enter enable SERVICE_SID_TYPE_UNRESTRICTED for agent service (Y/N) (press enter for N)
Versi perangkat lunak agen sebelumnya mengatur jenis pengidentifikasi keamanan layanan ke SERVICE_SID_TYPE_NONE
, yang merupakan nilai default untuk versi agen saat ini. Untuk mengonfigurasi jenis pengidentifikasi layanan keamanan ke SERVICE_SID_TYPE_UNRESTRICTED
, tekan Y
.
Untuk informasi selengkapnya, lihat struktur SERVICE_SID_INFO dan Pengidentifikasi keamanan.