Agen Windows yang dihost sendiri

Layanan Azure DevOps | Azure DevOps Server

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 4.x dengan Azure DevOps Services dan Azure DevOps Server.

Artikel ini menyediakan panduan untuk menggunakan perangkat lunak agen 3.x dengan Azure DevOps Server 2022 dan Azure DevOps Server 2020. Untuk daftar versi Azure DevOps Server yang mendukung agen 3.x, lihat Apakah Azure DevOps Server mendukung agen 3.x.

Penting

Jika Anda menggunakan Azure DevOps Services atau Azure DevOps Server, Anda harus menggunakan perangkat lunak agen 4.x.

Nota

Agen Windows ARM64 umumnya tersedia untuk Windows 11. Untuk informasi selengkapnya, lihat sistem operasi yang didukung agen v4.

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.

Tip

Anda dapat menggunakan AI untuk membantu tugas ini nanti dalam artikel ini, atau lihat Aktifkan bantuan AI dengan Azure DevOps MCP Server untuk memulai.

Periksa prasyarat

Pastikan komputer Anda memiliki prasyarat ini:

  • Versi sistem operasi
    • x64
      • Sistem Operasi Klien
        • Windows 10
          • 21H2, 1809, 1607
        • Windows 11
          • 23H2, 22H2, 21H2
      • Sistem Operasi Server
        • Windows Server 2012 atau yang lebih tinggi
    • ARM64
      • Sistem Operasi Klien
        • Windows 11
          • 26H1, 25H2, 24H2
  • Perangkat lunak agen menginstal .NET versinya sendiri tanpa memerlukan prasyarat .NET.
  • PowerShell 3.0 atau yang lebih tinggi
  • Subversion - Jika Anda membangun dari repositori Subversion, Anda harus menginstal klien Subversion pada komputer.
  • Direkomendasikan - Visual Studio Build Tools (2015 atau lebih tinggi)
  • Versi sistem operasi
    • Sistem Operasi Klien
      • Windows 7 SP1 ESU
      • Windows 8.1
      • Windows 10
      • Windows 11
    • Sistem Operasi Server
      • Windows Server 2012 atau yang lebih tinggi
  • Perangkat lunak agen menginstal .NET versinya sendiri tanpa memerlukan prasyarat .NET.
  • PowerShell 3.0 atau yang lebih tinggi
  • Subversion - Jika Anda membangun dari repositori Subversion, Anda harus menginstal klien Subversion pada komputer.
  • Direkomendasikan - Visual Studio Build Tools (2015 atau lebih tinggi)

Anda harus menjalankan penyiapan agen secara manual pada kali pertama. Setelah Anda memahami cara kerja agen, atau jika Anda ingin mengotomatiskan pengaturan banyak agen, pertimbangkan untuk menggunakan konfigurasi tanpa pengawasan.

Spesifikasi perangkat keras

Spesifikasi perangkat keras agen Anda bergantung pada kebutuhan, ukuran tim, dan faktor lainnya. 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 dikelola sendiri

Pengguna yang mengonfigurasi agen memerlukan izin admin kumpulan, tetapi pengguna yang menjalankan agen tidak.

