Bagikan melalui


Agen Azure Pipelines

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Anda memerlukan setidaknya satu agen untuk membangun kode atau menyebarkan perangkat lunak Anda dengan menggunakan Azure Pipelines. Seiring berkembangnya basis kode dan tim Anda, Anda memerlukan beberapa agen.

Saat alur Anda berjalan, sistem memulai satu atau beberapa tugas. Agen adalah infrastruktur komputasi dengan perangkat lunak agen terinstal yang menjalankan satu pekerjaan pada satu waktu.

Azure Pipelines menyediakan beberapa jenis agen yang berbeda.

Jenis agen Deskripsi Ketersediaan
Agen yang di-host Microsoft Agen yang dihosting dan dikelola oleh Microsoft. Azure DevOps Services
Agen yang di-hosting secara mandiri Agen yang Anda konfigurasi dan kelola yang dihosting di komputer virtual (VM) Anda. Azure DevOps Services, Azure DevOps Server
Agen Kumpulan DevOps Terkelola Kumpulan DevOps Terkelola adalah layanan yang dikelola sepenuhnya. Komputer virtual atau kontainer yang mendukung agen tinggal di langganan Microsoft Azure dan bukan di langganan Azure Anda sendiri. Azure DevOps Services
Agent Skala Mesin Virtual Azure Bentuk agen yang dihost sendiri yang menggunakan Azure Virtual Machine Scale Sets dan dapat diskalakan secara otomatis untuk memenuhi tuntutan.

Jika Anda mempertimbangkan untuk menggunakan kumpulan agen yang dapat diskalakan otomatis dan dihost sendiri, kami sarankan Anda mempertimbangkan Kumpulan DevOps Terkelola. Untuk informasi selengkapnya, lihat Membandingkan Kumpulan DevOps Terkelola dengan agen Azure Virtual Machine Scale Sets dan ringkasan Kumpulan DevOps Terkelola.
Azure DevOps Services

Anda dapat menjalankan pekerjaan langsung di komputer host agen atau dalam kontainer.

Agen yang dihosting oleh Microsoft

Jika alur Anda berada di Azure Pipelines, Anda dapat menjalankan pekerjaan dengan mudah menggunakan agen yang dihosting Microsoft. Dengan agen yang dihosting Microsoft, pemeliharaan dan peningkatan terjadi secara otomatis.

Anda selalu memiliki versi terbaru dari citra VM yang Anda tentukan di pipeline Anda. Setiap kali Anda menjalankan pipeline, Anda mendapatkan mesin virtual baru untuk setiap pekerjaan di pipeline. Mesin virtual dibuang setelah satu tugas. Setiap perubahan yang dilakukan pekerjaan pada sistem file komputer virtual, seperti memeriksa kode, tidak tersedia pada pekerjaan berikutnya.

Agen yang dihosting Microsoft dapat menjalankan pekerjaan langsung di VM atau dalam kontainer.

Azure Pipelines menyediakan kumpulan agen yang telah ditentukan sebelumnya bernama Azure Pipelines dengan agen yang dihosting Microsoft.

Bagi banyak tim, proses ini adalah cara paling sederhana untuk menjalankan pekerjaan Anda. Anda dapat mencobanya dulu untuk melihat apakah itu berjalan dengan baik pada pembangunan atau penyebaran Anda. Jika tidak, Anda dapat menggunakan agen Virtual Machine Scale Sets atau agen yang dihost sendiri.

Kiat

Anda dapat mencoba agen yang dihosting Microsoft tanpa biaya.

Pelajari selengkapnya tentang agen yang dihosting Microsoft.

Agen yang di-hosting secara mandiri

Agen yang dihost sendiri adalah agen yang Anda siapkan untuk menjalankan pekerjaan dan mengelola diri Anda sendiri. Anda dapat menggunakan agen yang dihost sendiri di Azure Pipelines atau Azure DevOps Server. Agen yang dihost sendiri memberi Anda lebih banyak kontrol untuk menginstal perangkat lunak dependen yang Anda butuhkan untuk build dan penyebaran Anda. Selain itu, cache dan konfigurasi tingkat mesin tetap ada dari satu eksekusi ke eksekusi berikutnya, yang dapat meningkatkan kecepatan.

Meskipun beberapa agen dapat diinstal per mesin, kami sangat menyarankan Anda menginstal hanya satu agen per mesin. Saat Anda menginstal dua agen atau lebih, mungkin berdampak buruk pada performa dan hasil alur pemrosesan Anda.

Kiat

Sebelum menginstal agen yang dihost sendiri, Anda mungkin ingin melihat apakah kumpulan agen yang dihosting Microsoft berfungsi untuk Anda. Dalam banyak kasus, kumpulan agen yang dihosting Microsoft adalah cara paling sederhana untuk memulai. Cobalah.

Anda dapat menginstal agen di komputer Linux, macOS, dan Windows. Anda juga dapat menginstal agen pada kontainer Docker. Untuk mengetahui informasi selengkapnya tentang menginstal agen yang dihost sendiri, lihat:

