Agen Linux yang dihost sendiri

| Azure DevOps Services Azure DevOps Server 2020 | | Azure DevOps Server 2019 TFS 2018

Catatan

Di Microsoft Team Foundation Server (TFS) 2018 dan versi sebelumnya, alur build dan rilis disebut definisi, eksekusi disebut build, koneksi layanan disebut titik akhir layanan, tahapan disebut lingkungan, dan pekerjaan disebut fase.

Untuk menjalankan pekerjaan, Anda memerlukan setidaknya satu agen. Agen Linux dapat membangun dan menyebarkan berbagai jenis aplikasi, termasuk aplikasi Java dan Android. Kami mendukung Ubuntu, Red Hat, dan CentOS.

Sebelum Anda mulai:

  • Jika alur Anda berada di Azure Pipelines dan agen yang dihosting Microsoft memenuhi kebutuhan Anda, Anda dapat melewati pengaturan agen Linux privat.
  • Jika tidak, Anda telah datang ke tempat yang tepat untuk menyiapkan agen di Linux. Lanjutkan ke langkah berikutnya.

Pelajari tentang agen

Jika Anda sudah tahu apa itu agen dan cara kerjanya, jangan ragu untuk langsung melompat ke bagian berikut. Tetapi jika Anda ingin beberapa latar belakang lainnya tentang apa yang mereka lakukan dan cara kerjanya, lihat Agen Azure Pipelines.

Memeriksa prasyarat

Agen didasarkan pada .NET Core 3.1. Anda dapat menjalankan agen ini pada beberapa distribusi Linux. Kami mendukung subset distribusi yang didukung .NET Core berikut:

  • x64
    • CentOS 7, 6 (lihat catatan 1)
    • Debian 9
    • Fedora 30, 29
    • Linux Mint 18, 17
    • openSUSE 42.3 atau yang lebih baru
    • Oracle Linux 7
    • Red Hat Enterprise Linux 8, 7, 6 (lihat catatan 1)
    • SUSE Enterprise Linux 12 SP2 atau yang lebih baru
    • Ubuntu 20.04, 18.04, 16.04
    • CBL-Mariner 1.0 (lihat catatan 3)
  • ARM32 (lihat catatan 2)
    • Debian 9
    • Ubuntu 18.04
  • ARM64
    • Debian 9
    • Ubuntu 21.04, 20.04, 18.04

Catatan

Catatan 1: RHEL 6 dan CentOS 6 memerlukan penginstalan versi khusus rhel.6-x64 agen.

Catatan

Catatan 2: Set instruksi ARM ARMv7 atau lebih tinggi diperlukan. Jalankan uname -a untuk melihat set instruksi distro Linux Anda.

Catatan

Distribusi MARINER OS saat ini memiliki dukungan parsial dari Agen Azure DevOps. Kami menyediakan mekanisme untuk deteksi distribusi OS ini dalam installdependencies.sh skrip, tetapi karena kurangnya dukungan dari sisi .Net Core , kami tidak dapat menjamin pengoperasian penuh semua fungsi agen saat berjalan pada distribusi OS ini.

Terlepas dari platform Anda, Anda harus menginstal Git 2.9.0 atau yang lebih tinggi. Kami sangat menyarankan untuk menginstal Git versi terbaru.

Catatan

Alat penginstal agen tahu cara memeriksa dependensi lain. Anda dapat menginstal dependensi tersebut pada platform Linux yang didukung dengan menjalankan ./bin/installdependencies.sh di direktori agen.

Ketahuilah bahwa beberapa dependensi yang diperlukan oleh .NET Core diambil dari situs pihak ketiga, seperti packages.efficios.com. installdependencies.sh Tinjau skrip dan pastikan setiap situs pihak ketiga yang direferensikan dapat diakses dari komputer Linux Anda sebelum menjalankan skrip.

Pastikan juga bahwa semua repositori yang diperlukan terhubung ke manajer paket yang relevan yang digunakan di installdependencies.sh (seperti apt atau zypper).

Untuk masalah dengan penginstalan dependensi (seperti 'dependensi tidak ditemukan di repositori' atau 'masalah mengambil file indeks repositori') - Anda dapat menghubungi pemilik distribusi untuk dukungan lebih lanjut.

TFS 2018 RTM dan yang lebih lama: Agen yang dikirim didasarkan pada CoreCLR 1.0. Kami menyarankan agar, jika dapat, Anda harus meningkatkan ke versi agen yang lebih baru (2.125.0 atau lebih tinggi). Lihat Pra-tanya agen Azure Pipelines untuk informasi selengkapnya tentang apa yang diperlukan untuk menjalankan agen yang lebih baru.

Jika Anda harus tetap berada di agen yang lebih lama, pastikan komputer Anda siap dengan prasyarat kami untuk salah satu distribusi yang didukung:

