Bagikan melalui


Agen Azure Pipelines

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

Untuk membangun kode atau menyebarkan perangkat lunak menggunakan Azure Pipelines, Anda memerlukan setidaknya satu agen. Seiring berkembangnya basis kode dan tim Anda, Anda memerlukan lebih banyak 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, dihosting di VM Anda Azure DevOps Services, Azure DevOps Server
Agen Kumpulan DevOps Terkelola Kumpulan DevOps Terkelola adalah layanan terkelola penuh di mana komputer virtual atau kontainer yang mendukung agen tinggal di langganan Microsoft Azure dan bukan di langganan Azure Anda sendiri Azure DevOps Services
Agen pada Azure Virtual Machine Scale Set Bentuk agen yang dihost sendiri, menggunakan Azure Virtual Machine Scale Sets, yang dapat diskalakan secara otomatis untuk memenuhi tuntutan.

Jika Anda mempertimbangkan untuk menggunakan kumpulan agen yang dihosting sendiri yang dapat diskalakan secara otomatis, kami merekomendasikan untuk melihat Kumpulan DevOps Terkelola. Untuk informasi selengkapnya, lihat Membandingkan Kumpulan DevOps Terkelola dengan agen Azure Virtual Machine Scale Set dan ringkasan Kumpulan DevOps Terkelola .
Azure DevOps Services

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

Agen yang dihosting oleh 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 citra VM yang Anda tentukan di pipeline Anda. Setiap kali Anda menjalankan pipeline, Anda mendapatkan mesin virtual baru untuk setiap pekerjaan di pipeline. 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 proses build atau penyebaran Anda. Jika tidak, Anda dapat menggunakan agen set skala 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 Anda siapkan dan kelola sendiri untuk menjalankan pekerjaan adalah agen mandiri. Anda dapat menggunakan agen yang dihost sendiri di Azure Pipelines atau Azure DevOps Server. 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 tetap ada dari satu eksekusi ke eksekusi berikutnya, 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.

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, 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 komputer, Anda dapat menginstal perangkat lunak lain pada komputer tersebut sesuai kebutuhan 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 Node Runner

Agen disertakan dengan beberapa versi pustaka NodeJS untuk mendukung tugas target yang menggunakan pengelola Node yang berbeda.

Semua tugas Azure DevOps resmi menggunakan Node 20 sebagai handler universal, namun, pelanggan mungkin masih menggunakan tugas kustom yang menggunakan pustaka Node 6, Node 10, atau Node 16 akhir masa pakai. Untuk mendukung kompatibilitas mundur dengan Node yang telah mencapai akhir masa dukungannya, kami menyediakan metode pengaturan mandiri berikut untuk menginstal runner Node yang ditunjuk secara manual.

  • Instal runner Node 6 atau 10 secara manual. Untuk informasi selengkapnya, lihat Dukungan Node runner.

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

  • Instal paket agen yang menyertakan Node 6 dan 10.

    Azure Pipelines menyediakan dua versi paket agen.

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

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

Agen pada 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 yang didedikasikan sepanjang waktu. Tidak seperti agen yang dihost Microsoft, Anda memiliki fleksibilitas atas ukuran dan citra mesin tempat agen berjalan.

Anda menentukan Virtual Machine Scale Set, jumlah agen yang harus disiagakan, jumlah maksimum komputer virtual dalam set skala, dan Azure Pipelines mengelola penskalaan agen Anda untuk Anda.

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

Kiat

Kumpulan DevOps Terkelola adalah layanan baru yang merupakan evolusi kumpulan agen Azure DevOps Virtual Machine Scale Set, menyederhanakan pembuatan kumpulan kustom lebih jauh, dengan meningkatkan skalabilitas dan keandalan kumpulan kustom. Pool DevOps yang Dikelola adalah layanan terkelola penuh di mana mesin virtual atau kontainer yang menjalankan agen berada dalam langganan Microsoft Azure dan bukan dalam langganan Azure Anda sendiri, seperti ketika Anda menggunakan kumpulan agen Azure DevOps Virtual Machine Scale Set.