Di macOS, Anda perlu menghapus atribut khusus pada arsip unduhan untuk mencegah pesan perlindungan Gatekeeper macOS muncul untuk setiap komponen dalam file TAR saat ./config.sh dijalankan. Perintah berikut menghapus atribut yang diperluas pada file:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.
 
# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Setelah menginstal agen pada komputer, Anda dapat menginstal perangkat lunak lain pada komputer yang diperlukan pekerjaan Anda.

Catatan

Agen kompatibel secara luas ke belakang. Versi agen apa pun harus kompatibel dengan versi Azure DevOps apa pun, selama Azure DevOps tidak menuntut versi agen yang lebih tinggi.

Kami hanya mendukung versi terbaru agen, karena itu adalah satu-satunya versi yang dijamin memiliki semua patch up-to-date dan perbaikan bug.

Versi-versi Node.js Runner

Agen dilengkapi dengan beberapa versi pustaka Node.js untuk mendukung tugas target yang menggunakan penangan Node.js yang berbeda.

Semua tugas Azure DevOps resmi menggunakan pustaka Node.js 20 sebagai handler universal. Namun, pelanggan mungkin masih menggunakan tugas khusus yang menggunakan versi Node.js yang sudah tidak didukung. Penulis tugas ekstensi/kustom harus memperbarui/menguji tugas mereka dengan versi Node.js saat ini.

Untuk informasi selengkapnya tentang siklus hidup runner Node.js di Azure Pipelines, lihat Node.js runner di Azure Pipelines Agent.

Agen Skala Set Mesin Virtual Azure

Agen Azure Virtual Machine Scale Sets adalah bentuk agen yang dikelola sendiri yang dapat diskalakan secara otomatis untuk memenuhi kebutuhan kapasitas Anda. Elastisitas ini mengurangi kebutuhan Anda untuk menjalankan agen yang didedikasikan sepanjang waktu. Tidak seperti agen yang dihosting Microsoft, Anda memiliki fleksibilitas atas ukuran dan gambar mesin tempat agen berjalan.

Azure Pipelines mengelola penskalaan agen Anda untuk Anda. Tentukan faktor-faktor berikut:

  • Set skala mesin virtual
  • Jumlah agen yang harus disiagakan
  • Jumlah maksimum mesin virtual dalam himpunan skala

Untuk informasi selengkapnya, lihat Agen Azure Virtual Machine Scale Sets.

Agen Kumpulan DevOps Terkelola

Managed DevOps Pools memungkinkan tim pengembangan untuk dengan cepat dan mudah membuat kumpulan agen Azure DevOps agar sesuai dengan kebutuhan spesifik tim.

Kumpulan DevOps Terkelola:

  • Menerapkan praktik terbaik keamanan.
  • Menyediakan cara untuk menyeimbangkan biaya dan performa.
  • Menyediakan jalur untuk skenario yang paling umum.
  • Secara signifikan mengurangi waktu yang diperlukan untuk membuat dan memelihara custom pool.

Kumpulan DevOps yang Dikelola merupakan evolusi dari kumpulan agen Azure Virtual Machine Scale Sets. Ini menyederhanakan pembuatan kumpulan kustom lebih jauh dengan meningkatkan skalabilitas dan keandalan kumpulan kustom. Kumpulan DevOps Terkelola adalah layanan yang dikelola sepenuhnya. Mesin virtual atau kontainer tempat agen berada di langganan Microsoft Azure dan bukan di langganan Azure Anda sendiri, seperti kumpulan agen pada Azure Virtual Machine Scale Sets. Untuk informasi selengkapnya, lihat dokumentasi Kumpulan DevOps Terkelola.

Pekerjaan paralel

Konsep pekerjaan paralel mewakili jumlah pekerjaan yang dapat Anda jalankan secara bersamaan di organisasi Anda. Jika organisasi Anda memiliki satu pekerjaan paralel, Anda dapat menjalankan satu pekerjaan pada satu waktu di organisasi Anda. Pekerjaan bersamaan lainnya diantrekan sampai pekerjaan pertama selesai. Untuk menjalankan dua pekerjaan secara bersamaan, Anda memerlukan dua pekerjaan paralel. Di Azure Pipelines, Anda dapat menjalankan pekerjaan paralel pada infrastruktur yang dihosting Microsoft atau infrastruktur Anda sendiri (yang dihost sendiri).

Microsoft menyediakan tingkat layanan gratis secara default di setiap organisasi yang mencakup setidaknya satu pekerjaan paralel. Bergantung pada jumlah alur bersamaan yang perlu Anda jalankan, Anda mungkin memerlukan lebih banyak pekerjaan paralel untuk menggunakan beberapa agen yang dihosting Microsoft atau dihost sendiri secara bersamaan. Untuk informasi selengkapnya tentang pekerjaan paralel dan tingkat layanan gratis yang berbeda, lihat Pekerjaan paralel di Azure Pipelines.