Subversion

Jika Anda membangun dari repositori Subversion, Anda harus menginstal klien Subversion pada komputer.

Anda harus menjalankan penyiapan agen secara manual untuk pertama kalinya. Setelah Anda merasakan cara kerja agen, atau jika Anda ingin mengotomatiskan pengaturan banyak agen, pertimbangkan untuk menggunakan konfigurasi tanpa pengawas.

TFVC

Jika Anda akan menggunakan TFVC, Anda juga memerlukan Oracle Java JDK 1.6 atau yang lebih tinggi. (Oracle JRE dan OpenJDK tidak cukup untuk tujuan ini.)

Plugin TEE digunakan untuk fungsionalitas TFVC. Ini memiliki EULA, yang harus Anda terima selama konfigurasi jika Anda berencana untuk bekerja dengan TFVC.

Karena plugin TEE tidak lagi dipertahankan dan berisi beberapa dependensi Java yang sudah kedaluarsa, mulai dari Agen 2.198.0 tidak lagi disertakan dalam distribusi agen. Namun, plugin TEE akan diunduh selama eksekusi tugas checkout jika Anda memeriksa repositori TFVC. Plugin TEE akan dihapus setelah eksekusi pekerjaan.

Catatan

Catatan: Anda mungkin melihat tugas checkout Anda membutuhkan waktu lama untuk mulai bekerja karena mekanisme pengunduhan ini.

Jika agen berjalan di belakang proksi atau firewall, Anda harus memastikan akses ke situs berikut: https://vstsagenttools.blob.core.windows.net/. Plugin TEE akan diunduh dari alamat ini.

Jika Anda menggunakan agen yang dihost sendiri dan menghadapi masalah dengan pengunduhan TEE, Anda dapat menginstal TEE secara manual:

  1. Atur DISABLE_TEE_PLUGIN_REMOVAL variabel lingkungan atau alur ke true. Variabel ini mencegah agen menghapus plugin TEE setelah checkout repositori TFVC.
  2. Unduh TEE-CLC versi 14.135.0 secara manual dari Team Explorer Everywhere GitHub rilis.
  3. Ekstrak konten TEE-CLC-14.135.0 folder ke <agent_directory>/externals/tee.

Menyiapkan izin

Keamanan informasi untuk agen yang dihost sendiri

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

Folder yang dikontrol oleh agen harus dibatasi untuk sesegel mungkin pengguna dan mereka berisi rahasia yang dapat didekripsi atau dieksfiltrasi.

Agen alur ADO adalah produk perangkat lunak yang dirancang untuk menjalankan kode yang diunduhnya dari sumber eksternal. Secara inheren bisa menjadi target untuk serangan Remote Code Execution (RCE).

Oleh karena itu, penting untuk mempertimbangkan model ancaman yang mengelilingi setiap penggunaan individu Agen Alur untuk melakukan pekerjaan, dan memutuskan izin minimum apa yang dapat diberikan kepada pengguna yang menjalankan agen, ke mesin tempat agen berjalan, kepada pengguna yang memiliki akses tulis ke definisi Alur, repositori git tempat yaml disimpan, atau grup pengguna yang mengontrol akses ke kumpulan untuk alur baru.

Ini adalah praktik terbaik agar identitas yang menjalankan agen berbeda dari identitas dengan izin untuk menghubungkan agen ke kumpulan. Pengguna yang menghasilkan kredensial (dan file terkait agen lainnya) berbeda dari pengguna yang perlu membacanya. Oleh karena itu, lebih aman untuk mempertimbangkan akses dengan hati-hati yang diberikan ke komputer agen itu sendiri, dan folder agen yang berisi file sensitif, seperti log dan artefak.

Masuk akal untuk memberikan akses ke folder agen hanya untuk administrator DevOps dan identitas pengguna yang menjalankan proses agen. Administrator mungkin perlu menyelidiki sistem file untuk memahami kegagalan build atau mendapatkan file log agar dapat melaporkan kegagalan Azure DevOps.

Tentukan pengguna mana yang akan Anda gunakan

Sebagai langkah satu kali, Anda harus mendaftarkan agen. Seseorang yang memiliki izin untuk mengelola antrean agen harus menyelesaikan langkah-langkah ini. Agen tidak akan menggunakan kredensial orang ini dalam operasi sehari-hari, tetapi mereka diharuskan untuk menyelesaikan pendaftaran. Pelajari selengkapnya tentang cara agen berkomunikasi.