Jika Anda mempertimbangkan untuk menggunakan kumpulan agen yang dihosting sendiri yang dapat diskalakan secara otomatis, kami merekomendasikan untuk melihat Kumpulan DevOps Terkelola. Untuk informasi selengkapnya, lihat Membandingkan Kumpulan DevOps Terkelola dengan agen Azure Virtual Machine Scale Set dan ringkasan Kumpulan DevOps Terkelola .

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 kenop untuk menyeimbangkan biaya dan performa
  • menyediakan jalur untuk skenario yang paling umum
  • secara signifikan mengurangi waktu yang dihabiskan dalam membuat dan memelihara pool khusus

Kumpulan DevOps Terkelola adalah evolusi kumpulan agen Azure DevOps Virtual Machine Scale Set, Mereka menyederhanakan pembuatan kumpulan kustom lebih jauh dengan meningkatkan skalabilitas dan keandalan kumpulan kustom. Pool DevOps yang Dikelola adalah layanan terkelola penuh di mana mesin virtual atau kontainer yang menjalankan agen berada dalam langganan Microsoft Azure dan bukan dalam langganan Azure Anda sendiri, seperti ketika Anda menggunakan kumpulan agen Azure DevOps Virtual Machine Scale Set. Untuk informasi selengkapnya, lihat dokumentasi Kumpulan DevOps Terkelola.

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 lainnya 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 simultan yang di-host sendiri selama 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 nilai nama yang secara otomatis ditemukan oleh perangkat lunak agen, yang disebut kemampuan sistem, atau kemampuan yang Anda tentukan, yang 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 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 kerja, 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 dihosting sendiri agar 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. 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 dalam browser web Anda, buka Agent pools:

    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.

  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 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 untuk menentukan pekerjaan mana yang perlu dijalankan, dan untuk 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 agen dikonfigurasi dalam topologi yang berbeda seperti yang ditunjukkan oleh contoh berikut.

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 hanya diperlukan pada saat pendaftaran dan tidak disimpan 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 mendengarkan antrean pekerjaan.

  2. Agen memantau apakah ada permintaan pekerjaan baru yang diposting untuknya di antrean pekerjaan pada Azure Pipelines/Azure DevOps Server menggunakan polling HTTP jangka panjang. Saat pekerjaan tersedia, agen mengunduh pekerjaan dan OAuth token khusus untuk pekerjaan tersebut. Azure Pipelines/Azure DevOps Server menghasilkan token berumur pendek untuk identitas berlingkup yang ditentukan dalam pipeline. Token digunakan oleh agen untuk mengakses atau memodifikasi sumber daya di Azure Pipelines atau Azure DevOps Server dalam pekerjaan tersebut. Misalnya, untuk mengakses kode sumber atau mengunggah hasil pengujian.

  3. Agen membuang token OAuth yang terkait dengan pekerjaan setelah pekerjaan selesai, lalu kembali memeriksa apakah ada permintaan pekerjaan baru menggunakan token OAuth listener.

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. 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 memiliki pengodean yang berbeda dari UTF-8, Anda mungkin mengalami beberapa masalah dengan output log. Misalnya, log mungkin berisi karakter yang tidak dikenali pengodean sistem Anda, sehingga mungkin muncul sebagai simbol yang kacau atau 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 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 dapat memperoleh rentang IP agen tempat agen yang dihosting Microsoft dikerahkan sehingga Anda dapat mengonfigurasi aturan firewall untuk Azure VNet Anda agar 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 Team Foundation Server, seperti yang ditunjukkan 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 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. 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.

  • Token akses pribadi
  • Alternatif hubungkan ke Azure DevOps Server atau TFS 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.

  • Negosiasikan Hubungkan ke Azure DevOps Server sebagai pengguna selain pengguna yang terautentikasi melalui skema autentikasi Windows seperti New Technology LAN Manager (NTLM) atau Kerberos. Setelah memilih Negosiasi, Anda akan dimintai kredensial.
  • Terintegrasi (Default) Sambungkan 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, kami sarankan Anda terlebih dahulu mencobanya 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 program agen dijalankan secara otomatis jika komputer dihidupkan ulang.

  1. Sebagai layanan. Anda dapat menggunakan manajer layanan sistem operasi untuk mengelola siklus hidup agen. Selain itu, pengalaman dalam memutakhirkan agen secara otomatis lebih baik ketika agen 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 autologon 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 autologon, cukup menutup Desktop Jauh menyebabkan komputer dikunci dan pengujian UI apa pun yang berjalan pada agen ini mungkin gagal. Untuk menghindari masalah 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. Pilihan akun agen sepenuhnya bergantung pada kebutuhan tugas yang dijalankan dalam pekerjaan build dan penyebaran Anda.

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