Anda mungkin memerlukan lebih banyak pekerjaan paralel untuk menggunakan beberapa agen secara bersamaan:

Penting

Dimulai dengan Azure DevOps Server 2019, Anda tidak membayar untuk pekerjaan parallel yang di-host sendiri dalam proses rilis. Anda hanya dibatasi oleh jumlah agen yang Anda miliki.

Kemampuan

Setiap agen yang di-host secara mandiri memiliki serangkaian kemampuan yang menunjukkan apa yang dapat dilakukannya. Kemampuan adalah pasangan nama/nilai yang merupakan salah satu dari berikut:

  • Kemampuan yang ditemukan perangkat lunak agen, yang disebut kemampuan sistem.
  • Kemampuan yang Anda tentukan, disebut kemampuan pengguna.

Perangkat lunak agen secara otomatis menentukan berbagai kemampuan sistem. Kemampuan ini termasuk nama mesin, jenis sistem operasi, dan versi perangkat lunak tertentu yang diinstal pada komputer. Selain itu, variabel lingkungan yang ditentukan dalam komputer secara otomatis muncul dalam daftar kemampuan sistem.

Saat Anda menyimpan variabel lingkungan sebagai kemampuan, nilai kemampuan tersimpan digunakan untuk mengatur variabel lingkungan saat agen berjalan. Selain itu, ketika Anda membuat perubahan apa pun pada variabel lingkungan saat agen berjalan, mereka tidak diambil dan digunakan oleh tugas apa pun. Jika Anda tidak ingin variabel lingkungan sensitif yang berubah disimpan sebagai kemampuan, Anda dapat mengarahkan agen untuk mengabaikannya. Atur VSO_AGENT_IGNORE variabel lingkungan, dengan daftar variabel yang dibatasi koma untuk diabaikan. Misalnya, PATH adalah variabel penting yang mungkin ingin Anda abaikan jika Anda menginstal perangkat lunak.

Saat Anda menulis alur kerja, Anda menentukan tuntutan tertentu dari agen. Sistem mengirimkan pekerjaan hanya ke agen yang memiliki kemampuan yang sesuai dengan tuntutan yang ditentukan dalam alur. Akibatnya, kemampuan agen memungkinkan Anda mengarahkan pekerjaan ke agen tertentu.

Tuntutan dan kemampuan dirancang untuk digunakan dengan agen yang dihosting sendiri agar pekerjaan dapat dicocokkan dengan agen yang memenuhi persyaratan pekerjaan. Saat Anda menggunakan agen yang dihosting Microsoft, Anda memilih gambar untuk agen yang cocok dengan persyaratan pekerjaan. Meskipun dimungkinkan untuk menambahkan kemampuan ke agen yang dihosting Microsoft, Anda tidak perlu menggunakan kemampuan dengan agen yang dihosting Microsoft.

Mengonfigurasi permintaan

Untuk menambahkan permintaan ke alur build YAML Anda, tambahkan demands: baris ke bagian pool .

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

Anda dapat memeriksa keberadaan kemampuan atau membuat perbandingan dengan nilai kemampuan. Untuk informasi selengkapnya, lihat skema YAML - Permintaan.

Mengonfigurasi kemampuan agen

Anda dapat melihat detail agen, termasuk kemampuan versi dan sistem, dan mengelola kemampuan penggunanya. Buka Kumpulan agen dan pilih tab Kemampuan untuk agen yang diinginkan.

  1. Di browser web Anda, buka 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. Buka tab Kapabilitas :

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

    3. Pilih tab Kapabilitas .

      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.

    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 Kapabilitas Agen.

  3. Untuk mendaftarkan kemampuan baru dengan agen, pilih Tambahkan kemampuan baru.

Kiat

Setelah Menginstal perangkat lunak baru pada agen yang dihost sendiri, Anda harus memulai ulang agen agar kemampuan baru muncul. Untuk informasi selengkapnya, lihat Memulai ulang agen Windows, Memulai ulang agen Linux, dan Memulai ulang agen Mac.

Komunikasi

Komunikasi dengan Azure Pipelines

Komunikasi dengan Azure DevOps Server

Agen berkomunikasi dengan Azure Pipelines atau Azure DevOps Server. Ini menentukan pekerjaan mana yang perlu dijalankan dan melaporkan log dan status pekerjaan. Agen selalu memulai komunikasi ini.

Semua pesan dari agen ke Azure Pipelines atau Azure DevOps Server terjadi melalui HTTP atau HTTPS, bergantung pada cara Anda mengonfigurasi agen. Model penarikan ini memungkinkan Anda untuk mengonfigurasi agen ke topologi yang berbeda, seperti yang ditunjukkan dalam contoh berikut.

Grafik yang memperlihatkan topologi agen dalam penginstalan lokal.

Grafik yang memperlihatkan topologi agen di Azure DevOps Services.

