Agen Azure Pipelines

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Untuk membangun kode atau menyebarkan perangkat lunak, Anda memerlukan setidaknya satu agen. Saat Anda menambahkan lebih banyak kode dan orang, pada akhirnya Anda akan membutuhkan lebih banyak agen.

Saat alur Anda berjalan, sistem memulai satu atau beberapa pekerjaan. 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 dihosting Microsoft Agen yang dihosting dan dikelola oleh Microsoft Azure DevOps Services
Agen yang di-hosting secara mandiri Agen yang Anda konfigurasi dan kelola, dihosting di VM Anda Azure DevOps Services, Azure DevOps Server
Agen Azure Virtual Machine Scale Set Bentuk agen yang dihost sendiri, menggunakan Azure Virtual Machine Scale Sets, yang dapat diskalakan secara otomatis untuk memenuhi tuntutan Azure DevOps Services

Pekerjaan dapat dijalankan langsung di komputer host agen atau dalam kontainer.

Agen yang dihosting Microsoft

Jika alur Anda berada di Azure Pipelines, maka Anda memiliki opsi yang nyaman untuk menjalankan pekerjaan Anda menggunakan agen yang dihosting Microsoft. Dengan agen yang di-host Microsoft, pemeliharaan dan peningkatan akan dilakukan untuk Anda. Anda selalu mendapatkan versi terbaru gambar VM yang Anda tentukan di alur Anda. Setiap kali Anda menjalankan alur, Anda mendapatkan komputer virtual baru untuk setiap pekerjaan di alur. Komputer virtual dibuang setelah satu pekerjaan (yang berarti setiap perubahan yang dilakukan pekerjaan pada sistem file komputer virtual, seperti memeriksa kode, tidak akan tersedia untuk 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, ini adalah cara paling sederhana untuk menjalankan pekerjaan Anda. Anda dapat mencobanya terlebih dahulu dan melihat apakah itu berfungsi untuk build atau penyebaran Anda. Jika tidak, Anda dapat menggunakan agen set skala atau agen yang dihost sendiri.

Tip

Anda dapat mencoba agen yang dihosting Microsoft tanpa biaya.

Pelajari selengkapnya tentang agen yang dihosting Microsoft.

Agen yang di-hosting secara mandiri

Agen yang Anda siapkan dan kelola sendiri untuk menjalankan pekerjaan adalah agen yang dihost sendiri. Anda dapat menggunakan agen yang dihost sendiri di Azure Pipelines atau Azure DevOps Server, yang sebelumnya bernama Team Foundation Server (TFS). Agen yang di-host sendiri memberi Anda lebih banyak kontrol untuk menginstal perangkat lunak dependen yang diperlukan untuk build dan penyebaran Anda. Selain itu, cache dan konfigurasi tingkat mesin bertahan dari eksekusi hingga dijalankan, yang dapat meningkatkan kecepatan.

Catatan

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

Tip

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

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

Catatan

Di macOS, Anda perlu menghapus atribut khusus pada arsip unduhan untuk mencegah perlindungan Gatekeeper ditampilkan untuk setiap rakitan 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 mesin, Anda dapat menginstal perangkat lunak lain pada mesin itu seperti yang diperlukan oleh 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 terbaru dan perbaikan bug.

Versi runner node

Agen dikirim dengan beberapa versi pustaka NodeJS untuk mendukung tugas target yang menggunakan penangan Node yang berbeda.

Semua tugas Azure DevOps resmi menggunakan Node 10 sebagai handler universal, namun, pelanggan mungkin masih menggunakan tugas kustom yang menggunakan pustaka Node 6 yang sudah kedaluarsa. Untuk mendukung kompatibilitas mundur dengan Node yang saat ini telah mencapai End-of-Life, kami menyediakan metode layanan mandiri berikut untuk menginstal runner Node yang ditunjuk secara manual.

  • Instal runner Node 6 secara manual. Untuk informasi selengkapnya tentang menginstal runner Node 6 secara manual, lihat Dukungan Node 6 untuk detail selengkapnya.

  • Gunakan tugas NodeTaskRunnerInstaller@0 di alur Anda yang memerlukan pustaka Node 6 yang sudah kedaluarsa.

  • Instal paket agen yang menyertakan Node 6.

    Azure Pipelines menyediakan dua versi paket agen.

    • paket vsts-agent-* mendukung Node 6.
    • paket pipelines-agent-* tidak mendukung Node 6. Versi paket ini akan menjadi paket agen default di masa mendatang.

    Jika Anda tahu bahwa Anda tidak menggunakan tugas dependan Node 6 apa pun, dan Anda tidak ingin Node 6 diinstal pada komputer agen Anda, Anda dapat menginstal agen dari bagian Unduhan Agen Alternatif dari https://github.com/microsoft/azure-pipelines-agent/releases.

Agen Azure Virtual Machine Scale Set

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

Anda menentukan Virtual Machine Scale Set, sejumlah agen untuk tetap siaga, jumlah maksimum komputer virtual dalam set skala, dan Azure Pipelines mengelola penskalaan agen Anda untuk Anda.

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

Pekerjaan paralel

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, dengan pekerjaan bersamaan tambahan yang diantrekan hingga 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 perlu membayar pekerjaan bersamaan yang dihost sendiri dalam rilis. Anda hanya dibatasi oleh jumlah agen yang Anda miliki.

Kemampuan

Setiap agen yang dihost sendiri memiliki serangkaian kemampuan yang menunjukkan apa yang dapat dilakukannya. Kemampuan adalah pasangan nilai nama yang secara otomatis ditemukan oleh perangkat lunak agen, dalam hal ini mereka disebut kemampuan sistem, atau yang Anda tentukan, dalam hal ini mereka disebut kemampuan pengguna.

Perangkat lunak agen secara otomatis menentukan berbagai kemampuan sistem seperti 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.

Catatan

Menyimpan variabel lingkungan sebagai kemampuan berarti bahwa ketika agen berjalan, nilai kemampuan tersimpan digunakan untuk mengatur variabel lingkungan. Selain itu, setiap perubahan pada variabel lingkungan yang dilakukan saat agen berjalan tidak akan diambil dan digunakan oleh tugas apa pun. Jika Anda memiliki variabel lingkungan sensitif yang berubah dan Anda tidak ingin variabel disimpan sebagai kemampuan, Anda dapat mengabaikannya dengan mengatur 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, Anda menentukan tuntutan tertentu dari agen. Sistem mengirimkan pekerjaan hanya ke agen yang memiliki kemampuan yang cocok dengan tuntutan yang ditentukan dalam alur. Akibatnya, kemampuan agen memungkinkan Anda mengarahkan pekerjaan ke agen tertentu.

Catatan

Tuntutan dan kemampuan dirancang untuk digunakan dengan agen yang dihost sendiri sehingga pekerjaan dapat dicocokkan dengan agen yang memenuhi persyaratan pekerjaan. Saat menggunakan agen yang dihosting Microsoft, Anda memilih gambar untuk agen yang cocok dengan persyaratan pekerjaan, jadi 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 versi dan kemampuan sistemnya, dan mengelola kemampuan penggunanya, dengan menavigasi ke kumpulan Agen dan memilih 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. Pilih Azure DevOps, Pengaturan organisasi.

      Pilih Pengaturan organisasi.

    3. Pilih Kumpulan agen.

      Pilih tab Kumpulan agen.

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

    2. Pilih Azure DevOps, Pengaturan koleksi.

      Pilih Pengaturan koleksi.

    3. Pilih Kumpulan agen.

      Pilih Kumpulan agen.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Pengaturan koleksi, 2019.

    2. Pilih Kumpulan agen.

      Pilih Kumpulan agen, 2019.

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

    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 kemampuan agen.

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

      Pilih tab yang diinginkan, 2019.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Pilih agen yang diinginkan, 2019.

    3. Pilih tab Kapabilitas .

      Pilih tab Kemampuan, 2019.

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

Tip

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 untuk menentukan pekerjaan mana yang perlu dijalankan, dan untuk melaporkan log dan status pekerjaan. Komunikasi ini selalu dimulai oleh agen. 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 agen untuk dikonfigurasi dalam topologi yang berbeda seperti yang ditunjukkan di bawah ini.

Topologi agen dalam penginstalan lokal.

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. Anda harus menjadi administrator kumpulan agen untuk mendaftarkan agen di kumpulan agen tersebut. Identitas administrator kumpulan agen diperlukan hanya pada saat pendaftaran dan tidak disimpan pada agen, juga tidak digunakan dalam komunikasi lebih lanjut antara agen dan Azure Pipelines atau Azure DevOps Server. Setelah pendaftaran selesai, agen mengunduh token OAuth pendengar dan menggunakannya untuk mendengarkan antrean pekerjaan.

  2. Agen mendengarkan untuk melihat apakah permintaan pekerjaan baru telah diposting untuknya dalam antrean pekerjaan di Azure Pipelines/Azure DevOps Server menggunakan polling panjang HTTP. Ketika pekerjaan tersedia, agen mengunduh pekerjaan serta token OAuth khusus pekerjaan. Token ini dihasilkan oleh Azure Pipelines/Azure DevOps Server untuk identitas terlingkup yang ditentukan dalam alur. Token tersebut berumur pendek dan digunakan oleh agen untuk mengakses sumber daya (misalnya, kode sumber) atau memodifikasi sumber daya (misalnya, mengunggah hasil tes) di Azure Pipelines atau Azure DevOps Server dalam pekerjaan itu.

  3. Setelah pekerjaan selesai, agen membuang token OAuth khusus pekerjaan dan kembali memeriksa apakah ada permintaan pekerjaan baru menggunakan token OAuth pendengar.

Payload pesan yang dipertukarkan antara agen dan Azure Pipelines/Azure DevOps Server diamankan 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 menggunakan kunci privatnya. Ini adalah cara rahasia yang disimpan dalam alur atau grup variabel diamankan karena ditukar dengan agen.

Catatan

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

Komunikasi untuk disebarkan ke server target

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

Catatan

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

Jika lingkungan lokal Anda tidak memiliki konektivitas ke kumpulan agen yang dihost Microsoft (yang biasanya terjadi karena firewall perantara), Anda harus mengonfigurasi agen yang dihost sendiri secara manual di komputer lokal. Agen harus memiliki konektivitas ke lingkungan lokal target, dan akses ke Internet untuk menyambung ke Azure Pipelines atau Team Foundation Server, seperti yang diperlihatkan dalam skema berikut.

Konektivitas agen untuk lingkungan lokal

Autentikasi

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

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

Agen Windows memiliki dua opsi autentikasi tambahan berikut di Azure DevOps Server.

  • Negosiasikan Koneksi ke Azure DevOps Server sebagai pengguna selain pengguna yang masuk melalui skema autentikasi Windows seperti NTLM atau Kerberos. Setelah memilih Negosiasi, Anda akan dimintai kredensial.
  • Terintegrasi (Default) Koneksi agen Windows ke Azure DevOps Server 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 Azure DevOps Server.

Interaktif vs. layanan

Anda dapat menjalankan agen yang dihost sendiri sebagai layanan atau proses interaktif. Setelah Anda mengonfigurasi agen, sebaiknya coba terlebih dahulu dalam mode interaktif untuk memastikannya berfungsi. Kemudian, untuk penggunaan produksi, sebaiknya jalankan agen dalam salah satu mode berikut agar tetap dalam status berjalan dengan andal. Mode ini juga memastikan bahwa agen dimulai secara otomatis jika komputer dihidupkan ulang.

  1. Sebagai layanan. Anda dapat memanfaatkan manajer layanan sistem operasi untuk mengelola siklus hidup agen. Selain itu, pengalaman untuk meningkatkan otomatis agen lebih baik ketika dijalankan sebagai layanan.

  2. Sebagai proses interaktif dengan log masuk otomatis diaktifkan. Dalam beberapa kasus, Anda mungkin perlu menjalankan agen secara interaktif untuk penggunaan produksi - seperti menjalankan pengujian antarmuka pengguna. Saat agen dikonfigurasi untuk berjalan dalam mode ini, screensaver juga 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 ketika Anda mengaktifkan masuk otomatis atau menonaktifkan pengaman layar karena Anda memungkinkan pengguna lain berjalan ke komputer dan menggunakan akun yang secara otomatis masuk. Jika Anda mengonfigurasi agen untuk berjalan dengan cara ini, Anda harus memastikan komputer terlindungi secara fisik; misalnya, terletak di fasilitas yang aman. Jika Anda menggunakan Desktop Jauh untuk mengakses komputer tempat agen berjalan dengan masuk otomatis, cukup menutup Desktop Jauh menyebabkan komputer dikunci dan pengujian UI apa pun yang berjalan pada agen ini mungkin gagal. Untuk menghindari hal ini, gunakan perintah tscon untuk memutuskan sambungan dari Desktop 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. (Perhatikan bahwa ini berbeda dari kredensial yang Anda gunakan saat mendaftarkan agen dengan Azure Pipelines atau Azure DevOps Server.) Pilihan akun agen hanya bergantung pada kebutuhan tugas yang berjalan dalam pekerjaan build dan penyebaran Anda.

Misalnya, untuk menjalankan tugas yang menggunakan autentikasi Windows untuk mengakses layanan eksternal, Anda harus menjalankan agen menggunakan akun yang memiliki akses ke layanan tersebut. Namun, jika Anda menjalankan pengujian UI seperti pengujian UI Selenium atau Coded yang memerlukan browser, browser diluncurkan dalam konteks akun agen.

Di Windows, Anda harus mempertimbangkan untuk menggunakan akun layanan seperti Layanan Jaringan atau Layanan Lokal. Akun-akun ini memiliki izin terbatas dan kata sandinya tidak kedaluwarsa, yang berarti agen memerlukan lebih sedikit manajemen dari waktu ke waktu.

Versi dan peningkatan agen

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.

Agen yang dihosting Microsoft selalu selalu diperbarui. Jika versi agen yang lebih baru hanya berbeda dalam versi minor, agen yang dihost sendiri biasanya dapat diperbarui secara otomatis (mengonfigurasi pengaturan ini di kumpulan Agen, pilih agen Anda, Pengaturan - default diaktifkan) oleh Azure Pipelines. Peningkatan diminta ketika fitur platform atau salah satu tugas yang digunakan 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 melakukannya dengan mudah dari tab Kumpulan agen di bawah organisasi Anda. Alur Anda tidak akan berjalan hingga dapat menargetkan agen yang kompatibel.

Untuk memperbarui agen yang dihost sendiri

  1. Navigasi ke pengaturan Proyek, Kumpulan agen.

    Pengaturan proyek, Kumpulan agen

  2. Pilih kumpulan agen Anda dan pilih Perbarui semua agen.

    Memperbarui semua agen

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

    Memperbarui agen

  3. Pilih Perbarui untuk mengonfirmasi pembaruan.

    Memperbarui konfirmasi semua agen

  4. Permintaan pembaruan diantrekan untuk setiap agen di kumpulan, dan berjalan ketika pekerjaan yang sedang berjalan selesai. Peningkatan biasanya hanya membutuhkan waktu beberapa saat - 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 di 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 dapat ditingkatkan secara otomatis. Peningkatan diminta ketika fitur platform atau salah satu tugas yang digunakan 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 akan ditawarkan sebagai peningkatan.

Jika Anda menjalankan agen secara interaktif, atau jika ada versi utama agen yang lebih baru yang tersedia, maka Anda mungkin harus meningkatkan agen secara manual. Anda dapat melakukan ini dengan mudah dari tab Kumpulan agen di bawah koleksi proyek Anda. Alur Anda tidak akan berjalan hingga dapat menargetkan agen yang kompatibel.

Anda dapat melihat versi agen dengan menavigasi ke kumpulan Agen dan memilih 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?.

Catatan

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

Buat folder Agen jika tidak ada.

FAQ

Bagaimana cara memastikan saya memiliki versi agen v2 terbaru?

  1. Navigasi ke tab Kumpulan agen:

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

    2. Pilih Azure DevOps, Pengaturan organisasi.

      Pilih Pengaturan organisasi.

    3. Pilih Kumpulan agen.

      Pilih tab Kumpulan agen.

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

    2. Pilih Azure DevOps, Pengaturan koleksi.

      Pilih Pengaturan koleksi.

    3. Pilih Kumpulan agen.

      Pilih Kumpulan agen.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Pengaturan koleksi, 2019.

    2. Pilih Kumpulan agen.

      Pilih Kumpulan agen, 2019.

  2. Klik kumpulan 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 pilih agen.

    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 kemampuan agen.

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

      Pilih tab yang diinginkan, 2019.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Pilih agen yang diinginkan, 2019.

    3. Pilih tab Kapabilitas .

      Pilih tab Kemampuan, 2019.

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

  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 v2 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 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 (seperti drive USB, Transfer jaringan, dan sebagainya). Tempatkan file agen di %ProgramData%\Microsoft\Azure DevOps\Agents bawah folder . Buat folder Agen jika tidak ada.

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

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

Dalam banyak kasus, ya. Khususnya:

  • Jika Anda menggunakan agen yang di-host mandiri, Anda dapat menjalankan build bertambah bertahap. Misalnya, jika Anda menentukan alur yang tidak membersihkan repositori dan tidak melakukan build bersih, build Anda biasanya akan berjalan lebih cepat. Saat Anda menggunakan agen yang dihosting Microsoft, Anda tidak mendapatkan manfaat ini (kecuali Anda menggunakan fitur seperti penembolokan) karena agen dihancurkan setelah alur build atau rilis 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 dapat bekerja 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 disk dan sumber daya I/O.

Anda mungkin juga mengalami masalah jika pekerjaan build paralel menggunakan penyebaran alat singleton yang sama, seperti paket npm. Misalnya, satu build mungkin memperbarui dependensi sementara build lain sedang menggunakannya, yang dapat menyebabkan hasil dan kesalahan yang tidak dapat diandalkan.

Apa perilaku agen ketika pekerjaan alur dibatalkan?

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

Untuk agen yang dihost sendiri:

Ketika alur dibatalkan, agen mengirimkan urutan perintah ke proses yang menjalankan langkah saat ini. Perintah pertama dikirim dengan batas waktu 7,5 detik. Jika proses belum dihentikan, perintah kedua dikirim dengan batas waktu 2,5 detik. Jika proses belum dihentikan, agen mengeluarkan perintah untuk mematikan proses. Jika proses tidak mematuhi dua permintaan penghentian awal, itu akan dimatikan. Dari permintaan awal hingga penghentian membutuhkan waktu sekitar 10 detik.

Perintah yang dikeluarkan untuk proses untuk membatalkan alur berbeda berdasarkan 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 dalam pemetaan versi API dan Azure DevOps Server, lihat pemetaan versi API dan Azure DevOps Server

Parameter URI

Nama Dalam Wajib Tipe Deskripsi
agentId pertanyaan Salah string Agen yang akan diperbarui. Jika tidak ditentukan - pembaruan akan dipicu untuk semua agen.
organization jalan Benar string Nama organisasi Azure DevOps.
poolId jalan Benar bilangan bulat int32 Kumpulan agen yang akan digunakan
api-version pertanyaan Salah string Versi API yang akan digunakan. Ini harus diatur ke '6.0' untuk menggunakan versi api ini.

Untuk memicu pembaruan agen - isi permintaan harus kosong.

Catatan

Azure Pipelines Agent sumber terbuka di GitHub.

Pelajari lebih lanjut

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