Di Windows, Anda harus mempertimbangkan untuk menggunakan akun layanan seperti Layanan Jaringan atau Layanan Lokal. Izin akun ini dibatasi dan kata sandinya tidak kedaluwarsa, yang berarti 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.

Agen yang dihosting Microsoft selalu selalu diperbarui. Jika versi agen yang lebih baru hanya berbeda dalam versi minor, Azure Pipelines dapat secara otomatis memperbarui agen yang dihost secara mandiri. Anda dapat mengonfigurasi pengaturan ini di Kumpulan agen, pilih agen Anda, Pengaturan - default diaktifkan. 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 meningkatkan agen dengan mudah dari tab Kumpulan agen di bawah organisasi Anda. Jalur tidak dapat berjalan tanpa 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 dalam pool, dan dijalankan 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 diperbarui 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 ditawarkan sebagai peningkatan.

Jika Anda menjalankan agen secara interaktif, atau jika ada versi utama yang lebih baru dari agen tersedia, maka Anda mungkin harus memperbarui 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 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 belum 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 belum ada.

Struktur direktori agen

Saat job 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 sebagai berikut:


    - /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 Lokasi tempat 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/ruang kerja Tempat tugas pipeline berjalan 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 - Direktori sumber/kerja Berisi kode sumber yang diambil dari repositori. Jika Anda memiliki beberapa langkah checkout dalam pekerjaan Anda, kode sumber Anda akan dicek keluar ke direktori yang dinamai sesuai repositori sebagai subfolder 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
Direktori Hasil Tes 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, oleh karena itu direktori kerja tidak dipertahankan di antara eksekusi. Pada agen yang dikelola sendiri, hanya direktori penyimpanan sementara artefak dan direktori hasil pengujian yang dibersihkan secara default di antara setiap proses. 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. Pergi ke tab Agent pools:

    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.

  2. Klik pada 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 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 kemampuan agen.

  5. Cari kemampuan Agent.Version . Anda dapat memeriksa nilai ini dengan versi agen terbaru yang telah diterbitkan. Lihat Azure Pipelines Agent 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 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 bentuk .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 folder %ProgramData%\Microsoft\Azure DevOps\Agents. 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 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 cache, karena agen tersebut akan 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 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 proses pembangunan paralel menggunakan penyebaran alat tunggal 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 tugas pipeline 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 selama 7,5 detik.
  • Jika proses tidak terhenti, perintah kedua dikirim dengan batas waktu habis 2,5 detik.
  • Jika proses tidak berakhir, agen memerintahkannya untuk dimatikan.
  • Jika proses mengabaikan dua permintaan penghentian awal, proses tersebut akan dimatikan secara paksa.

Dari permintaan awal hingga penghentian membutuhkan waktu sekitar 10 detik.

Perintah yang dikeluarkan untuk proses pembatalan 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 kueri 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 kueri Salah benang Versi API yang akan digunakan. Nilai harus diatur ke '6.0' untuk menggunakan versi API ini.

Untuk mengaktifkan pembaruan agen, isi permintaan harus kosong.

Catatan

Azure Pipelines Agent sumber terbuka di GitHub.

Pelajari lebih lanjut

Untuk informasi lebih lanjut mengenai agen, lihat modul-modul berikut di lintasan pembelajaran Membangun aplikasi dengan Azure DevOps.