Berikut adalah pola komunikasi umum antara agen dan Azure Pipelines atau Azure DevOps Server:

  1. Pengguna mendaftarkan agen dengan Azure Pipelines atau Azure DevOps Server dengan menambahkannya ke kumpulan agen. Untuk mendaftarkan agen di kumpulan agen tersebut, Anda harus memiliki peran administrator kumpulan Agen . Peran administrator kumpulan Agen hanya diperlukan pada saat pendaftaran dan tidak bertahan pada agen. Ini tidak digunakan dalam komunikasi lebih lanjut antara agen dan Azure Pipelines atau Azure DevOps Server.

    Setelah pendaftaran selesai, agen mengunduh listener OAuth token dan menggunakannya untuk memantau antrean pekerjaan.

  2. Agen memantau untuk memastikan apakah ada permintaan pekerjaan baru yang diposting dalam antrean pekerjaan di Azure Pipelines atau Azure DevOps Server dengan menggunakan polling panjang HTTP. Ketika sebuah tugas tersedia, agen mengunduh tugas dan job-specific OAuth token. Azure Pipelines atau Azure DevOps Server menghasilkan token berumur pendek untuk identitas terlingkup yang ditentukan dalam alur.

    Agen menggunakan token untuk mengakses atau memodifikasi sumber daya di Azure Pipelines atau Azure DevOps Server dalam pekerjaan tersebut. Misalnya, menggunakan token untuk mengakses kode sumber atau mengunggah hasil pengujian.

  3. Agen membuang token pekerjaan khusus OAuth setelah pekerjaan selesai, lalu memeriksa apakah ada permintaan pekerjaan baru menggunakan token OAuth untuk pendengar.

Payload pesan yang dipertukarkan antara agen dan Azure Pipelines atau Azure DevOps Server diamankan dengan menggunakan enkripsi asimetris.

Setiap agen memiliki pasangan kunci publik-privat, dan kunci publik dipertukarkan dengan server selama pendaftaran. Server menggunakan kunci publik untuk mengenkripsi payload pekerjaan sebelum mengirimkannya ke agen. Agen mendekripsi konten pekerjaan dengan menggunakan kunci privatnya.

Metode ini mengamankan rahasia yang disimpan dalam alur atau grup variabel saat ditukar dengan agen.

Catatan

Agen menyediakan dukungan untuk hasil pengodean klien UTF-8. Namun, jika sistem Anda tidak menggunakan pengodean UTF-8, Anda mungkin mengalami beberapa masalah dengan output log. Misalnya, log mungkin berisi karakter yang tidak dikenali oleh pengodean sistem Anda, sehingga mungkin tampak kacau atau simbol yang hilang.

Komunikasi untuk dikerahkan ke server target

Saat Anda menggunakan agen untuk menyebarkan artefak ke sekumpulan server, agen tersebut harus memiliki konektivitas "jalur langsung" ke server-server tersebut. Kumpulan agen yang dihosting Microsoft, secara default, memiliki konektivitas ke situs web dan server Azure yang berjalan di Azure.

Jika sumber daya Azure Anda berjalan di jaringan virtual Azure, Anda bisa mendapatkan rentang IP Agen tempat agen yang dihosting Microsoft disebarkan. Kemudian, Anda dapat mengonfigurasi aturan firewall untuk jaringan virtual Azure Anda untuk mengizinkan akses oleh agen.

Jika lingkungan lokal Anda tidak memiliki konektivitas ke kumpulan agen yang dihosting Microsoft, yang biasanya terjadi karena firewall perantara, Anda perlu mengonfigurasi agen yang dihost sendiri secara manual di komputer lokal. Agen harus memiliki konektivitas ke lingkungan lokal target, dan akses ke internet untuk terhubung ke Azure Pipelines atau Azure DevOps Server. Proses ini ditunjukkan dalam skema berikut:

Grafik yang memperlihatkan konektivitas agen untuk lingkungan lokal.

Autentikasi

Untuk mendaftarkan agen, Anda harus menjadi anggota peran administrator di kumpulan agen. Identitas administrator kumpulan agen hanya diperlukan pada saat pendaftaran dan tidak disimpan pada agen. Ini tidak digunakan dalam komunikasi berikutnya antara agen dan Azure Pipelines atau Azure DevOps Server. Untuk mengonfigurasi agen, Anda juga harus menjadi administrator lokal di server.

Saat Anda mendaftarkan agen, pilih dari jenis autentikasi berikut. Proses penyiapan agen meminta informasi tambahan tertentu yang diperlukan untuk setiap jenis autentikasi. Untuk informasi selengkapnya, lihat Opsi autentikasi agen yang dihost sendiri.

  • Token akses pribadi.
  • Alternatif: Menyambungkan ke Azure DevOps Server dengan menggunakan autentikasi Dasar. Saat Anda memilih Alternatif, Anda akan dimintai kredensial Anda.