Folder yang dikelola oleh agen harus dibatasi hanya untuk sesedikit mungkin pengguna karena berisi rahasia yang dapat didekripsi atau dicuri.

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 digunakan untuk menjalankan agen berbeda dengan identitas yang memiliki 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:

  1. Buka browser dan navigasi ke tab Kumpulan agen untuk organisasi Azure Pipelines atau Server Azure DevOps atau server TFS:

    1. Masuk ke organisasi Anda (https://dev.azure.com/{yourorganization}).

    2. PilihPengaturan Organisasi>.

      Cuplikan layar yang memperlihatkan cara memilih Pengaturan organisasi.

    3. Pilih Kumpulan agen.

      Cuplikan layar yang memperlihatkan cara memilih tab Kumpulan agen.

    1. Masuk ke koleksi proyek Anda (http://your-server/DefaultCollection).

    2. Pilih Azure DevOps>Pengaturan Koleksi.

      Cuplikan layar yang memperlihatkan cara memilih Pengaturan koleksi.

    3. Pilih Kumpulan agen.

      Pilih Kumpulan agen.

    Cuplikan layar yang memperlihatkan cara masuk ke dan memilih Kumpulan agen.

  2. Pilih kumpulan di sisi kanan halaman lalu klik Keamanan.

  3. 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.

Nota

Jika Anda melihat pesan seperti ini: Tidak dapat mengubah peran untuk identitas diri. Silakan coba dengan 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 antrean agen.

Mengunduh dan mengonfigurasi agen

Azure Pipelines (Alat otomatisasi alur kerja pengembangan perangkat lunak dari Microsoft)

  1. Masuk ke komputer menggunakan akun yang telah Anda siapkan izinnya seperti yang dijelaskan di atas.

  2. Di browser web Anda, masuk ke Azure Pipelines, dan navigasikan ke tab Agent pools:

    1. Masuk ke organisasi Anda (https://dev.azure.com/{yourorganization}).

    2. PilihPengaturan Organisasi>.

      Cuplikan layar yang memperlihatkan cara memilih Pengaturan organisasi.

    3. Pilih Kumpulan agen.

      Cuplikan layar yang memperlihatkan cara memilih tab Kumpulan agen.

    1. Masuk ke koleksi proyek Anda (http://your-server/DefaultCollection).

    2. Pilih Azure DevOps>Pengaturan Koleksi.

      Cuplikan layar yang memperlihatkan cara memilih Pengaturan koleksi.

    3. Pilih Kumpulan agen.

      Pilih Kumpulan agen.

    Cuplikan layar yang memperlihatkan cara masuk ke dan memilih Kumpulan agen.

  3. Pilih kumpulan Default , pilih tab Agen , dan pilih Agen baru.

  4. Pada kotak dialog Dapatkan agen , pilih Windows.

  5. 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.

  6. Di panel kanan, klik tombol Unduh .

  7. Ikuti instruksi di halaman untuk mengunduh perangkat lunak agen.

  8. Ekstrak agen ke direktori yang Anda pilih. Pastikan bahwa jalur ke direktori tidak berisi spasi karena alat dan skrip tidak selalu dapat menangani spasi dengan benar. Folder yang disarankan adalah C:\agents. Mengekstrak di folder unduhan atau di folder pengguna lainnya 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.

Nota

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.

Menginstal aplikasi agen

  1. Mulai jendela PowerShell yang ditingkatkan dan atur lokasi ke tempat Anda membuka kemasan agen.

    cd C:\agents 
    
    
  2. Jalankan config.cmd. Ini akan mengajukan serangkaian pertanyaan untuk mengonfigurasi agen ini.

    .\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 untuk 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 dihosting sendiri .

  • Token akses pribadi.
  • Alternatif: Menyambungkan ke Azure DevOps Server dengan 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.

  • Berunding 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 dijalankan sebagai layanan (yang kami sarankan), nama pengguna yang digunakan 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.

Nota

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 solusi sementara, Anda dapat mengatur kenop AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL agen ke true di dalam pipeline. 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 ditutup dengan mulus (berguna untuk dijalankan di Docker pada layanan seperti Azure Container Instances).

Jalankan sebagai layanan

Jika Anda mengonfigurasi agen untuk dijalankan sebagai layanan, layanan tersebut akan dimulai secara otomatis. Anda dapat melihat dan mengontrol status operasional agen 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)"

Nota

Untuk memungkinkan kontrol akses yang lebih fleksibel terhadap agen yang berjalan sebagai layanan, dimungkinkan untuk menyiapkan jenis SID layanan agen sebagai [SERVICE_SID_TYPE_UNRESTRICTED] melalui flag atau prompt 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.

Nota

Jika Anda perlu mengubah akun login agen, jangan melakukannya dari snap-in Layanan. Sebagai gantinya, lihat informasi di bawah ini untuk mengonfigurasi ulang agen.

Untuk menggunakan agen Anda, jalankan tugas 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 sedang 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 pengawasan

Agen dapat disiapkan dari skrip tanpa intervensi manusia. Anda harus melewati --unattended dan jawaban atas semua pertanyaan.

Untuk mengonfigurasi agen, ia harus mengetahui URL ke organisasi atau koleksi, dan informasi kredensial dari seseorang yang telah diberi wewenang 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 - pengaturan agen tidak akan meminta informasi, dan semua pengaturan harus disediakan melalui baris perintah
  • --url <url> - URL dari 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 bawaan 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 format domain\userName atau userName@domain.com
    • --password <password> - menentukan kata sandi
  • Jika Anda memilih --auth SP:
    • --clientID <clientID> - menentukan ID Klien Perwakilan Layanan dengan akses untuk mendaftarkan agen
    • --tenantId <tenantID> - menentukan ID Penyewa tempat Perwakilan Layanan terdaftar
    • --clientSecret <clientSecret> - menentukan Rahasia Pelanggan Perwakilan Layanan
    • Lihat Mendaftarkan agen menggunakan perwakilan layanan untuk informasi selengkapnya

Nama kumpulan dan agen

  • --pool <pool> - nama kumpulan bagi agen untuk bergabung
  • --agent <agent> - nama agen
  • --replace - ganti agen dalam kolam. Jika ada agen lain yang mendengarkan dengan nama yang sama, itu akan mulai gagal karena konflik.

Penyiapan agen

  • --work <workDirectory> - direktori kerja tempat data pekerjaan disimpan. Secara default, disimpan pada direktori utama agen pada _work. Direktori kerja dimiliki oleh agen tertentu dan tidak boleh dibagikan antara beberapa agen.
  • --acceptTeeEula - menyetujui Perjanjian Lisensi Pengguna Akhir Team Explorer Everywhere (hanya untuk 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 format domain\userName atau userName@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 sebagai SERVICE_SID_TYPE_UNRESTRICTED (memerlukan izin administrator)
  • --overwriteAutoLogon - digunakan dengan --runAsAutoLogon untuk menggantikan log masuk otomatis yang ada di mesin
  • --noRestart - digunakan dengan --runAsAutoLogon untuk menghentikan host memulai ulang setelah konfigurasi agen selesai

Mengatasi masalah saat mengonfigurasi agen dengan opsi runAsAutoLogon

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 tersebut.

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 pasangan kunci-nilai baru pada jalur yang disebutkan di atas 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 bersama dengan --deploymentGroup untuk menentukan grup penyebaran yang akan diikuti agen tertentu.
  • --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"

Lingkungan saja

  • --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 dihosting sendiri, Anda dapat mencoba untuk 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 mandiri

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 ditampilkan dalam kumpulan sehingga hanya build dan rilis yang dapat ditanganinya yang akan ditugaskan kepadanya. 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 ditetapkan ketika agen berjalan. Jika salah satu nilai ini berubah saat agen berjalan, agen harus dijalankan ulang untuk mengambil nilai baru. Setelah Anda menginstal perangkat lunak baru pada agen, Anda harus memulai ulang agen agar fitur baru ditampilkan di kumpulan, sehingga proses build dapat berjalan.

Jika Anda ingin mengecualikan variabel lingkungan sebagai kemampuan, Anda dapat menunjuknya dengan mengatur variabel lingkungan VSO_AGENT_IGNORE dengan daftar variabel yang dibatasi koma untuk diabaikan.

Menggunakan AI untuk merencanakan, mengonfigurasi, dan mengoperasikan agen Windows

Contoh perintah berikut untuk Copilot Chat membantu Anda dalam merencanakan penyiapan agen, mengonfigurasi dan memvalidasi lingkungan, serta memecahkan masalah bila diperlukan. Salin dan tempel prompt ini ke Copilot Chat, lalu ganti placeholder dengan detail lingkungan Anda.

Tugas Contoh tanggapan
Rencana penyebaran agen Given these pipelines and workloads, help me decide how many Windows self-hosted agents to run, where to host them, and whether to use interactive or service mode.
Membuat daftar periksa penyiapan Create a step-by-step checklist for installing and configuring a Windows self-hosted agent with service mode, including permissions and security hardening.
Validasi kesiapan sebelum penggunaan pertama Review my agent configuration and confirm whether this machine is ready to run builds, including required tools, capabilities, and folder permissions.
Tinjau kemampuan dan kecocokan permintaan This pipeline says no suitable agent found. Compare this job's demands with my Windows agent capabilities and tell me what to fix.
Memecahkan masalah kegagalan pendaftaran Help me troubleshoot why this Windows self-hosted agent registration failed. Here is the config.cmd output: <paste output>.
Mengatasi masalah jalur modul runtime I see this error on a Windows agent: Error in TypeData System.Security.AccessControl.ObjectSecurity. Explain the root cause and how to fix it safely.

Copilot didukung oleh AI, sehingga kejutan dan kesalahan dimungkinkan. Untuk informasi selengkapnya, lihat FAQ penggunaan umum Copilot.

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.

Untuk melihat versi Git yang digunakan oleh pipeline, Anda dapat melihat log untuk checkout tahap di pipeline 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 memastikan saya memiliki versi agen yang terbaru?

  1. Navigasi ke tab Kumpulan Agen:

    1. Masuk ke organisasi Anda (https://dev.azure.com/{yourorganization}).

    2. PilihPengaturan Organisasi>.

      Cuplikan layar yang memperlihatkan cara memilih Pengaturan organisasi.

    3. Pilih Kumpulan agen.

      Cuplikan layar yang memperlihatkan cara memilih tab Kumpulan agen.

    1. Masuk ke koleksi proyek Anda (http://your-server/DefaultCollection).

    2. Pilih Azure DevOps>Pengaturan Koleksi.

      Cuplikan layar yang memperlihatkan cara memilih Pengaturan koleksi.

    3. Pilih Kumpulan agen.

      Pilih Kumpulan agen.

    Cuplikan layar yang memperlihatkan cara masuk ke dan memilih Kumpulan agen.

  2. Klik pool yang berisi agen.

  3. Pastikan agen diaktifkan.

  4. Navigasi ke tab kemampuan:

    1. Dari tab kumpulan agen, pilih kumpulan agen yang diinginkan.

      Dari kumpulan Agen, pilih kumpulan agen yang diinginkan.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Pilih Agen dan tentukan agen.

    3. Pilih tab Kapabilitas .

      Pilih tab Kemampuan.

      Nota

      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.

    1. Dari tab Kumpulan agen, pilih kumpulan yang diinginkan.

      Pilih kumpulan yang diinginkan.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Pilih Agen dan pilih agen yang diinginkan.

    3. Pilih tab Kapabilitas .

      tab kemampuan Agen .

  5. Cari kemampuan Agent.Version. Anda dapat memeriksa nilai ini dengan versi agen terbaru yang sudah dipublikasikan. Lihat Azure Pipelines Agent dan periksa halaman tersebut untuk menemukan nomor versi tertinggi yang terdaftar.

  6. 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.

  1. Dari komputer dengan akses Internet, unduh versi terbaru dari file paket agen (dalam format .zip atau .tar.gz) dari halaman Rilis GitHub Azure Pipelines Agent.

  2. 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 Agents jika tidak ada.

  1. 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 dihubungi oleh 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 yang menggunakan domain {organization_name}.visualstudio.com
https://{organization_name}.visualstudio.com Untuk organisasi yang menggunakan domain {organization_name}.visualstudio.com
https://{organization_name}.vsblob.visualstudio.com Telemetri Azure DevOps untuk organisasi menggunakan domain {organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com Release Management Services untuk organisasi menggunakan domain {organization_name}.visualstudio.com
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services untuk organisasi yang menggunakan domain {organization_name}.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com Layanan Manajemen Pengujian Azure DevOps untuk organisasi menggunakan {organization_name}.visualstudio.com domain
https://*.blob.core.windows.net Artefak Azure
https://*.dev.azure.com Untuk organisasi yang menggunakan domain dev.azure.com
https://*.vsassets.io Azure Artifacts melalui CDN
https://*.vsblob.visualstudio.com Telemetri Azure DevOps untuk organisasi menggunakan domain dev.azure.com
https://*.vssps.visualstudio.com Azure DevOps Platform Services untuk organisasi yang menggunakan domain dev.azure.com
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 domain {organization_name}.visualstudio.com
https://dev.azure.com Untuk organisasi yang menggunakan domain dev.azure.com
https://login.microsoftonline.com Masuk ke Microsoft Entra
https://management.core.windows.net API Manajemen Azure
https://download.agent.dev.azure.com Paket untuk agen

Penting

Edgio CDN untuk Azure DevOps dihentikan, yang mengharuskan URL domain baru untuk diizinkan tercantum dalam aturan firewall untuk unduhan perangkat lunak agen. Domain baru yang diizinkan dalam daftar izin untuk mengunduh agen adalah https://*.dev.azure.com. Jika aturan firewall Anda tidak mengizinkan wildcard, gunakan https://download.agent.dev.azure.com.

Tim Azure DevOps merekomendasikan untuk membuat perubahan ini pada tanggal berikut:

  • 1 Mei 2025 untuk Layanan Azure DevOps
  • 15 Mei 2025 untuk Azure DevOps Server

Untuk informasi selengkapnya, lihat Perubahan URL Domain CDN untuk Agen di Alur.

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 alamat IP 13.107.6.183 dan 13.107.9.183, biarkan tetap ada di sana karena Anda tidak perlu menghapusnya.


13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
150.171.22.0/24 
150.171.23.0/24 
150.171.73.0/24 
150.171.74.0/24 
150.171.75.0/24 
150.171.76.0/24

Nota

Untuk informasi selengkapnya tentang alamat yang diizinkan, lihat Daftar alamat yang diizinkan dan koneksi jaringan.

Bagaimana cara menjalankan agen dengan sertifikat yang ditandatangani sendiri?

Nota

Menjalankan agen dengan sertifikat yang ditandatangani sendiri hanya berlaku untuk Azure DevOps Server.

Jalankan agen dengan sertifikat swatandatangan

Bagaimana cara mengoperasikan agen di belakang proksi web?

Menjalankan agen melalui 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 yang dijelaskan 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 domain *.visualstudio.com:

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 domain dev.azure.com:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://download.agent.dev.azure.com
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 alamat IP 13.107.6.183 dan 13.107.9.183, biarkan tetap ada di sana karena Anda tidak perlu menghapusnya.


13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
150.171.22.0/24 
150.171.23.0/24 
150.171.73.0/24 
150.171.74.0/24 
150.171.75.0/24 
150.171.76.0/24

Nota

Prosedur ini memungkinkan agen melewati proksi web. Alur build dan skrip Anda tetap harus mengabaikan proksi web Anda untuk setiap tugas dan alat yang dijalankan dalam build Anda.

Misalnya, jika Anda menggunakan proses NuGet, Anda harus mengonfigurasi proksi web untuk mendukung pengecualian 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?

Pengaturan dan keamanan situs web

Mengapa saya tidak melihat beberapa fitur ini di Azure DevOps Server lokal saya?

Beberapa fitur ini hanya tersedia di Azure DevOps Services dan tidak tersedia untuk Azure DevOps Server lokal. Beberapa fitur hanya tersedia di versi terbaru Azure DevOps Server.

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.