Agen yang dihosting Microsoft
| Layanan Azure DevOps Azure DevOps Server 2020 | | Azure DevOps Server 2019 TFS 2018
Agen yang dihosting Microsoft hanya tersedia dengan Layanan Azure DevOps, yang dihosting di cloud. Anda tidak dapat menggunakan agen yang dihosting Microsoft atau kumpulan agen Azure Pipelines dengan TFS lokal atau Azure DevOps Server. Dengan versi lokal ini, Anda harus menggunakan agen yang dihost sendiri.
Penting
Untuk melihat konten yang tersedia untuk platform Anda, pastikan Anda memilih versi artikel ini yang benar dari pemilih versi yang terletak di atas daftar isi. Dukungan fitur berbeda tergantung pada apakah Anda bekerja dari Azure DevOps Services atau versi Azure DevOps Server lokal, diganti namanya dari Team Foundation Server (TFS).
Untuk mempelajari versi lokal mana yang Anda gunakan, lihat Platform/versi apa yang saya gunakan?
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. Setiap kali Anda menjalankan alur, Anda mendapatkan komputer virtual baru untuk setiap pekerjaan di alur. Komputer virtual dibuang setelah satu pekerjaan (yang berarti perubahan apa pun 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 yang di-host mandiri.
Tip
Anda dapat mencoba agen yang dihosting Microsoft tanpa biaya.
Perangkat lunak
Kumpulan agen Azure Pipelines menawarkan beberapa gambar komputer virtual untuk dipilih, masing-masing termasuk berbagai alat dan perangkat lunak.
| Gambar | Spesifikasi Agen Editor Klasik | Label Gambar VM YAML | Perangkat Lunak yang Disertakan |
|---|---|---|---|
| Windows Server 2022 dengan Visual Studio 2022 | windows-2022 | windows-latest OR windows-2022 |
Tautan |
| Windows Server 2019 dengan Visual Studio 2019 | windows-2019 | windows-2019 |
Tautan |
| Pratinjau Ubuntu 22.04 | ubuntu-22.04 | ubuntu-22.04 |
Tautan |
| Ubuntu 20.04 | ubuntu-20.04 | ubuntu-latest OR ubuntu-20.04 |
Tautan |
| Ubuntu 18.04 | ubuntu-18.04 | ubuntu-18.04 |
Tautan |
| macOS 12 Monterey | macOS-12 | macOS-12 |
Tautan |
| macOS 11 Big Sur | macOS-11 | macOS-latest OR macOS-11 |
Tautan |
| macOS X Catalina 10.15 | macOS-10.15 | macOS-10.15 |
Tautan |
Gambar agen default untuk alur build klasik adalah windows-2019, dan gambar agen default untuk alur build YAML adalah ubuntu-latest. Untuk informasi selengkapnya, lihat Menunjuk kumpulan di alur Anda.
Anda dapat melihat perangkat lunak yang diinstal untuk setiap agen yang dihosting dengan memilih tautan Perangkat Lunak yang Disertakan dalam tabel. Saat menggunakan gambar macOS, Anda dapat memilih dari versi alat secara manual. Lihat di bawah ini.
Catatan
windows-latest alur kerja akan menggunakan windows-2022.
macOS-latest alur kerja akan menggunakan macOS-11.
Gambar yang dihosting Ubuntu 16.04 dihapus September 2021.
Windows Server 2016 dengan gambar Visual Studio 2017 tidak digunakan lagi dan akan dihentikan 30 Juni 2022. Baca posting blog ini tentang cara mengidentifikasi alur menggunakan gambar yang tidak digunakan lagi.
Pada bulan Desember 2021, kami menghapus gambar yang dihosting Azure Pipelines berikut:
- macOS X Mojave 10.14 (
macOS-10.14)
Pada bulan Maret 2020, kami menghapus gambar yang dihosting Azure Pipelines berikut:
- Windows Server 2012R2 dengan Visual Studio 2015 (
vs2015-win2012r2) - macOS X High Sierra 10.13 (
macOS-10.13) - Windows Server Core 1803 (
win1803)
Pelanggan didorong untuk bermigrasi ke versi yang lebih baru atau agen yang dihost sendiri.
Untuk informasi dan instruksi selengkapnya tentang cara memperbarui alur Anda yang menggunakan gambar tersebut, lihat Menghapus gambar yang lebih lama di kumpulan yang dihosting Azure Pipelines.
Catatan
Kumpulan yang dihosting Azure Pipelines menggantikan kumpulan yang dihosting sebelumnya yang memiliki nama yang dipetakan ke gambar yang sesuai. Pekerjaan apa pun yang Anda miliki di kumpulan yang dihosting sebelumnya secara otomatis dialihkan ke gambar yang benar di kumpulan yang dihosting Azure Pipelines baru. Dalam beberapa keadaan, Anda mungkin masih melihat nama kumpulan lama, tetapi di belakang layar pekerjaan yang dihosting dijalankan menggunakan kumpulan Azure Pipelines. Untuk informasi selengkapnya tentang pembaruan ini, lihat Catatan rilis kumpulan tunggal yang dihosting dari catatan rilis 1 Juli 2019 - Sprint 154.
Penting
Untuk meminta perangkat lunak tambahan diinstal pada agen yang dihosting Microsoft, jangan membuat permintaan umpan balik pada dokumen ini atau membuka tiket dukungan. Sebagai gantinya, buka masalah di repositori kami, di mana kami mengelola skrip untuk menghasilkan berbagai gambar.
Menggunakan agen yang dihosting Microsoft
Di alur YAML, jika Anda tidak menentukan kumpulan, alur akan default ke kumpulan agen Azure Pipelines. Anda hanya perlu menentukan gambar komputer virtual mana yang ingin Anda gunakan.
jobs:
- job: Linux
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo hello from Linux
- job: macOS
pool:
vmImage: 'macOS-latest'
steps:
- script: echo hello from macOS
- job: Windows
pool:
vmImage: 'windows-latest'
steps:
- script: echo hello from Windows
Catatan
Spesifikasi kumpulan dapat dilakukan pada beberapa tingkat dalam file YAML. Jika Anda melihat bahwa alur Anda tidak berjalan pada gambar yang diharapkan, pastikan Anda memverifikasi spesifikasi kumpulan di tingkat alur, tahap, dan pekerjaan.
Hindari referensi yang dikodekan secara permanen
Saat Anda menggunakan agen yang dihosting Microsoft, selalu gunakan variabel untuk merujuk ke lingkungan build dan sumber daya agen. Misalnya, jangan membuat kode keras huruf atau folder drive yang berisi repositori. Tata letak yang tepat dari agen yang dihosting dapat berubah tanpa peringatan.
Perangkat Keras
Agen yang dihosting Microsoft yang menjalankan citra Windows dan Linux disediakan pada komputer virtual tujuan umum Azure dengan CPU inti 2, RAM 7 GB, dan ruang disk SSD 14 GB. Komputer virtual ini terletak di geografi yang sama dengan organisasi Azure DevOps Anda.
Agen yang menjalankan gambar macOS disediakan pada pro Mac dengan CPU inti 3, RAM 14 GB, dan ruang disk SSD 14 GB. Agen ini selalu berjalan di AS terlepas dari lokasi organisasi Azure DevOps Anda. Jika kedaulatan data penting bagi Anda dan jika organisasi Anda tidak berada di AS, maka Anda tidak boleh menggunakan gambar macOS. Pelajari selengkapnya.
Semua mesin ini memiliki setidaknya 10 GB ruang disk kosong yang tersedia untuk dijalankan alur Anda. Ruang kosong ini digunakan saat alur Anda memeriksa kode sumber, mengunduh paket, menarik gambar docker, atau menghasilkan file perantara.
Penting
Kami tidak dapat memenuhi permintaan untuk meningkatkan ruang disk pada agen yang dihosting Microsoft, atau untuk menyediakan komputer yang lebih kuat. Jika spesifikasi agen yang dihosting Microsoft tidak memenuhi kebutuhan Anda, maka Anda harus mempertimbangkan agen yang dihost sendiri atau agen set skala.
Jaringan
Dalam beberapa penyiapan, Anda mungkin perlu mengetahui rentang alamat IP tempat agen disebarkan. Misalnya, jika Anda perlu memberi agen yang dihosting akses melalui firewall, Anda mungkin ingin membatasi akses tersebut dengan alamat IP. Karena Azure DevOps menggunakan jaringan global Azure, rentang IP bervariasi dari waktu ke waktu. Kami menerbitkan rentang IP daftar file JSON mingguan untuk pusat data Azure, yang dipecah menurut wilayah. File ini diperbarui setiap minggu dengan rentang IP terencana baru. Rentang IP baru menjadi efektif pada minggu berikutnya. Kami menyarankan agar Anda sering memeriksa kembali (setidaknya sekali setiap minggu) untuk memastikan Anda menyimpan daftar terbaru. Jika pekerjaan agen mulai gagal, langkah pemecahan masalah pertama utama adalah memastikan konfigurasi Anda cocok dengan daftar alamat IP terbaru. Rentang alamat IP untuk agen yang dihosting tercantum dalam file mingguan di bawah AzureCloud.<region>, seperti AzureCloud.westus untuk wilayah US Barat.
Agen yang dihosting berjalan di geografi Azure yang sama dengan organisasi Anda. Setiap geografi berisi satu atau beberapa wilayah. Meskipun agen Anda dapat berjalan di wilayah yang sama dengan organisasi Anda, agen tersebut tidak dijamin melakukannya. Untuk mendapatkan daftar lengkap kemungkinan rentang IP untuk agen Anda, Anda harus menggunakan rentang IP dari semua wilayah yang terkandung dalam geografi Anda. Misalnya, jika organisasi Anda terletak di geografi Amerika Serikat, Anda harus menggunakan rentang IP untuk semua wilayah dalam geografi tersebut.
Untuk menentukan geografi Anda, navigasi ke https://dev.azure.com/<your_organization>/_settings/organizationOverview, dapatkan wilayah Anda, dan temukan geografi terkait dari tabel geografi Azure . Setelah Anda mengidentifikasi geografi Anda, gunakan rentang IP dari file mingguan untuk semua wilayah dalam geografi tersebut.
Penting
Anda tidak dapat menggunakan koneksi privat seperti ExpressRoute atau VPN untuk menyambungkan agen yang dihosting Microsoft ke jaringan perusahaan Anda. Lalu lintas antara agen yang dihosting Microsoft dan server Anda akan melalui jaringan publik.
Untuk mengidentifikasi kemungkinan rentang IP untuk agen yang dihosting Microsoft
- Identifikasi wilayah untuk organisasi Anda di pengaturan Organisasi.
- Identifikasi Azure Geography untuk wilayah organisasi Anda.
- Petakan nama wilayah dalam geografi Anda ke format yang digunakan dalam file mingguan
AzureCloud.<region>, mengikuti format , sepertiAzureCloud.westus. Anda dapat memetakan nama wilayah dari daftar Azure Geography ke format yang digunakan dalam file mingguan dengan meninjau nama wilayah yang diteruskan ke konstruktor wilayah yang ditentukan dalam kode sumber untuk kelas Wilayah, dari Pustaka Manajemen Azure untuk .NET.Catatan
Karena tidak ada API di Pustaka Manajemen Azure untuk .NET guna mencantumkan wilayah untuk geografi, Anda harus mencantumkannya secara manual seperti yang ditunjukkan dalam contoh berikut.
- Ambil alamat IP untuk semua wilayah dalam geografi Anda dari file mingguan. Jika wilayah Anda adalah Brasil Selatan atau Eropa Barat, Anda harus menyertakan rentang IP tambahan berdasarkan geografi fallback Anda, seperti yang dijelaskan dalam catatan berikut.
Catatan
Karena pembatasan kapasitas, beberapa organisasi di wilayah Brasil Selatan atau Eropa Barat terkadang mungkin melihat agen yang dihosting yang terletak di luar geografi yang diharapkan. Dalam kasus ini, selain menyertakan rentang IP untuk semua wilayah dalam geografi Anda seperti yang dijelaskan di bagian sebelumnya, rentang IP tambahan harus disertakan untuk wilayah dalam geografi fallback kapasitas.
Jika organisasi Anda berada di wilayah Brasil Selatan, geografi fallback kapasitas Anda Amerika Serikat.
Jika organisasi Anda berada di wilayah Eropa Barat , geografi fallback kapasitasnya adalah Prancis.
Rentang IP Mac kami tidak disertakan dalam IP Azure di atas, karena dihosting di cloud macOS GitHub. Rentang IP dapat diambil menggunakan API metadata GitHub menggunakan instruksi yang disediakan di sini.
Contoh
Dalam contoh berikut, rentang alamat IP agen yang dihosting untuk organisasi di wilayah US Barat diambil dari file mingguan. Karena wilayah AS Barat berada di geografi Amerika Serikat, alamat IP untuk semua wilayah dalam geografi Amerika Serikat disertakan. Dalam contoh ini, alamat IP ditulis ke konsol.
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace WeeklyFileIPRanges
{
class Program
{
// Path to the locally saved weekly file
const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20210823.json";
static void Main(string[] args)
{
// United States geography has the following regions:
// Central US, East US, East US 2, North Central US,
// South Central US, West Central US, West US, West US 2
// This list is accurate as of 8/26/2021
List<string> USGeographyRegions = new List<string>
{
"centralus",
"eastus",
"eastus2",
"northcentralus",
"southcentralus",
"westcentralus",
"westus",
"westus2"
};
// Load the weekly file
JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
JArray values = (JArray)weeklyFile["values"];
foreach (string region in USGeographyRegions)
{
string azureCloudRegion = $"AzureCloud.{region}";
Console.WriteLine(azureCloudRegion);
var ipList =
from v in values
where (string)v["name"] == azureCloudRegion
select v["properties"]["addressPrefixes"];
foreach (var ip in ipList.Children())
{
Console.WriteLine(ip);
}
}
}
}
}
Tag layanan
Agen yang dihosting Microsoft tidak dapat dicantumkan berdasarkan tag layanan. Jika Anda mencoba memberikan akses agen yang dihosting ke sumber daya Anda, Anda harus mengikuti metode daftar izinkan rentang IP.
Keamanan
Agen yang dihosting Microsoft berjalan di platform Azure yang aman. Namun, Anda harus mengetahui pertimbangan keamanan berikut.
- Meskipun agen yang dihosting Microsoft berjalan di jaringan publik Azure, agen tersebut tidak diberi alamat IP publik. Jadi, entitas eksternal tidak dapat menargetkan agen yang dihosting Microsoft.
- Agen yang dihosting Microsoft dijalankan di masing-masing VM, yang disortir ulang setelah setiap eksekusi. Setiap agen didedikasikan untuk satu organisasi, dan setiap VM hanya menghosting satu agen.
- Ada beberapa manfaat untuk menjalankan alur Anda di agen yang dihosting Microsoft, dari perspektif keamanan. Jika Anda menjalankan kode yang tidak tepercaya di alur Anda, seperti kontribusi dari fork, lebih aman untuk menjalankan alur pada agen yang dihosting Microsoft daripada pada agen yang dihost sendiri yang berada di jaringan perusahaan Anda.
- Saat alur perlu mengakses sumber daya perusahaan Anda di belakang firewall, Anda harus mengizinkan rentang alamat IP untuk geografi Azure. Ini dapat meningkatkan paparan Anda karena rentang alamat IP agak besar dan karena mesin dalam rentang ini juga dapat menjadi milik pelanggan lain. Cara terbaik untuk mencegah hal ini adalah dengan menghindari kebutuhan untuk mengakses sumber daya internal.
- Gambar yang dihosting tidak sesuai dengan tolok ukur pengerasan CIS. Untuk menggunakan citra yang diperkeras CIS, Anda harus membuat agen yang dihost sendiri atau agen set skala.
Kemampuan dan batasan
Agen yang dihosting Microsoft:
- Memiliki perangkat lunak di atas. Anda juga dapat menambahkan perangkat lunak selama build atau rilis menggunakan tugas alat penginstal.
- Anda mendapatkan agen yang baru disortir untuk setiap pekerjaan di alur Anda.
- Berikan penyimpanan 10 GB untuk output sumber dan build Anda.
- Berikan tingkat gratis:
- Proyek publik: 10 pekerjaan paralel gratis yang dihosting Microsoft yang dapat berjalan hingga 360 menit (6 jam) setiap kali, tanpa batas waktu keseluruhan per bulan. Hubungi kami untuk meningkatkan batas tingkat gratis Anda.
- Proyek privat: Satu pekerjaan paralel gratis yang dapat berjalan hingga 60 menit setiap kali, hingga Anda menggunakan 1.800 menit (30 jam) per bulan. Anda dapat membayar kapasitas tambahan per pekerjaan paralel. Pekerjaan paralel berbayar menghapus batas waktu bulanan dan memungkinkan Anda menjalankan setiap pekerjaan hingga 360 menit (6 jam). Beli pekerjaan paralel yang dihosting Microsoft.
- Saat Anda membuat organisasi Azure DevOps baru, Anda tidak diberi hibah gratis ini secara default. Untuk meminta pemberian gratis untuk proyek publik atau privat, kirimkan permintaan.
- Jalankan di komputer virtual tujuan umum Microsoft Azure Standard_DS2_v2
- Jalankan sebagai administrator di Windows dan pengguna sudo tanpa kata sandi di Linux
- (Khusus Linux) Jalankan langkah-langkah dalam yang
cgroupmenawarkan memori fisik 6 GB dan memori total 13 GB
Agen yang dihosting Microsoft tidak menawarkan:
- Kemampuan untuk terhubung dari jarak jauh.
- Kemampuan untuk menghilangkan artefak ke berbagi file UNC.
- Kemampuan untuk bergabung dengan mesin langsung ke jaringan perusahaan Anda.
- Kemampuan untuk mendapatkan mesin build yang lebih besar atau lebih kuat.
- Kemampuan untuk memuat perangkat lunak kustom terlebih dahulu. Anda dapat menginstal perangkat lunak selama eksekusi alur, seperti melalui tugas alat penginstal atau dalam skrip.
- Potensi keuntungan performa yang mungkin Anda dapatkan dengan menggunakan agen yang dihost sendiri yang mungkin memulai dan menjalankan build lebih cepat. Pelajari lebih lanjut
- Kemampuan untuk menjalankan build XAML.
Jika agen yang dihosting Microsoft tidak memenuhi kebutuhan Anda, maka Anda dapat menyebarkan agen yang dihost sendiri atau menggunakan agen set skala.
FAQ
Bagaimana cara melihat perangkat lunak apa yang disertakan dalam gambar?
Anda dapat melihat perangkat lunak yang diinstal untuk setiap agen yang dihosting dengan memilih tautan Perangkat Lunak yang Disertakan dalam tabel Perangkat Lunak .
Bagaimana Microsoft memilih perangkat lunak dan versi untuk diletakkan pada gambar?
Informasi selengkapnya tentang versi perangkat lunak yang disertakan pada gambar dapat ditemukan di Pedoman untuk apa yang diinstal.
Kapan gambar diperbarui?
Gambar biasanya diperbarui setiap minggu. Anda dapat memeriksa lencana status yang dalam format 20200113.x di mana bagian pertama menunjukkan tanggal gambar diperbarui.
Apa yang dapat saya lakukan jika perangkat lunak yang saya butuhkan dihapus atau diganti dengan versi yang lebih baru?
Anda dapat memberi tahu kami dengan mengajukan masalah GitHub dengan memilih tautan Perangkat Lunak yang Disertakan di tabel Gunakan agen yang dihosting Microsoft .
Anda juga dapat menggunakan agen yang dihost sendiri yang menyertakan versi perangkat lunak yang tepat yang Anda butuhkan. Untuk informasi selengkapnya, lihat Agen yang dihost sendiri.
Bagaimana jika saya membutuhkan mesin yang lebih besar dengan lebih banyak daya pemrosesan, memori, atau ruang disk?
Kami tidak dapat meningkatkan memori, daya pemrosesan, atau ruang disk untuk agen yang dihosting Microsoft, tetapi Anda dapat menggunakan agen yang dihost sendiri atau agen set skala yang dihosting di komputer dengan spesifikasi yang Anda inginkan.
Saya tidak dapat memilih agen yang dihosting Microsoft dan saya tidak dapat mengantrekan build atau penyebaran saya. Apa yang harus saya lakukan?
Agen yang dihosting Microsoft hanya tersedia di Azure Pipelines dan bukan di TFS atau Azure DevOps Server.
Secara default, semua kontributor proyek dalam organisasi memiliki akses ke agen yang dihosting Microsoft. Namun, administrator organisasi Anda dapat membatasi akses agen yang dihosting Microsoft untuk memilih pengguna atau proyek. Minta pemilik organisasi Azure DevOps Anda untuk memberi Anda izin untuk menggunakan agen yang dihosting Microsoft. Lihat keamanan kumpulan agen.
Alur saya yang berjalan di agen yang dihosting Microsoft membutuhkan lebih banyak waktu untuk diselesaikan. Bagaimana aku bisa mempercepat mereka?
Jika alur Anda baru-baru ini menjadi lebih lambat, tinjau halaman status kami untuk setiap pemadaman. Kami mungkin mengalami masalah dengan layanan kami. Atau, tinjau perubahan apa pun yang Anda buat dalam kode aplikasi atau alur Anda. Ukuran repositori Anda selama check-out mungkin telah meningkat, Anda mungkin mengunggah artefak yang lebih besar, atau Anda mungkin menjalankan lebih banyak pengujian.
Jika Anda hanya menyiapkan alur dan membandingkan performa agen yang dihosting Microsoft dengan komputer lokal Anda atau agen yang dihost sendiri, perhatikan spesifikasi perangkat keras yang kami gunakan untuk menjalankan pekerjaan Anda. Kami tidak dapat memberi Anda mesin yang lebih besar atau kuat. Anda dapat mempertimbangkan untuk menggunakan agen yang dihost sendiri atau agen set skala jika performa ini tidak dapat diterima.
Aku butuh lebih banyak agen. Apa yang bisa saya lakukan?
Semua organisasi Azure DevOps disediakan dengan beberapa pekerjaan paralel gratis untuk proyek sumber terbuka, dan satu pekerjaan paralel gratis dan menit terbatas setiap bulan untuk proyek privat. Jika Anda memerlukan menit tambahan atau pekerjaan paralel untuk proyek sumber terbuka Anda, hubungi dukungan. Jika Anda membutuhkan menit tambahan atau pekerjaan paralel untuk proyek privat Anda, maka Anda dapat membeli lebih banyak.
Alur saya berhasil pada agen yang dihost sendiri, tetapi gagal pada agen yang dihosting Microsoft. Apa yang harus saya lakukan?
Agen yang dihost sendiri mungkin memiliki semua dependensi yang tepat yang terinstal di dalamnya, sedangkan dependensi, alat, dan perangkat lunak yang sama tidak diinstal pada agen yang dihosting Microsoft. Pertama, tinjau dengan cermat daftar perangkat lunak yang diinstal pada agen yang dihosting Microsoft dengan mengikuti tautan ke Perangkat lunak yang disertakan dalam tabel di atas. Kemudian, bandingkan dengan perangkat lunak yang diinstal pada agen yang dihost sendiri. Dalam beberapa kasus, agen yang dihosting Microsoft mungkin memiliki alat yang Anda butuhkan (misalnya, Visual Studio), tetapi semua komponen opsional yang diperlukan mungkin belum diinstal. Jika Anda menemukan perbedaan, maka Anda memiliki dua opsi:
Anda dapat membuat masalah baru di repositori, di mana kami melacak permintaan untuk perangkat lunak tambahan. Menghubungi dukungan tidak akan membantu Anda menyiapkan perangkat lunak baru di agen yang dihosting Microsoft.
Anda dapat menggunakan agen yang dihost sendiri atau agen set skala. Dengan agen ini, Anda sepenuhnya memegang kendali atas gambar yang digunakan untuk menjalankan alur Anda.
Build saya berhasil di komputer lokal saya, tetapi gagal pada agen yang dihosting Microsoft. Apa yang harus saya lakukan?
Komputer lokal Anda mungkin memiliki semua dependensi yang tepat yang diinstal padanya, sedangkan dependensi, alat, dan perangkat lunak yang sama tidak diinstal pada agen yang dihosting Microsoft. Pertama, tinjau dengan cermat daftar perangkat lunak yang diinstal pada agen yang dihosting Microsoft dengan mengikuti tautan ke Perangkat lunak yang disertakan dalam tabel di atas. Kemudian, bandingkan dengan perangkat lunak yang diinstal pada komputer lokal Anda. Dalam beberapa kasus, agen yang dihosting Microsoft mungkin memiliki alat yang Anda butuhkan (misalnya, Visual Studio), tetapi semua komponen opsional yang diperlukan mungkin belum diinstal. Jika Anda menemukan perbedaan, maka Anda memiliki dua opsi:
Anda dapat membuat masalah baru di repositori, di mana kami melacak permintaan untuk perangkat lunak tambahan. Ini adalah best bet Anda untuk menginstal perangkat lunak baru. Menghubungi dukungan tidak akan membantu Anda menyiapkan perangkat lunak baru di agen yang dihosting Microsoft.
Anda dapat menggunakan agen yang dihost sendiri atau agen set skala. Dengan agen ini, Anda sepenuhnya memegang kendali atas gambar yang digunakan untuk menjalankan alur Anda.
Alur saya gagal dengan kesalahan: "tidak ada ruang yang tersisa di perangkat".
Agen yang dihosting Microsoft hanya memiliki 10 GB ruang disk yang tersedia untuk menjalankan pekerjaan Anda. Ruang ini digunakan saat Anda memeriksa kode sumber, saat Anda mengunduh paket, saat Anda mengunduh gambar docker, atau saat Anda menghasilkan file perantara. Sayangnya, kami tidak dapat meningkatkan ruang kosong yang tersedia pada gambar yang dihosting Microsoft. Anda dapat merestrukturisasi alur Anda sehingga dapat masuk ke ruang ini. Atau, Anda dapat mempertimbangkan untuk menggunakan agen yang dihost sendiri atau agen set skala.
Alur saya yang berjalan di agen yang dihosting Microsoft memerlukan akses ke server di jaringan perusahaan kami. Bagaimana cara mendapatkan daftar alamat IP untuk diizinkan di firewall kita?
Lihat bagian Rentang IP agen
Alur kami yang berjalan di agen yang dihosting Microsoft tidak dapat menyelesaikan nama server di jaringan perusahaan kami. Bagaimana kita bisa memperbaikinya?
Jika Anda merujuk ke server dengan nama DNS-nya, pastikan server Anda dapat diakses secara publik di Internet melalui nama DNS-nya. Jika Anda merujuk ke server Anda dengan alamat IP-nya, pastikan alamat IP dapat diakses secara publik di Internet. Dalam kedua kasus, pastikan bahwa firewall apa pun di antara agen dan jaringan perusahaan Anda memiliki rentang IP agen yang diizinkan.
Saya mendapatkan kesalahan otorisasi IP SAS dari akun Azure Storage
Jika Anda mendapatkan kode kesalahan SAS, kemungkinan besar karena alamat IP berkisar dari agen yang dihosting Microsoft tidak diizinkan karena aturan Azure Storage Anda. Ada beberapa solusinya:
- Kelola aturan jaringan IP untuk akun Azure Storage Anda dan tambahkan rentang alamat IP untuk agen yang dihosting.
- Di alur Anda, gunakan Azure CLI untuk memperbarui aturan jaringan untuk akun Azure Storage Anda tepat sebelum Anda mengakses penyimpanan, lalu pulihkan set aturan sebelumnya.
- Gunakan agen yang dihost sendiri atau Agen set skala.
Bagaimana cara memilih versi alat secara manual di agen macOS yang dihosting?
Xamarin
Agen macOS yang dihosting menyimpan versi Xamarin SDK dan versi Mono terkait sebagai satu set symlink ke lokasi Xamarin SDK yang tersedia oleh satu symlink bundel.
Untuk memilih versi Xamarin SDK secara manual untuk digunakan pada agen macOS yang dihosting, jalankan perintah bash berikut sebelum tugas build Xamarin Anda sebagai bagian dari build Anda, tentukan bundel versi symlink ke Xamarin yang Anda butuhkan.
/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"
Daftar semua versi dan symlink Xamarin SDK yang tersedia dapat ditemukan dalam dokumentasi agen:
Perintah ini tidak memilih versi Mono di luar Xamarin SDK. Untuk memilih versi Mono secara manual, lihat instruksi di bawah ini.
Jika Anda menggunakan versi Xcode non-default untuk membangun aplikasi Xamarin.iOS atau Xamarin.Mac, Anda juga harus menjalankan baris perintah ini:
/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"
Mana $(xcodeRoot) = /Applications/Xcode_13.2.app
Versi Xcode pada kumpulan agen macOS yang dihosting dapat ditemukan di sini.
Xcode
Jika Anda menggunakan tugas Xcode yang disertakan dengan Azure Pipelines dan TFS, Anda bisa memilih versi Xcode di properti tugas tersebut. Jika tidak, untuk mengatur versi Xcode secara manual untuk digunakan pada kumpulan agen macOS yang dihosting , sebelum tugas build Anda xcodebuild , jalankan baris perintah ini sebagai bagian dari build Anda, ganti nomor versi Xcode 13.2 sesuai kebutuhan:
/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"
Versi Xcode pada kumpulan agen macOS yang dihosting dapat ditemukan di sini.
Perintah ini tidak berfungsi untuk aplikasi Xamarin. Untuk memilih versi Xcode secara manual untuk membangun aplikasi Xamarin, lihat instruksi di atas.
Mono
Untuk memilih versi Mono secara manual untuk digunakan pada kumpulan agen macOS yang dihosting, jalankan skrip ini di setiap pekerjaan build Anda sebelum tugas build Mono Anda, menentukan symlink dengan versi Mono yang diperlukan (daftar semua symlink yang tersedia dapat ditemukan di bagian Xamarin di atas):
SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"