Selain itu, agen Windows memiliki dua opsi autentikasi berikut di Azure DevOps Server.

  • Negosiasi: Sambungkan ke Azure DevOps Server sebagai pengguna selain pengguna yang masuk melalui skema autentikasi Windows (misalnya, New Technology LAN Manager (NTLM) atau Kerberos). Setelah memilih Negosiasi, Anda akan dimintai kredensial.
  • Terintegrasi: (Default) Sambungkan agen Windows ke Azure DevOps Server dengan menggunakan kredensial pengguna yang masuk melalui skema autentikasi Windows (misalnya, NTLM atau Kerberos). Anda tidak akan dimintai kredensial setelah memilih metode ini.

Penting

Anda harus mengonfigurasi server Anda untuk mendukung metode autentikasi untuk menggunakan autentikasi Alternatif, Negosiasi, atau Autentikasi terintegrasi.

Metode autentikasi yang Anda gunakan 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 Azure DevOps Server.

Interaktif vs. layanan

Anda dapat menjalankan agen yang dihost sendiri sebagai layanan atau proses interaktif.

Setelah Anda mengonfigurasi agen, kami sarankan Anda terlebih dahulu mencobanya dalam mode interaktif untuk memastikannya berfungsi. Selanjutnya, untuk penggunaan dalam produksi, kami sarankan Anda menjalankan agen dalam salah satu mode berikut agar tetap andal dalam kondisi berjalan. Mode ini juga memastikan bahwa program agen dijalankan secara otomatis jika komputer dihidupkan ulang.

  • Sebagai layanan: Anda dapat menggunakan manajer layanan sistem operasi untuk mengelola siklus hidup agen. Pengalaman memutakhirkan agen secara otomatis lebih baik saat menjalankan agen sebagai layanan.

  • Sebagai proses interaktif dengan masuk otomatis diaktifkan: Dalam beberapa kasus, Anda mungkin perlu menjalankan agen secara interaktif untuk penggunaan produksi (misalnya, untuk menjalankan pengujian UI). Saat Anda mengonfigurasi agen untuk dijalankan dalam mode ini, pengaman layar dinonaktifkan. Beberapa kebijakan domain mungkin mencegah Anda mengaktifkan masuk otomatis atau menonaktifkan pengaman layar. Dalam kasus seperti itu, Anda mungkin perlu mencari pengecualian dari kebijakan domain, atau menjalankan agen di komputer grup kerja tempat kebijakan domain tidak berlaku.

    Catatan

    Ada risiko keamanan saat Anda mengaktifkan masuk otomatis atau menonaktifkan pengaman layar. Pengguna lain mungkin dapat mengakses komputer dan menggunakan akun yang secara otomatis masuk. Jika Anda mengonfigurasi agen untuk menjalankan cara ini, Anda harus memastikan komputer dilindungi secara fisik (misalnya, terletak di fasilitas yang aman).

    Jika Anda menggunakan desktop jarak jauh untuk mengakses komputer yang menjalankan agen dengan masuk otomatis, maka ketika Anda menutup desktop jarak jauh tersebut, komputer akan terkunci. Setiap pengujian UI yang berjalan pada agen ini mungkin gagal. Untuk menghindari masalah ini, gunakan tscon perintah untuk memutuskan sambungan dari desktop jarak jauh. Contohnya:

    %windir%\System32\tscon.exe 1 /dest:console

Akun agen

Baik Anda menjalankan agen sebagai layanan atau interaktif, Anda dapat memilih akun komputer mana yang Anda gunakan untuk menjalankan agen. Pemilihan akun agen sepenuhnya bergantung pada kebutuhan tugas yang dijalankan dalam proses build dan deployment Anda.

Misalnya, untuk menjalankan tugas dengan menggunakan autentikasi Windows untuk mengakses layanan eksternal, agen harus berjalan dengan menggunakan akun dengan akses ke layanan tersebut. Namun, jika Anda menjalankan pengujian UI seperti selenium atau pengujian antarmuka pengguna berkode yang memerlukan browser, browser akan terbuka dalam konteks akun agen.

Di Windows, kami sarankan Anda menggunakan akun layanan seperti Layanan Jaringan atau Layanan Lokal. Izin akun ini dibatasi dan kata sandinya tidak kedaluwarsa, sehingga agen memerlukan lebih sedikit manajemen dari waktu ke waktu.

Kredensial ini berbeda dari kredensial yang Anda gunakan saat mendaftarkan agen dengan Azure Pipelines atau Azure DevOps Server.

Versi agen dan peningkatannya

Kami memperbarui perangkat lunak agen setiap beberapa minggu di Azure Pipelines. Kami menunjukkan versi agen dalam format {major}.{minor}. Misalnya, jika versi agen adalah 2.1, maka versi utamanya adalah 2 dan versi minornya adalah 1.