Mengautentikasi dengan token akses pribadi (PAT)

  1. Masuk dengan akun pengguna yang Anda rencanakan untuk digunakan di portal web Team Foundation Server Anda (https://{your-server}:8080/tfs/).
  1. Masuk dengan akun pengguna yang Anda rencanakan untuk digunakan di portal web Azure DevOps Server (https://{your-server}/DefaultCollection/).
  1. Masuk dengan akun pengguna yang Anda rencanakan untuk digunakan dalam organisasi Azure DevOps (https://dev.azure.com/{your_organization}).
  1. Dari halaman beranda, buka profil Anda. Buka detail keamanan Anda.

    Go to your security details.

  2. Membuat token akses pribadi.

    Create a personal access token.

  1. Dari beranda, buka pengaturan pengguna, lalu pilih Token akses pribadi.

    Go to your security details.

  2. Membuat token akses pribadi.

    Create a personal access token.

  1. Untuk cakupan pilih Kumpulan Agen (baca, kelola) dan pastikan semua kotak lainnya dikosongkan. Jika ini adalah agen grup penyebaran , untuk cakupan pilih Grup penyebaran (baca, kelola) dan pastikan semua kotak lain dikosongkan.

    Pilih Perlihatkan semua cakupan di bagian bawah jendela Buat token akses pribadi baru untuk melihat daftar lengkap cakupan.

  2. Salin token. Anda akan menggunakan token ini saat mengonfigurasi agen.

Mengonfirmasi bahwa pengguna memiliki izin

Pastikan akun pengguna yang akan Anda gunakan memiliki izin untuk mendaftarkan agen.

Apakah pengguna adalah pemilik organisasi Azure DevOps atau administrator TFS atau Azure DevOps Server? Berhenti di sini, Anda memiliki izin.

Sebaliknya:

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

    1. Pilih Azure DevOps, Pengaturan organisasi.

      Choose Organization settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools tab.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Choose Collection settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Collection settings, 2019.

    2. Pilih Kumpulan agen.

      Choose Agent pools, 2019.

    1. Navigasikan ke proyek Anda dan pilih Antrean AgenPengaturan (ikon gigi). >

      Choose Settings, Agent Queues, 2018.

    2. Pilih Kelola kumpulan.

      Choose Manage pools, 2018.

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

  3. Jika akun pengguna yang akan Anda gunakan tidak ditampilkan, maka minta administrator untuk menambahkannya. Administrator dapat menjadi administrator kumpulan agen, pemilik organisasi Azure DevOps, atau TFS atau administrator Azure DevOps Server.

    Jika ini adalah agen grup penyebaran, administrator dapat menjadi administrator grup penyebaran, pemilik organisasi Azure DevOps, atau administrator TFS atau Azure DevOps Server.

    Anda dapat menambahkan pengguna ke peran administrator grup penyebaran di tab Keamanan pada halaman Grup Penyebaran di Azure Pipelines.

Catatan

Jika Anda melihat pesan seperti ini: Maaf, kami tidak dapat menambahkan identitas. Silakan coba identitas yang berbeda., Anda mungkin mengikuti langkah-langkah di atas untuk pemilik organisasi atau TFS atau administrator Azure DevOps Server. Anda tidak perlu melakukan apa pun; Anda sudah memiliki izin untuk mengelola antrean agen.

Mengunduh dan mengonfigurasi agen

Azure Pipelines

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

  2. Di browser web Anda, masuk ke Azure Pipelines, dan navigasikan ke tab Kumpulan agen:

    1. Pilih Azure DevOps, Pengaturan organisasi.

      Choose Organization settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools tab.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Choose Collection settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Collection settings, 2019.

    2. Pilih Kumpulan agen.

      Choose Agent pools, 2019.

    1. Navigasikan ke proyek Anda dan pilih Antrean AgenPengaturan (ikon gigi). >

      Choose Settings, Agent Queues, 2018.

    2. Pilih Kelola kumpulan.

      Choose Manage pools, 2018.

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

  4. Pada kotak dialog Dapatkan agen , klik Linux.

  5. Di panel kiri, pilih rasa tertentu. Kami menawarkan x64 atau ARM untuk sebagian besar distribusi Linux. Kami juga menawarkan build khusus untuk Red Hat Enterprise Linux 6.

  6. Di panel kanan, klik tombol Unduh .

  7. Ikuti instruksi di halaman.

  8. Buka kemasan agen ke direktori pilihan Anda. cd ke direktori tersebut dan jalankan ./config.sh.

Azure DevOps Server 2019 dan Azure DevOps Server 2020

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

  2. Di browser web Anda, masuk ke Azure DevOps Server 2019, dan navigasikan ke tab Kumpulan agen:

    1. Pilih Azure DevOps, Pengaturan organisasi.

      Choose Organization settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools tab.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Choose Collection settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Collection settings, 2019.

    2. Pilih Kumpulan agen.

      Choose Agent pools, 2019.

    1. Navigasikan ke proyek Anda dan pilih Antrean AgenPengaturan (ikon gigi). >

      Choose Settings, Agent Queues, 2018.

    2. Pilih Kelola kumpulan.

      Choose Manage pools, 2018.

  3. Klik Unduh agen.

  4. Pada kotak dialog Dapatkan agen , klik Linux.

  5. Di panel kiri, pilih rasa tertentu. Kami menawarkan x64 atau ARM untuk sebagian besar distribusi Linux. Kami juga menawarkan build khusus untuk Red Hat Enterprise Linux 6.

  6. Di panel kanan, klik tombol Unduh .

  7. Ikuti instruksi di halaman.

  8. Buka kemasan agen ke direktori pilihan Anda. cd ke direktori tersebut dan jalankan ./config.sh.

TFS 2018

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

  2. Di browser web Anda, masuk ke TFS, dan navigasikan ke tab Kumpulan agen:

    1. Navigasikan ke proyek Anda dan pilih Antrean AgenPengaturan (ikon gigi). >

      Choose Settings, Agent Queues, 2018.

    2. Pilih Kelola kumpulan.

      Choose Manage pools, 2018.

  3. Klik Unduh agen.

  4. Pada kotak dialog Dapatkan agen , klik Linux.

  5. Klik tombol Unduh .

  6. Ikuti instruksi di halaman.

  7. Buka kemasan agen ke direktori pilihan Anda. cd ke direktori tersebut dan jalankan ./config.sh. Pastikan bahwa jalur ke direktori tidak berisi spasi karena alat dan skrip tidak selalu keluar dari spasi dengan benar.

URL Server

Azure Pipelines: https://dev.azure.com/{your-organization}

Azure DevOps Server 2019: https://{your_server}/DefaultCollection

TFS 2018: https://{your_server}/tfs

Jenis autentikasi

Azure Pipelines

Pilih PAT, lalu tempelkan token PAT yang Anda buat ke jendela prompt perintah.

Catatan

Saat menggunakan PAT sebagai metode autentikasi, token PAT hanya digunakan untuk konfigurasi awal agen. Pelajari selengkapnya di Komunikasi dengan Azure Pipelines atau TFS.

TFS atau Azure DevOps Server

Penting

Pastikan server Anda dikonfigurasi untuk mendukung metode autentikasi yang ingin Anda gunakan.

Saat mengonfigurasi agen untuk menyambungkan ke TFS, Anda memiliki opsi berikut:

  • Koneksi alternatif ke TFS atau Azure DevOps Server menggunakan autentikasi Dasar. Setelah memilih Alternatif, Anda akan dimintai kredensial Anda.

  • Terintegrasi Tidak didukung di macOS atau Linux.

  • Negosiasikan (Default) Koneksi ke TFS atau Azure DevOps Server sebagai pengguna selain pengguna yang masuk melalui skema autentikasi Windows seperti NTLM atau Kerberos. Setelah memilih Negosiasi, Anda akan dimintai kredensial.

  • PAT Hanya didukung pada Azure Pipelines dan TFS 2017 dan yang lebih baru. Setelah Anda memilih PAT, tempelkan token PAT yang Anda buat ke jendela prompt perintah. Gunakan token akses pribadi (PAT) jika instans Azure DevOps Server atau TFS Anda dan mesin agen tidak berada di domain tepercaya. Autentikasi PAT ditangani oleh instans Azure DevOps Server atau TFS Anda, bukan pengontrol domain.

Catatan

Saat menggunakan PAT sebagai metode autentikasi, token PAT hanya digunakan untuk konfigurasi awal agen pada Azure DevOps Server dan versi TFS yang lebih baru. Pelajari selengkapnya di Komunikasi dengan Azure Pipelines atau TFS.

Jalankan secara interaktif

Untuk panduan tentang apakah akan menjalankan agen dalam mode interaktif atau sebagai layanan, lihat Agen: Interaktif vs. layanan.

Untuk menjalankan agen secara interaktif:

  1. Jika Anda telah menjalankan agen sebagai layanan, hapus instalan layanan.

  2. Jalankan agen.

    ./run.sh
    

Untuk memulai ulang agen, tekan Ctrl+C lalu jalankan run.sh untuk memulai ulang.

Untuk menggunakan agen Anda, jalankan pekerjaan menggunakan kumpulan agen. Jika Anda tidak memilih kumpulan yang berbeda, agen Anda akan berada di kumpulan Default .

Jalankan sekali

Agar agen yang dikonfigurasi berjalan secara interaktif, Anda dapat memilih agar agen hanya menerima satu pekerjaan. Untuk menjalankan konfigurasi ini:

./run.sh --once

Agen dalam mode ini hanya akan menerima satu pekerjaan dan kemudian berputar dengan lancar (berguna untuk berjalan di Docker pada layanan seperti Azure Container Instances).

Jalankan sebagai layanan systemd

Jika agen Anda berjalan pada sistem operasi ini, Anda dapat menjalankan agen sebagai systemd layanan:

  • Ubuntu 16 LTS atau yang lebih baru
  • Red Hat 7.1 atau yang lebih baru

Kami menyediakan contoh ./svc.sh skrip bagi Anda untuk menjalankan dan mengelola agen Anda sebagai systemd layanan. Skrip ini akan dihasilkan setelah Anda mengonfigurasi agen. Kami mendorong Anda untuk meninjau, dan jika diperlukan, perbarui skrip sebelum menjalankannya.

Beberapa peringatan penting:

  • Jika Anda menjalankan agen sebagai layanan, Anda tidak dapat menjalankan layanan agen sebagai root pengguna.
  • Pengguna yang menjalankan SELinux telah melaporkan kesulitan dengan skrip yang disediakan svc.sh . Lihat masalah agen ini sebagai titik awal. SELinux bukan konfigurasi yang didukung secara resmi.

Catatan

Jika Anda memiliki distribusi yang berbeda, atau jika Anda lebih suka pendekatan lain, Anda dapat menggunakan mekanisme layanan apa pun yang Anda sukai. Lihat File layanan.

Perintah

Mengubah ke direktori agen

Misalnya, jika Anda menginstal di myagent subfolder direktori beranda Anda:

cd ~/myagent$

Instal

Perintah:

sudo ./svc.sh install [username]

Perintah ini membuat file layanan yang menunjuk ke ./runsvc.sh. Skrip ini menyiapkan lingkungan (detail selengkapnya di bawah) dan memulai host agen. Jika username parameter tidak ditentukan, maka nama pengguna diambil dari variabel lingkungan $SUDO_USER yang diatur oleh perintah sudo. Variabel ini selalu sama dengan nama pengguna yang memanggil sudo perintah.

Mulai

sudo ./svc.sh start

Status

sudo ./svc.sh status

Hentikan

sudo ./svc.sh stop

Hapus instalasi

Anda harus berhenti sebelum menghapus instalan.

sudo ./svc.sh uninstall

Memperbarui variabel lingkungan

Saat Anda mengonfigurasi layanan, dibutuhkan rekam jepret dari beberapa variabel lingkungan yang berguna untuk pengguna masuk Anda saat ini seperti PATH, LANG, JAVA_HOME, ANT_HOME, dan MYSQL_PATH. Jika Anda perlu memperbarui variabel (misalnya, setelah menginstal beberapa perangkat lunak baru):

./env.sh
sudo ./svc.sh stop
sudo ./svc.sh start

Rekam jepret variabel lingkungan disimpan dalam .env file (PATH disimpan dalam ) di .pathbawah direktori akar agen, Anda juga dapat mengubah file-file ini secara langsung untuk menerapkan perubahan variabel lingkungan.

Jalankan instruksi sebelum layanan dimulai

Anda juga dapat menjalankan instruksi dan perintah Anda sendiri untuk dijalankan saat layanan dimulai. Misalnya, Anda dapat menyiapkan lingkungan atau memanggil skrip.

  1. Edit runsvc.sh.

  2. Ganti baris berikut dengan instruksi Anda:

    # insert anything to setup env when running as a service
    

File layanan

Ketika Anda menginstal layanan, beberapa file layanan diberlakukan.

file layanan systemd

File layanan systemd dibuat:

/etc/systemd/system/vsts.agent.{tfs-name}.{agent-name}.service

Misalnya, Anda telah mengonfigurasi agen (lihat di atas) dengan nama our-linux-agent. File layanan akan berupa:

  • Azure Pipelines: nama organisasi Anda. Misalnya jika Anda tersambung ke https://dev.azure.com/fabrikam, maka nama layanan akan menjadi /etc/systemd/system/vsts.agent.fabrikam.our-linux-agent.service

  • TFS atau Azure DevOps Server: nama server lokal Anda. Misalnya jika Anda tersambung ke http://our-server:8080/tfs, maka nama layanan akan menjadi /etc/systemd/system/vsts.agent.our-server.our-linux-agent.service

sudo ./svc.sh install menghasilkan file ini dari templat ini: ./bin/vsts.agent.service.template

File .service

sudo ./svc.sh start menemukan layanan dengan membaca .service file , yang berisi nama file layanan systemd yang dijelaskan di atas.

Mekanisme layanan alternatif

Kami menyediakan ./svc.sh skrip sebagai cara mudah bagi Anda untuk menjalankan dan mengelola agen Anda sebagai layanan systemd. Tetapi Anda dapat menggunakan mekanisme layanan apa pun yang Anda sukai (misalnya: initd atau upstart).

Anda dapat menggunakan templat yang dijelaskan di atas untuk memfasilitasi pembuatan jenis file layanan lainnya.

Menggunakan cgroup untuk menghindari kegagalan agen

Penting untuk menghindari situasi di mana agen gagal atau menjadi tidak dapat digunakan karena jika tidak, agen tidak dapat mengalirkan log alur atau melaporkan status alur kembali ke server. Anda dapat mengurangi risiko masalah semacam ini yang disebabkan oleh tekanan memori tinggi dengan menggunakan cgroup dan yang lebih rendah oom_score_adj. Setelah Anda melakukan ini, Linux merebut kembali memori sistem dari proses pekerjaan alur sebelum mengklaim kembali memori dari proses agen. Pelajari cara mengonfigurasi cgroup dan skor OOM.

Mengganti agen

Untuk mengganti agen, ikuti langkah-langkah Unduh dan konfigurasikan agen lagi.

Saat Anda mengonfigurasi agen menggunakan nama yang sama dengan agen yang sudah ada, Anda akan ditanya apakah Anda ingin mengganti agen yang ada. Jika Anda menjawab Y, pastikan Anda menghapus agen (lihat di bawah) yang Anda ganti. Jika tidak, setelah beberapa menit konflik, salah satu agen akan dimatikan.

Menghapus dan mengonfigurasi ulang agen

Untuk menghapus agen:

  1. Hentikan dan hapus instalan layanan seperti yang dijelaskan di atas.

  2. Hapus agen.

    ./config.sh remove
    
  3. Masukkan info masuk Anda.

Setelah menghapus agen, Anda dapat mengonfigurasinya lagi.

Konfigurasi tanpa pengawas

Agen dapat diatur dari skrip tanpa intervensi manusia. Anda harus meneruskan --unattended dan jawaban untuk semua pertanyaan.

Untuk mengonfigurasi agen, agen harus mengetahui URL ke organisasi atau koleksi dan kredensial seseorang yang berwenang untuk menyiapkan agen. Semua respons lainnya bersifat opsional. Parameter baris perintah apa pun dapat ditentukan menggunakan variabel lingkungan sebagai gantinya: letakkan namanya dalam huruf besar dan prepend VSTS_AGENT_INPUT_. Misalnya, VSTS_AGENT_INPUT_PASSWORD alih-alih menentukan --password.

Opsi yang diperlukan

  • --unattended - pengaturan agen tidak akan meminta informasi, dan semua pengaturan harus disediakan pada baris perintah
  • --url <url> - URL server. Misalnya: https://dev.azure.com/myorganization atau http://my-azure-devops-server:8080/tfs
  • --auth <type> - jenis autentikasi. Nilai yang valid adalah:
    • pat(Token akses pribadi) - PAT adalah satu-satunya skema yang berfungsi dengan Azure DevOps Services.
    • negotiate (Kerberos atau NTLM)
    • alt (Autentikasi dasar)
    • integrated(Windows kredensial default)

Opsi autentikasi

  • Jika Anda memilih --auth pat:
    • --token <token> - menentukan token akses pribadi Anda
    • PAT adalah satu-satunya skema yang berfungsi dengan Azure DevOps Services.
  • Jika Anda memilih --auth negotiate atau --auth alt:
    • --userName <userName>- menentukan nama pengguna Windows dalam format domain\userName atauuserName@domain.com
    • --password <password> - menentukan kata sandi

Nama kumpulan dan agen

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

Penyiapan agen

  • --work <workDirectory> - direktori kerja tempat data pekerjaan disimpan. Default ke _work di bawah akar direktori agen. Direktori kerja dimiliki oleh agen tertentu dan tidak boleh dibagi antara beberapa agen.
  • --acceptTeeEula - terima Perjanjian Lisensi Pengguna Akhir Di Mana Saja Penjelajah Tim (khusus macOS dan Linux)
  • --disableloguploads - jangan melakukan streaming atau mengirim output log konsol ke server. Sebagai gantinya, Anda dapat mengambilnya dari sistem file host agen setelah pekerjaan selesai.

startup Windows-saja

  • --runAsService- mengonfigurasi agen untuk berjalan sebagai layanan Windows (memerlukan izin administrator)
  • --runAsAutoLogon - mengonfigurasi masuk otomatis dan menjalankan agen saat startup (memerlukan izin administrator)
  • --windowsLogonAccount <account>- digunakan dengan --runAsService atau --runAsAutoLogon untuk menentukan nama pengguna Windows dalam format domain\userName atauuserName@domain.com
  • --windowsLogonPassword <password>- digunakan dengan --runAsService atau --runAsAutoLogon untuk menentukan kata sandi masuk Windows (tidak diperlukan untuk Akun Layanan Terkelola Grup dan Windows akun bawaan seperti 'NT AUTHORITY\NETWORK SERVICE')
  • --overwriteAutoLogon - digunakan dengan --runAsAutoLogon untuk menimpa masuk otomatis yang ada pada komputer
  • --noRestart - digunakan dengan --runAsAutoLogon untuk menghentikan host memulai ulang setelah konfigurasi agen selesai

Grup penyebaran saja

  • --deploymentGroup - mengonfigurasi agen sebagai agen grup penyebaran
  • --deploymentGroupName <name> - digunakan dengan --deploymentGroup untuk menentukan grup penyebaran untuk bergabung dengan agen
  • --projectName <name> - digunakan dengan --deploymentGroup untuk mengatur nama proyek
  • --addDeploymentGroupTags - digunakan dengan --deploymentGroup untuk menunjukkan bahwa tag grup penyebaran harus ditambahkan
  • --deploymentGroupTags <tags> - digunakan dengan --addDeploymentGroupTags untuk menentukan daftar tag yang dipisahkan koma untuk agen grup penyebaran - misalnya "web, db"

Hanya lingkungan

  • --addvirtualmachineresourcetags - digunakan untuk menunjukkan bahwa tag sumber daya lingkungan harus ditambahkan
  • --virtualmachineresourcetags <tags> - digunakan dengan --addvirtualmachineresourcetags untuk menentukan daftar tag yang dipisahkan koma untuk agen sumber daya lingkungan - misalnya "web, db"

./config.sh --help selalu mencantumkan respons terbaru yang diperlukan dan opsional.

Diagnostik

Jika Anda mengalami masalah dengan agen yang dihost sendiri, Anda dapat mencoba menjalankan diagnostik. Setelah mengonfigurasi agen:

./run.sh --diagnostics

Ini akan berjalan melalui rangkaian diagnostik yang dapat membantu Anda memecahkan masalah. Fitur diagnostik tersedia dimulai dengan agen versi 2.165.0.

Bantuan tentang opsi lain

Untuk mempelajari tentang opsi lain:

./config.sh --help

Bantuan ini menyediakan informasi tentang alternatif autentikasi dan konfigurasi tanpa pengawas.

Kemampuan

Kemampuan agen Anda dikatalogkan dan diiklankan di kumpulan sehingga hanya build dan rilis yang dapat ditangani untuk itu. Lihat Membangun dan merilis kemampuan agen.

Dalam banyak kasus, setelah menyebarkan agen, Anda harus menginstal perangkat lunak atau utilitas. Umumnya Anda harus menginstal pada agen Anda perangkat lunak dan alat apa pun yang Anda gunakan pada mesin pengembangan Anda.

Misalnya, jika build Anda menyertakan tugas npm, build tidak akan berjalan kecuali ada agen build di kumpulan yang telah menginstal npm.

Penting

Kemampuan mencakup semua variabel lingkungan dan nilai yang diatur saat agen berjalan. Jika salah satu nilai ini berubah saat agen berjalan, agen harus dimulai ulang untuk mengambil nilai baru. Setelah menginstal perangkat lunak baru pada agen, Anda harus memulai ulang agen agar kemampuan baru muncul di kumpulan, sehingga build dapat berjalan.

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

FAQ

Bagaimana cara memastikan saya memiliki versi agen v2 terbaru?

  1. Navigasi ke tab Kumpulan agen :

    1. Pilih Azure DevOps, Pengaturan organisasi.

      Choose Organization settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools tab.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Choose Collection settings.

    2. Pilih Kumpulan agen.

      Choose Agent pools.

    1. Pilih Azure DevOps, Pengaturan koleksi.

      Collection settings, 2019.

    2. Pilih Kumpulan agen.

      Choose Agent pools, 2019.

    1. Navigasikan ke proyek Anda dan pilih Antrean AgenPengaturan (ikon gigi). >

      Choose Settings, Agent Queues, 2018.

    2. Pilih Kelola kumpulan.

      Choose Manage pools, 2018.

  2. Klik kumpulan yang berisi agen.

  3. Pastikan agen diaktifkan.

  4. Navigasi ke tab kapabilitas:

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

      From Agent pools, select the desired agent pool.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Select Agents and choose the agent.

    3. Pilih tab Kapabilitas .

      Choose the Capabilities tab.

      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.

      Select the desired pool.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Select Agents and choose the desired agent.

    3. Pilih tab Kapabilitas .

      Agent capabilities tab.

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

      Select the desired tab, 2019.

    2. Pilih Agen dan pilih agen yang diinginkan.

      Choose the desired agent, 2019.

    3. Pilih tab Kapabilitas .

      Choose the Capabilities tab, 2019.

    Pilih agen yang diinginkan, dan pilih tab Kemampuan .

    Agent capabilities tab, 2018.

  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 menggantikan 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 Azure Pipelines Agent GitHub Releases.

  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 .

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

Mengapa sudo diperlukan untuk menjalankan perintah layanan?

./svc.shsystemctlmenggunakan , yang memerlukan sudo.

Kode sumber: systemd.svc.sh.template di GitHub

Saya menjalankan firewall dan kode saya ada di Azure Repos. URL apa saja yang perlu berkomunikasi dengan agen?

Jika Anda menjalankan agen di jaringan aman di belakang firewall, pastikan agen dapat memulai komunikasi dengan URL dan alamat IP berikut.

Domain URL Deskripsi
https://{organization_name}.pkgs.visualstudio.com Azure DevOps Packaging API untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain
https://{organization_name}.visualstudio.com Untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain
https://{organization_name}.vsblob.visualstudio.com Azure DevOps Telemetri untuk organisasi menggunakan {organization_name}.visualstudio.com domain
https://{organization_name}.vsrm.visualstudio.com Release Management Services untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain
https://{organization_name}.vstmr.visualstudio.com Azure DevOps Layanan Manajemen Pengujian untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com Untuk organisasi yang menggunakan dev.azure.com domain
https://*.vsassets.io Artefak Azure melalui CDN
https://*.vsblob.visualstudio.com Azure DevOps Telemetri untuk organisasi menggunakan dev.azure.com domain
https://*.vssps.visualstudio.com Azure DevOps Platform Services untuk organisasi yang menggunakan dev.azure.com domain
https://*.vstmr.visualstudio.com Azure DevOps Layanan Manajemen Pengujian untuk organisasi yang menggunakan dev.azure.com domain
https://app.vssps.visualstudio.com Untuk organisasi yang menggunakan {organization_name}.visualstudio.com domain
https://dev.azure.com Untuk organisasi yang menggunakan dev.azure.com domain
https://login.microsoftonline.com Azure Active Directory masuk
https://management.core.windows.net API Azure Management
https://vstsagentpackage.azureedge.net Paket agen

Untuk memastikan organisasi Anda berfungsi dengan pembatasan firewall atau IP yang ada, pastikan bahwa dev.azure.com dan *dev.azure.com terbuka serta perbarui IP yang diizinkan untuk menyertakan alamat IP berikut, berdasarkan versi IP Anda. Jika saat ini Anda mengizinkan daftar 13.107.6.183 alamat IP dan 13.107.9.183 , biarkan alamat IP di tempatnya, karena Anda tidak perlu menghapusnya.

Rentang IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

Rentang IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Catatan

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

Bagaimana cara menjalankan agen dengan sertifikat yang ditandatangani sendiri?

Jalankan agen dengan sertifikat yang ditandatangani sendiri

Bagaimana cara menjalankan agen di belakang proksi web?

Menjalankan agen di belakang proksi web

Bagaimana cara menghidupkan ulang agen

Jika Anda menjalankan agen secara interaktif, lihat instruksi hidupkan ulang di Jalankan secara interaktif. Jika Anda menjalankan agen sebagai layanan systemd, ikuti langkah-langkah untuk Menghentikan lalu Mulai agen.

Bagaimana cara mengonfigurasi agen untuk melewati proksi web dan menyambungkan ke Azure Pipelines?

Jika Anda ingin agen melewati proksi Anda dan menyambungkan ke Azure Pipelines secara langsung, maka Anda harus mengonfigurasi proksi web Anda untuk memungkinkan agen mengakses URL berikut.

Untuk organisasi yang menggunakan *.visualstudio.com domain:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

Untuk organisasi yang menggunakan dev.azure.com domain:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

Untuk memastikan organisasi Anda berfungsi dengan pembatasan firewall atau IP yang ada, pastikan bahwa dev.azure.com dan *dev.azure.com terbuka serta perbarui IP yang diizinkan untuk menyertakan alamat IP berikut, berdasarkan versi IP Anda. Jika saat ini Anda mengizinkan daftar 13.107.6.183 alamat IP dan 13.107.9.183 , biarkan alamat IP di tempatnya, karena Anda tidak perlu menghapusnya.

Rentang IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

Rentang IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Catatan

Prosedur ini memungkinkan agen untuk melewati proksi web. Alur dan skrip build Anda masih harus menangani melewati proksi web Anda untuk setiap tugas dan alat yang Anda jalankan di build Anda.

Misalnya, jika Anda menggunakan tugas NuGet, Anda harus mengonfigurasi proksi web untuk mendukung melewati URL untuk server yang menghosting umpan NuGet yang Anda gunakan.

Saya menggunakan TFS dan URL di bagian di atas tidak berfungsi untuk saya. Di mana saya bisa mendapatkan bantuan?

Pengaturan dan keamanan situs web

Saya menggunakan TFS lokal dan saya tidak melihat beberapa fitur ini. Mengapa bukan?

Beberapa fitur ini hanya tersedia di Azure Pipelines dan belum tersedia secara lokal. Beberapa fitur tersedia secara lokal jika Anda telah meningkatkan ke versi terbaru TFS.