Kami selalu memperbarui agen yang dihosting Microsoft. Jika versi terbaru agen hanya berbeda dalam versi minor, Azure Pipelines dapat secara otomatis memperbarui agen yang dikelola sendiri. Pengaturan default diaktifkan. Anda dapat mengonfigurasi pengaturan ini di kumpulan Agen dengan memilih agen Anda, lalu memilih Pengaturan. Peningkatan diminta ketika fitur platform atau salah satu tugas dalam alur memerlukan versi agen yang lebih baru.

Jika Anda menjalankan agen yang dihost sendiri secara interaktif, atau jika ada versi utama agen yang lebih baru yang tersedia, maka Anda mungkin harus meningkatkan agen secara manual. Anda dapat meningkatkan agen dari tab Kumpulan agen di bawah organisasi Anda. Sistem aliran tidak dapat berjalan tanpa agen yang kompatibel.

Untuk memperbarui agen yang dihost sendiri

  1. Buka Pengaturan> proyekKumpulan agen.

    Cuplikan layar yang memperlihatkan cara menemukan dan memilih Kumpulan agen.

  2. Pilih kumpulan agen Anda, lalu pilih Perbarui semua agen.

    Cuplikan layar yang memperlihatkan cara memilih Perbarui semua agen.

    Anda juga dapat memperbarui agen satu per satu dengan memilih Perbarui agen dari menu ... .

    Cuplikan layar yang memperlihatkan cara memilih Agen Pembaruan.

  3. Pilih Perbarui untuk mengonfirmasi.

    Cuplikan layar yang memperlihatkan cara memilih Perbarui untuk mengonfirmasi.

  4. Permintaan pembaruan diantrekan untuk setiap agen di kumpulan, dan berjalan ketika pekerjaan yang sedang berjalan selesai. Peningkatan biasanya hanya membutuhkan waktu beberapa saat. Jumlah waktu ini cukup lama untuk mengunduh versi terbaru perangkat lunak agen (sekitar 200 MB), membuka zipnya, dan memulai ulang agen dengan versi baru. Anda dapat memantau status agen Anda di tab Agen .

Kami memperbarui perangkat lunak agen dengan setiap pembaruan Azure DevOps Server. Kami menunjukkan versi agen dalam format {major}.{minor}. Misalnya, jika versi agen adalah 2.1, maka versi utamanya adalah 2 dan versi minornya adalah 1.

Ketika Azure DevOps Server Anda memiliki versi agen yang lebih baru, dan agen yang lebih baru itu hanya berbeda dalam versi minor, biasanya agen tersebut dapat diperbarui secara otomatis. Peningkatan diminta ketika fitur platform atau salah satu tugas yang Anda gunakan dalam alur memerlukan versi agen yang lebih baru. Dimulai dengan Azure DevOps Server 2019, Anda tidak perlu menunggu rilis server baru. Anda dapat mengunggah versi baru agen ke tingkat aplikasi Anda, dan versi tersebut ditawarkan sebagai peningkatan.

Jika Anda menjalankan agen secara interaktif, atau jika versi utama agen yang lebih baru tersedia, maka Anda mungkin harus meningkatkan agen secara manual. Anda dapat dengan mudah meningkatkan agen dari tab Kumpulan Agen di bawah koleksi proyek Anda. Sistem aliran tidak dapat berjalan tanpa agen yang kompatibel.

Anda dapat melihat versi agen. Buka Kumpulan agen dan pilih tab Kemampuan untuk agen yang diinginkan, seperti yang dijelaskan dalam Mengonfigurasi kemampuan agen.

Untuk memicu pembaruan agen secara terprogram, Anda dapat menggunakan API pembaruan Agen seperti yang dijelaskan di bagian Bagaimana cara memicu pembaruan agen secara terprogram untuk kumpulan agen tertentu?.

Untuk server tanpa akses internet, salin file ZIP agen secara manual ke folder berikut untuk digunakan sebagai file lokal. Buat folder Agen jika tidak ada:

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • Macos: usr/share/Microsoft/Azure DevOps/Agents

Struktur direktori agen

Saat pekerjaan pipeline dijalankan pada agen, struktur direktori dibuat untuk menyimpan kode sumber, biner, dan artefak.

Direktori beranda agen adalah direktori tempat agen diinstal. Direktori biasanya terletak:

  • Agen yang dihosting Microsoft: C:\agents\<agent version> di Windows, /Users/runner/runners/<agent version> di macOS, dan /home/vsts/agents/<agent version> di Linux.
  • Agen yang dihost sendiri: C:\agent di Windows, Users/<username>/agent (~/agent) di macOS, dan /home/vsts/agent di Linux.

Direktori kerja agen berisi ruang kerja tempat output sumber dan pekerjaan disimpan. Direktori kerja biasanya terletak:

  • Agen yang dihosting Microsoft: C:\a di Windows, /Users/runner/work di macOS, dan/home/vsts/work di Linux.
  • Agen yang dihost sendiri: C:\agent\_work di Windows, ~/agent/work di macOS, dan /home/agent/_work di Linux.

Struktur direktori kerja adalah:


    - /work directory
        - /1 build directory/pipeline workspace
            - /s source/working directory
            - /b binaries directory
            - /a artifacts staging directory
            - /TestResults Test results directory
Direktori Deskripsi Contoh Variabel yang telah ditentukan sebelumnya
Direktori utama agen Tempat perangkat lunak agen diinstal. Agen yang dihosting Microsoft:
   Windows: C:\agents\3.248.0
   Linux: /home/vsts/agents/3.248.0
   Macos: /Users/runner/runners/3.248.0
Agen yang dihost sendiri:
   Windows: C:\agent
   Linux: home/agent
   Macos: ~/agent
Agent.HomeDirectory
Direktori kerja Di mana agen menyimpan kode sumber, biner, dan artefak. Agen yang dihosting Microsoft:
   Windows: C:\a
   Linux: /home/vsts/work
   Macos: /Users/runner/work
Agen yang dihost sendiri:
   Windows: C:\agent\_work
   Linux: /home/agent/_work
   Macos: ~/agent/work
Agent.WorkFolder
Agent.RootDirectory
System.WorkFolder
Membangun direktori atau ruang kerja Tempat dijalankannya pekerjaan di alur pemrosesan. Agen yang dihosting Microsoft:
   Windows: C:\a\1
   Linux: /home/vsts/work/1
   Macos: /Users/runner/work/1
Agen yang dihost sendiri:
   Windows: C:\agent\_work\1
   Linux: /home/agent/_work/1
   Macos: ~/agent/work/1
Agent.BuildDirectory
Pipeline.Workspace
s - Sumber atau direktori kerja Berisi kode sumber yang dicek keluar dari repositori. Jika ada beberapa checkout langkah dalam pekerjaan Anda, kode sumber Anda akan dikeluarkan ke direktori yang dinamai sesuai dengan repositori sebagai subfolder dari s. Agen yang dihosting Microsoft:
   Windows: C:\a\1\s
   Linux: /home/vsts/work/1/s
   Macos: /Users/runner/work/1/s
Agen yang dihost sendiri:
   Windows: C:\agent\_work\1\s
   Linux: /home/agent/_work/1/s
   Macos: ~/agent/work/1/s
Build.SourcesDirectory
Build.RepositoryLocalPath
System.DefaultWorkingDirectory
b - Direktori Biner Menyertakan hasil build. Agen yang dihosting Microsoft:
   Windows: C:\a\1\b
   Linux: /home/vsts/work/1/b
   Macos: /Users/runner/work/1/b
Agen yang dihost sendiri:
   Windows: C:\agent\_work\1\b
   Linux: /home/agent/_work/1/b
   Macos: ~/agent/work/1/b
Build.BinariesDirectory
a - Direktori penyimpanan sementara artefak Berisi artefak hasil build. Dibersihkan setiap kali dijalankan pada agensi yang di-host sendiri. Agen yang dihosting Microsoft:
   Windows: C:\a\1\a
   Linux: /home/vsts/work/1/a
   Macos: /Users/runner/work/1/a
Agen yang dihost sendiri:
   Windows: C:\agent\_work\1\a
   Linux: /home/agent/_work/1/a
   Macos: ~/agent/work/1/a
Build.StagingDirectory
Build.ArtifactStagingDirectory
System.ArtifactsDirectory
TestResults direktori Berisi hasil pengujian. Dibersihkan setiap kali dijalankan pada agensi yang di-host sendiri. Agen yang dihosting Microsoft:
   Windows: C:\a\1\TestResults
   Linux: /home/vsts/work/1/TestResults
   Macos: /Users/runner/work/1/TestResults
Agen yang dihost sendiri:
   Windows: C:\agent\_work\1\TestResults
   Linux: /home/agent/_work/1/TestResults
   Macos: ~/agent/work/1/TestResults
Common.TestResultsDirectory

Pada agen yang dihosting Microsoft, agen yang berbeda digunakan pada setiap eksekusi, sehingga direktori kerja tidak dipertahankan di antara eksekusi. Pada agen yang dihost sendiri, hanya direktori penahapan artefak dan direktori hasil pengujian yang dibersihkan antara eksekusi secara default. Untuk informasi selengkapnya tentang opsi bersih ruang kerja, lihat Ruang Kerja .

Untuk informasi selengkapnya tentang variabel yang telah ditentukan sebelumnya, lihat Variabel yang telah ditentukan sebelumnya.

FAQ

Bagaimana cara memastikan saya memiliki versi agen terbaru?

  1. Buka 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. Pilih pool yang berisi agen.

  3. Pastikan agen diaktifkan.

  4. Buka 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 pilih agen tersebut.

    3. Pilih tab Kapabilitas .

      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.

    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 Kapabilitas Agen.

  5. Cari kemampuan Agent.Version . Anda dapat membandingkan nilai ini dengan versi agen terbaru yang diterbitkan di halaman Agen Azure Pipelines .

  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, lalu 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 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 file paket agen (dalam bentuk .zip atau .tar.gz) dari halaman Rilis GitHub Agen Azure Pipelines.

  2. Transfer file paket yang diunduh ke setiap Tingkat Aplikasi Azure DevOps Server dengan menggunakan metode pilihan Anda (misalnya, drive USB, transfer jaringan, dan sebagainya). Tempatkan file agen di folder %ProgramData%\Microsoft\Azure DevOps\Agents. Jika tidak ada folder berlabel Agen, buatlah.

  3. Anda sudah siap! Azure DevOps Server Anda sekarang 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.

Apakah agen yang di-host mandiri memiliki keunggulan performa dibandingkan agen yang di-host Microsoft?

Dalam banyak kasus, ya. Jika Anda menggunakan agen yang di-host sendiri, Anda dapat menjalankan build bertahap. Misalnya, jika Anda menentukan proses yang tidak melakukan pembersihan repositori dan tidak melakukan kompilasi bersih, kompilasi Anda biasanya berjalan lebih cepat. Anda tidak mendapatkan manfaat ini dengan agen yang dihosting Microsoft kecuali Anda menggunakan fitur seperti caching, karena agen dihancurkan setelah pipeline selesai.

Agen yang di-host Microsoft dapat memakan waktu lebih lama untuk memulai build Anda. Meskipun sering kali hanya membutuhkan waktu beberapa detik agar pekerjaan Anda ditetapkan ke agen yang dihosting Microsoft, terkadang dapat memakan waktu beberapa menit agar agen dialokasikan, tergantung pada beban pada sistem kami.

Dapatkah saya menginstal beberapa agen yang di-host mandiri di komputer yang sama?

Ya. Pendekatan ini mungkin berfungsi dengan baik untuk agen yang menjalankan pekerjaan yang tidak menggunakan banyak sumber daya bersama. Misalnya, Anda dapat mencobanya untuk agen yang menjalankan rilis yang sebagian besar mengatur penyebaran dan tidak melakukan banyak pekerjaan pada agen itu sendiri.

Anda mungkin menemukan bahwa dalam kasus lain Anda tidak mendapatkan banyak efisiensi dengan menjalankan beberapa agen pada komputer yang sama. Misalnya, mungkin tidak berguna bagi agen yang menjalankan build yang mengonsumsi banyak ruang disk dan sumber daya input/output.

Anda mungkin juga mengalami masalah jika pekerjaan pembangunan paralel menggunakan penyebaran alat singleton yang sama (misalnya, paket npm). Satu build mungkin memperbarui dependensi saat build lain menggunakannya, yang dapat menyebabkan hasil dan kesalahan yang tidak dapat diandalkan.

Apa yang dilakukan agen ketika pekerjaan pipeline dibatalkan?

Untuk agen yang dihosting Microsoft, agen dirobohkan dan dikembalikan ke kumpulan Azure Pipelines.

Untuk agen yang dihost sendiri:

  • Ketika alur dibatalkan, agen mengirim urutan perintah ke proses yang menjalankan langkah saat ini.
  • Perintah pertama dikirim dengan batas waktu 7,5 detik.
  • Jika proses tidak berakhir, perintah kedua dikirim dengan batas waktu 2,5 detik.
  • Jika proses tidak berakhir, agen memerintahkannya untuk dimatikan.
  • Jika proses mengabaikan dua permintaan penghentian awal, proses tersebut akan dimatikan secara paksa.

Waktu dari permintaan awal hingga penghentian adalah sekitar 10 detik.

Perintah yang dikeluarkan untuk proses membatalkan alur bervariasi tergantung pada sistem operasi agen.

  • macOS dan Linux: Perintah yang dikirim adalah SIGINT, diikuti oleh SIGTERM, diikuti oleh SIGKILL.
  • Windows: Perintah yang dikirim ke proses adalah Ctrl+C, diikuti oleh Ctrl+Break, diikuti oleh Process.Kill.

Bagaimana cara memicu pembaruan agen secara terprogram untuk kumpulan agen tertentu?

Anda dapat memicu pembaruan agen untuk kumpulan dengan menggunakan API berikut:

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

Catatan

Untuk informasi selengkapnya, lihat Pemetaan versi API dan Azure DevOps Server.

URI Parameter

Nama Dalam Wajib Tipe Deskripsi
agentId kueri False string Agen yang akan diperbarui. Jika tidak ditentukan, pembaruan dipicu untuk semua agen.
organization jalan True string Nama organisasi Azure DevOps.
poolId jalan True bilangan bulat int32 Kumpulan agen yang akan digunakan.
api-version kueri False string Versi API yang akan digunakan. Untuk menggunakan versi API ini, nilai harus diatur ke 6.0.

Untuk memicu pembaruan agen, isi permintaan harus kosong.

Agen Azure Pipelines adalah sumber terbuka di GitHub.

Untuk informasi selengkapnya tentang agen, lihat modul berikut dari jalur pembelajaran Bangun aplikasi dengan Azure DevOps :