Aracılığıyla paylaş


Azure Pipelines aracıları

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Kodunuzu oluşturmak veya Azure Pipelines kullanarak yazılımınızı dağıtmak için en az bir aracıya ihtiyacınız vardır. Kod tabanınız ve ekibiniz büyüdükçe birden çok aracıya ihtiyacınız vardır.

İşlem hattınız çalıştığında sistem bir veya daha fazla iş başlatır. Ajan, bir kerede bir işleri çalıştıran yüklü ajan yazılımı olan bilgi işlem altyapısıdır.

Azure Pipelines birkaç farklı aracı türü sağlar.

Temsilci türü Açıklama Kullanılabilirlik
Microsoft tarafından barındırılan aracılar Microsoft tarafından barındırılan ve yönetilen aracılar. Azure DevOps Services
Kendi kendine barındırılan aracılar Yapılandırdığınız ve yönettiğiniz ve sanal makinelerinizde (VM) barındırılan aracılar. Azure DevOps Hizmetleri, Azure DevOps Sunucusu
Yönetilen DevOps Havuzları etmenleri Yönetilen DevOps Havuzları tam olarak yönetilen bir hizmettir. Acentaları çalıştıran sanal makineler veya kapsayıcılar, kendi Azure aboneliğinizde değil, Microsoft Azure aboneliğinde yer almaktadır. Azure DevOps Services
Azure Sanal Makine Ölçek Kümeleri aracıları Azure Sanal Makine Ölçek Kümelerini kullanan ve talepleri karşılamak için otomatik olarak ölçeklendirilebilen öz barındırılan aramaçlar.

Otomatik olarak ölçeklenebilen, şirket içinde barındırılan aracı havuzlarını kullanmayı düşünüyorsanız Yönetilen DevOps Havuzlarını göz önünde bulundurmanızı öneririz. Daha fazla bilgi için bkz. Yönetilen DevOps Havuzlarını Azure Sanal Makine Ölçek Kümeleri aracılarıyla ve Yönetilen DevOps Havuzları'yla karşılaştırmaya genel bakış.
Azure DevOps Services

İşleri doğrudan aracının konak makinesinde veya bir kapsayıcı içerisinde çalıştırabilirsiniz.

Microsoft tarafından barındırılan aracılar

İşlem hatlarınız Azure Pipelines'daysa, Microsoft tarafından barındırılan bir aracı kullanarak işlerinizi rahatça çalıştırabilirsiniz. Microsoft tarafından barındırılan aracılarda bakım ve yükseltmeler otomatik olarak gerçekleşir.

İşlem hattınızda her zaman belirttiğiniz VM görüntüsünün en son sürümüne sahip olursunuz. İşlem hattını her çalıştırdığınızda, işlem hattındaki her iş için yeni bir sanal makine alırsınız. Sanal makine, bir görev tamamlandıktan sonra atılır. Bir işin sanal makine dosya sisteminde yaptığı, kodu kopyalama gibi değişiklikler bir sonraki işte mevcut değildir.

Microsoft tarafından barındırılan aracılar işleri doğrudan VM'de veya kapsayıcıda çalıştırabilir.

Azure Pipelines, Microsoft tarafından barındırılan aracılarla Azure Pipelines adlı önceden tanımlanmış bir aracı havuzu sağlar.

Birçok ekip için bu işlem, işlerinizi çalıştırmanın en basit yoludur. Derlemeniz veya dağıtımınız için çalışıp çalışmadığını görmek için önce bunu deneyebilirsiniz. Aksi takdirde Sanal Makine Ölçek Kümeleri aracılarını veya kendi barındırılan bir aracıyı kullanabilirsiniz.

İpucu

Microsoft tarafından barındırılan bir aracıyı ücretsiz olarak deneyebilirsiniz.

Microsoft tarafından barındırılan aracılar hakkında daha fazla bilgi edinin.

Kendin barındırılan aracılar

Kendi kendine barındırılan aracı, görevleri yürütmek ve kendiniz yönettiğiniz bir aracıdır. Azure Pipelines veya Azure DevOps Server'da kendi barındırdığınız aracılar kullanabilirsiniz. Kendi kendine barındırılan aracılar, inşa ve dağıtımlarınız için ihtiyaç duyduğunuz bağımlı yazılımları yüklemek için size daha fazla kontrol sağlar. Ayrıca makine seviyesindeki önbellekler ve yapılandırmalar her çalıştırmada kalıcıdır, bu da hızı artırabilir.

Makine başına birden çok aracı yüklense de, makine başına yalnızca bir aracı yüklemenizi kesinlikle öneririz. İki veya daha fazla aracı yüklediğinizde, bu durum performansı ve işlem hatlarınızın sonucunu olumsuz etkileyebilir.

İpucu

Kendi barındırdığınız bir aracı yüklemeden önce Microsoft'un barındırdığı bir temsilci havuzunun sizin için uygun olup olmadığını görebilirsiniz. Çoğu durumda, microsoft tarafından barındırılan aracı havuzu kullanmaya başlamanın en basit yoludur. Bir deneyin.

Aracıyı Linux, macOS ve Windows makinelerine yükleyebilirsiniz. Aracıyı bir Docker kapsayıcısı üzerine de yükleyebilirsiniz. Kendi barındırılan bir aracı yükleme hakkında daha fazla bilgi için aşağıdakilere bakın:

macOS'ta, macOS Gatekeeper korumasının çalıştırıldığında ./config.sh TAR dosyasındaki her derleme için görüntülenmesini önlemek için indirme arşivindeki özel özniteliği temizlemeniz gerekir. Aşağıdaki komut, dosyadaki genişletilmiş özniteliği temizler:

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

Aracıyı bir makineye yükledikten sonra, bu makineye işlerinizin gerektirdiği diğer yazılımları yükleyebilirsiniz.

Not

Ajanlar geniş çapta geriye dönük olarak uyumludur. Azure DevOps aracının daha yüksek bir sürümünü istemediği sürece aracının herhangi bir sürümü herhangi bir Azure DevOps sürümüyle uyumlu olmalıdır.

Ajanın yalnızca en son sürümünü destekliyoruz çünkü bu sürümün tüm güncel yamaları ve hata düzeltmelerini içerdiği garanti edilir.

Node.js çalıştırıcı sürümleri

Aracı, farklı Node.js işleyicileri kullanan hedef görevleri desteklemek için Node.js kitaplıklarının çeşitli sürümleriyle birlikte sağlanır.

Tüm resmi Azure DevOps görevleri, evrensel işleyici olarak Node.js 20 kitaplığını kullanır. Ancak müşteriler yine de destek sonu Node.js sürümlerini kullanan özel görevler kullanabilir. Uzantı/özel görev yazarlarının görevlerini geçerli Node.js sürümleriyle güncelleştirmeleri/test etmeleri gerekir.

Azure Pipelines'daki Node.js çalıştırıcı yaşam döngüsü hakkında daha fazla bilgi için bkz. Azure Pipelines Aracısı'nda Node.js çalıştırıcıları.

Azure Sanal Makine Ölçek Kümeleri aracıları

Azure Sanal Makine Ölçek Kümeleri aracıları, taleplerinizi karşılamak için otomatik olarak ölçeklendirilebilen, kendi kendine barındırılan bir tür aracıdır. Bu esneklik, ayrılmış aracıları sürekli çalıştırma gereksiniminizi azaltır. Microsoft tarafından barındırılan aracılardan farklı olarak, aracıların üzerinde çalıştığı makinelerin boyutu ve görüntüsü üzerinde esnekliğe sahip olursunuz.

Azure Pipelines, aracılarınızın ölçeklendirmesini sizin yerinize yönetir. Aşağıdaki faktörleri belirtin:

  • Sanal makine ölçek kümesi
  • Hazırda tutulacak temsilci sayısı
  • Ölçek kümesindeki en fazla sanal makine sayısı

Daha fazla bilgi için bkz. Azure Sanal Makine Ölçek Kümeleri aracıları.

Yönetilen DevOps Havuzları ajanları

Yönetilen DevOps Havuzları, geliştirme ekiplerinin bir ekibin özel ihtiyaçlarına göre uyarlanmış Azure DevOps aracı havuzlarını hızlı ve kolay bir şekilde oluşturmasını sağlar.

Yönetilen DevOps Havuzları:

  • En iyi güvenlik uygulamalarını uygular.
  • Maliyet ve performansı dengelemenin yollarını sağlar.
  • En yaygın senaryolar için yollar sağlar.
  • Özel havuzları oluşturmak ve bakımını yapmak için gereken süreyi önemli ölçüde azaltır.

Yönetilen DevOps Havuzları, Azure Sanal Makine Ölçek Kümeleri aracı havuzlarının evrimidir. Özel havuzların ölçeklenebilirliğini ve güvenilirliğini artırarak özel havuz oluşturmayı daha da basitleştirir. Yönetilen DevOps Havuzları tam olarak yönetilen bir hizmettir. Aracıları destekleyen sanal makineler veya kapsayıcılar, Azure Sanal Makine Ölçek Kümeleri aracı havuzlarına benzer şekilde kendi Azure aboneliğinizde değil, bir Microsoft Azure aboneliğinde bulunur. Daha fazla bilgi için bkz. Yönetilen DevOps Havuzları belgeleri.

Paralel işler

Paralel işler kavramı, kuruluşunuzda aynı anda çalıştırabileceğiniz iş sayısını temsil eder. Kuruluşunuzun tek bir paralel işi varsa, kuruluşunuzda aynı anda tek bir iş çalıştırabilirsiniz. Diğer tüm eşzamanlı işler, ilk iş bitene kadar kuyruğa alınır. İki işi aynı anda çalıştırmak için iki paralel iş gerekir. Azure Pipelines ile, Microsoft tarafından barındırılan altyapıda veya kendi (şirket içinde barındırılan) altyapınızda paralel işler çalıştırabilirsiniz.

Microsoft, en az bir paralel iş içeren her kuruluşta varsayılan olarak ücretsiz bir hizmet katmanı sağlar. Çalıştırmanız gereken eşzamanlı işlem hattı sayısına bağlı olarak, Microsoft tarafından barındırılan veya şirket içinde barındırılan birden çok aracıyı aynı anda kullanmak için daha fazla paralel iş gerekebilir. Paralel işler ve farklı ücretsiz hizmet katmanları hakkında daha fazla bilgi için bkz Azure Pipelines'da paralel işler.

Aynı anda birden çok aracı kullanmak için daha fazla paralel iş gerekebilir:

Önemli

Azure DevOps Server 2019'dan itibaren, yüklemelerde kendi sunucularında barındırılan eşzamanlı işler için ödeme yapmazsınız. Yalnızca sahip olduğunuz ajan sayısıyla sınırlısınız.

Özellikler

Kendi kendine barındırılan her aracı, neler yapabileceğini gösteren bir dizi yeteneğe sahiptir. Özellikler şunlardan biri olan ad/değer çiftleridir:

  • Aracı yazılımının keşfettiği, sistem özellikleri olarak adlandırılan özellikler.
  • Tanımladığınız ve kullanıcı özellikleri olarak adlandırılan özellikler.

Aracı yazılımı çeşitli sistem özelliklerini otomatik olarak belirler. Bu özellikler makinenin adını, işletim sistemi türünü ve makinede yüklü olan belirli yazılımların sürümlerini içerir. Ayrıca, makinede tanımlanan ortam değişkenleri otomatik olarak sistem özellikleri listesinde görünür.

Ortam değişkenlerini yetenek olarak depoladığınızda, bir aracı çalıştırıldığında ortam değişkenlerini ayarlamak için depolanan özellik değerleri kullanılır. Ayrıca, aracı çalışırken ortam değişkenlerinde herhangi bir değişiklik yaptığınızda, bunlar herhangi bir görev tarafından alınmaz ve kullanılmaz. Değişen hassas ortam değişkenlerinin özellik olarak depolanmasını istemiyorsanız aracıyı bunları yoksaymaya yönlendirebilirsiniz. Yoksaymak için VSO_AGENT_IGNORE virgülle ayrılmış bir değişken listesiyle ortam değişkenini ayarlayın. Örneğin, PATH yazılım yüklüyorsanız yoksaymak isteyebileceğiniz kritik bir değişkendir.

Bir işlem hattı oluştururken, aracın belirli gereksinimlerini belirlersiniz. Sistem işi yalnızca işlem hattında belirtilen taleplerle eşleşen özelliklere sahip aracılara gönderir. Sonuç olarak, aracı özellikleri işleri belirli aracılara yönlendirmenizi sağlar.

Talepler ve yetenekler, işlerin işin gereksinimlerini karşılayan bir aracıyla eşleştirilmesi için kendinden barındırmalı aracılar ile kullanılmak üzere tasarlanmıştır. Microsoft tarafından barındırılan aracıları kullandığınızda, aracı için işin gereksinimleriyle eşleşen bir görüntü seçersiniz. Microsoft tarafından barındırılan bir aracıya özellik eklemek mümkün olsa da, microsoft tarafından barındırılan aracılarla özellikleri kullanmanız gerekmez.

Talepleri yapılandırma

YAML derleme hattınıza bir talep eklemek için, demands: satırını pool bölümüne ekleyin.

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

Bir özelliğin varlığını denetleyebilir veya bir özelliğin değeriyle karşılaştırma yapabilirsiniz. Daha fazla bilgi için bkz . YAML şeması - Talepler.

Aracı özelliklerini yapılandırma

Sürüm ve sistem özellikleri dahil olmak üzere aracı ayrıntılarını görüntüleyebilir ve kullanıcı özelliklerini yönetebilirsiniz. Aracı havuzları'na gidin ve istediğiniz aracı için Özellikler sekmesini seçin.

  1. Web tarayıcınızda Aracı havuzları'na gidin:

    1. Kuruluşunuzda oturum açın (https://dev.azure.com/{yourorganization}).

    2. Azure DevOps>Kuruluş ayarları'nı seçin.

      Kuruluş ayarlarının nasıl seçildiğini gösteren ekran görüntüsü.

    3. Ajan Havuzları'nı seçin.

      Aracı havuzları sekmesinin nasıl seçildiğini gösteren ekran görüntüsü.

    1. Proje koleksiyonunuzda (http://your-server/DefaultCollection) oturum açın.

    2. Azure DevOps>Koleksiyonu ayarları'nı seçin.

      Koleksiyon ayarlarının nasıl seçildiğini gösteren ekran görüntüsü.

    3. Ajan Havuzları'nı seçin.

      Aracı Havuzları Seçin.

    Aracı havuzlarına nasıl gidileceğini ve aracı havuzlarının nasıl seçileceğini gösteren ekran görüntüsü.

  2. Yetenekler sekmesine gidin:

    1. Aracı havuzları sekmesinden istediğiniz aracı havuzunu seçin.

      Aracı havuzlarından istediğiniz aracı havuzunu seçin.

    2. Aracılar'ı seçin ve istediğiniz aracıyı seçin.

      Aracılar menüsünden bir aracı seçin.

    3. Özellikler sekmesini seçin.

      Özellikler sekmesini seçin.

      Not

      Microsoft tarafından barındırılan aracılar sistem özelliklerini görüntülemez. Microsoft tarafından barındırılan aracılarda yüklü yazılımların listesi için Microsoft tarafından barındırılan aracı kullanma bölümüne bakın.

    1. Aracı havuzları sekmesinden istediğiniz havuzu seçin.

      İstediğiniz havuzu seçin.

    2. Aracılar'ı seçin ve istediğiniz aracıyı seçin.

      Aracılar'ı seçin ve istediğiniz aracıyı seçin.

    3. Özellikler sekmesini seçin.

      Aracı özellikleri sekmesi.

  3. Aracıya yeni bir özellik kaydetmek için Yeni özellik ekle'yi seçin.

İpucu

Şirket içinde barındırılan bir aracıya yeni yazılım yükledikten sonra, yeni özelliğin görünmesi için aracıyı yeniden başlatmanız gerekir. Daha fazla bilgi için bkz . Windows aracısını yeniden başlatma, Linux aracısını yeniden başlatma ve Mac aracısını yeniden başlatma.

İletişim

Azure Pipelines ile İletişim

Azure DevOps Server ile iletişim

Aracı, Azure Pipelines veya Azure DevOps Server ile iletişim kurar. Hangi işi çalıştırması gerektiğini belirler ve günlükleri ve iş durumunu bildirir. Bu iletişimi daima aracı başlatır.

Aracıyı nasıl yapılandırdığınıza bağlı olarak aracıdan Azure Pipelines’a veya Azure DevOps Server’a gönderilen tüm iletiler HTTP veya HTTPS üzerinden gider. Bu çekme modeli, aracıyı aşağıdaki örneklerde gösterildiği gibi farklı topolojilere yapılandırmanıza olanak tanır.

Şirket içi yüklemelerde aracı topolojilerini gösteren grafik.

Azure DevOps Services'da aracı topolojilerini gösteren grafik.

Aracı ile Azure Pipelines veya Azure DevOps Server arasında yaygın bir iletişim düzeni aşağıdadır:

  1. Kullanıcı, aracıyı bir aracı havuzuna ekleyerek Azure Pipelines veya Azure DevOps Server'a kaydeder. Aracıyı bu aracı havuzuna kaydetmek için Aracı havuzu yönetici rolüne sahip olmanız gerekir. Aracı havuzu yöneticisi rolü yalnızca kayıt sırasında gereklidir ve aracıda kalıcı değildir. Aracı ile Azure Pipelines veya Azure DevOps Server arasında daha fazla iletişimde kullanılmaz.

    Kayıt tamamlandıktan sonra aracı bir listener OAuth token dosyasını indirir ve bunu iş kuyruğunu dinlemek için kullanır.

  2. Aracı, HTTP uzun yoklama kullanarak Azure Pipelines veya Azure DevOps Server'daki iş kuyruğuna yeni bir iş isteğinin gönderilip gönderilmediğini dinler. Bir iş kullanılabilir olduğunda aracı işi ve ' job-specific OAuth tokenyi indirir. Azure Pipelines veya Azure DevOps Server, işlem hattında belirtilen kapsamlı kimlik için kısa süreli bir belirteç oluşturur.

    Aracı, bu görevde Azure Pipelines veya Azure DevOps Server'daki kaynaklara erişmek veya bunları değiştirmek için jetonu kullanır. Örneğin, kaynak koduna erişmek veya test sonuçlarını yüklemek için token kullanır.

  3. Ajan, iş tamamlandıktan sonra işe özgü OAuth token'ı atar ve dinleyici OAuth token'ını kullanarak yeni bir iş isteği olup olmadığını denetler.

Aracı ile Azure Pipelines veya Azure DevOps Server arasında değiştirilen iletilerin yükü asimetrik şifreleme kullanılarak güvenli hale getirilir.

Her temsilcinin bir ortak-özel anahtar çifti vardır ve ortak anahtar kayıt sırasında sunucuyla paylaşılır. Sunucu, işin yükünü aracıya göndermeden önce şifrelemek için ortak anahtarı kullanır. Aracı, özel anahtarını kullanarak iş içeriğinin şifresini çözer.

Bu yöntem, işlem hatlarında veya değişken gruplarında depolanan gizli bilgilerin ajanla değiştirildiğinde güvenliğini sağlar.

Not

Aracı UTF-8 istemci kodlama çıkışı için destek sağlar. Ancak sisteminiz UTF-8 kodlaması kullanmıyorsa günlük çıkışıyla ilgili bazı sorunlarla karşılaşabilirsiniz. Örneğin, günlükler sisteminizin kodlaması tarafından tanınmayan karakterler içerebilir, bu nedenle bozuk veya eksik simgeler gibi görünebilir.

Hedef sunuculara dağıtılacak iletişim

Aracıyı kullanarak yapıtları bir sunucu kümesine dağıttığınızda bu sunucularla “görüş hattı” bağlantısı kurulması gerekir. Microsoft tarafından barındırılan aracı havuzlarının varsayılan olarak Azure'da çalışan Azure web sitelerine ve sunucularına bağlantısı vardır.

Azure kaynaklarınız bir Azure sanal ağında çalıştırılıyorsa, Microsoft tarafından barındırılan aracıların dağıtıldığı Aracı IP aralıklarını alabilirsiniz. Ardından Azure sanal ağınız için güvenlik duvarı kurallarını aracı tarafından erişime izin verecek şekilde yapılandırabilirsiniz.

Şirket içi ortamlarınızın Microsoft barındırmalı aracı havuzuna bağlantısı yoksa (genellikle ara güvenlik duvarları nedeniyle böyledir), şirket içi bilgisayarlarda yerel olarak barındırılan aracıları el ile yapılandırmanız gerekir. Aracıların hedef şirket içi ortamlara bağlantısı ve Azure Pipelines veya Azure DevOps Server'a bağlanmak için İnternet erişimi olmalıdır. Bu işlem aşağıdaki şemada gösterilmiştir:

Şirket içi ortamlar için aracı bağlantısını gösteren grafik.

Kimlik Doğrulaması

Bir aracıyı kaydetmek için ajan havuzunda yönetici rolünün üyesi olmanız gerekir. Aracı havuzu yöneticisinin kimliği yalnızca kayıt sırasında gereklidir ve ajan üzerinde tutulmaz. Aracı ile Azure Pipelines veya Azure DevOps Server arasındaki sonraki iletişimlerde kullanılmaz. Aracıyı yapılandırmak için sunucuda yerel yönetici de olmanız gerekir.

Bir aracıyı kaydederken aşağıdaki kimlik doğrulama türlerinden birini seçin. Ajan kurulum işlemi, her kimlik doğrulama türü için gereken belirli ek bilgileri sorar. Daha fazla bilgi için Öz-host ajan kimlik doğrulama seçenekleri bölümüne bakın.

Ayrıca, Windows aracıları Azure DevOps Server'da aşağıdaki iki kimlik doğrulama seçeneğine sahiptir.

  • Anlaşma: Windows kimlik doğrulama düzeni (örneğin, Yeni Teknoloji LAN Yöneticisi (NTLM) veya Kerberos) aracılığıyla Oturum açmış kullanıcı dışında bir kullanıcı olarak Azure DevOps Server'a bağlanın. Anlaşma'yı seçtikten sonra kimlik bilgileriniz istenir.
  • Tümleşik: (Varsayılan) Windows kimlik doğrulama düzeni (örneğin, NTLM veya Kerberos) aracılığıyla oturum açmış kullanıcının kimlik bilgilerini kullanarak bir Windows aracısını Azure DevOps Server'a bağlayın. Bu yöntemi seçtikten sonra sizden kimlik bilgileri istenmez.

Önemli

Sunucunuzu Alternatif, Anlaşma veya Tümleşik kimlik doğrulaması kullanmak üzere kimlik doğrulama yöntemini destekleyecek şekilde yapılandırmanız gerekir.

Aracıyı kaydetmek için kullandığınız kimlik doğrulama yöntemi yalnızca aracı kaydı sırasında kullanılır. Kayıt sonrasında aracıların Azure Pipelines ile nasıl iletişim kuracakları hakkında daha fazla bilgi edinmek için bkz . Azure Pipelines veya Azure DevOps Server ile iletişim.

Etkileşimli vs. hizmet

Kendi barındırma aracınızı bir hizmet veya etkileşimli bir işlem olarak çalıştırabilirsiniz.

Aracıyı yapılandırdıktan sonra, çalıştığından emin olmak için önce etkileşimli modda denemenizi öneririz. Ardından, üretim kullanımı için aracıyı güvenilir bir şekilde çalışır durumda kalması için aşağıdaki modlardan birinde çalıştırmanızı öneririz. Bu modlar, makine yeniden başlatılırsa aracının otomatik olarak başlatılmasını da sağlar.

  • Hizmet olarak: Aracının yaşam döngüsünü yönetmek için işletim sisteminin hizmet yöneticisini kullanabilirsiniz. Aracıyı servis olarak çalıştırdığınızda aracıyı otomatik olarak güncelleme deneyimi daha iyi olur.

  • Otomatik oturum açma etkin etkileşimli bir işlem olarak: Bazı durumlarda, aracıyı üretim kullanımı için etkileşimli olarak çalıştırmanız gerekebilir (örneğin, UI testlerini çalıştırmak için). Bir aracıyı bu modda çalışacak şekilde yapılandırdığınızda, ekran koruyucu devre dışı bırakılır. Bazı etki alanı ilkeleri, otomatik oturum açmayı etkinleştirmenizi veya ekran koruyucuyu devre dışı bırakmanızı engelleyebilir. Böyle durumlarda, etki alanı ilkesinden muafiyet istemeniz veya aracıyı etki alanı ilkelerinin uygulanmadığı bir çalışma grubu bilgisayarında çalıştırmanız gerekebilir.

    Not

    Otomatik oturum açmayı etkinleştirdiğinizde veya ekran koruyucuyu devre dışı bırakırken güvenlik riskleri vardır. Diğer kullanıcılar bilgisayara erişebilir ve otomatik olarak oturum açabilen hesabı kullanabilir. Aracıyı bu şekilde çalışacak şekilde yapılandırdığınızda, bilgisayarın fiziksel olarak korunduğundan emin olmanız gerekir (örneğin, güvenli bir tesiste bulunur).

    Otomatik oturum açma ile aracının çalıştığı bir bilgisayara erişmek için uzak masaüstü kullanıyorsanız, uzak masaüstünü kapatmak bilgisayarın kilitlenmesine neden olur. Bu aracıda çalışan tüm ui testleri başarısız olabilir. Bu sorunu önlemek için komutunu kullanarak tscon uzak masaüstü bağlantısını kesin. Örneğin:

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

Temsilci hesabı

Bir aracıyı hizmet olarak veya etkileşimli olarak çalıştırdığınızda, aracıyı çalıştırmak için hangi bilgisayar hesabını kullanacağınızı seçebilirsiniz. Ajan hesabı seçimi, yalnızca derleme ve dağıtım işlerinizde çalışan görevlerin ihtiyaçlarına bağlıdır.

Örneğin, dış hizmete erişmek için Windows kimlik doğrulamasını kullanarak görevleri çalıştırmak için aracının bu hizmete erişimi olan bir hesap kullanarak çalışması gerekir. Ancak, tarayıcı gerektiren Selenium veya Kodlanmış UI testleri gibi ui testleri çalıştırıyorsanız, tarayıcı aracı hesabı bağlamında açılır.

Windows'ta, Ağ Hizmeti veya Yerel Hizmet gibi bir hizmet hesabı kullanmanızı öneririz. Bu hesap izinleri kısıtlanır ve parolalarının süresi dolmaz, bu nedenle aracı zaman içinde daha az yönetim gerektirir.

Bu kimlik bilgileri, aracıyı Azure Pipelines veya Azure DevOps Server'a kaydederken kullandığınız kimlik bilgilerinden farklıdır.

Ajan sürümü ve güncellemeleri

Azure Pipelines'ta aracı yazılımını birkaç haftada bir güncelleştiriyoruz. Aracı sürümünü {major}.{minor} biçiminde belirtiriz. Örneğin, aracı sürümü 2.1 ise, ana sürüm 2 ve ikincil sürüm 1 olur.

Microsoft tarafından barındırılan aracıları güncel tutuyoruz. Aracın daha yeni sürümü yalnızca küçük sürümde farklıysa, Azure Pipelines kendi kendine barındırılan aracıları otomatik olarak güncelleştirebilir. Varsayılan ayar etkindir. Aracı havuzlarında aracınızı ve ardından Ayarlar'ı seçerek bu ayarı yapılandırabilirsiniz. Bir platform özelliği veya işlem hattındaki görevlerden biri aracının daha yeni bir sürümünü gerektirdiğinde yükseltme istenir.

Şirket içinde barındırılan bir aracıyı etkileşimli olarak çalıştırıyorsanız veya aracının daha yeni bir ana sürümü varsa aracıları el ile yükseltmeniz gerekebilir. Aracıları kuruluşunuzun altındaki Aracı havuzları sekmesinden yükseltebilirsiniz. İşlem hatları, uyumlu bir ajan olmadan çalıştırılamaz.

Kendi barındırdığınız aracıları güncellemek için

  1. Proje ayarları>Aracı havuzları'na gidin.

    Aracı havuzlarının nasıl bulunup seçildiğini gösteren ekran görüntüsü.

  2. Aracı havuzunuzu seçin ve ardından Tüm aracıları güncelleştir'i seçin.

    Tüm aracıları güncelleştir'in nasıl seçildiğini gösteren ekran görüntüsü.

    Aracıları tek tek güncelleştirmek için ...menüsünden Aracıyı güncelleştir'i de seçebilirsiniz.

    Güncelleme ajanının nasıl seçileceğini gösteren ekran görüntüsü.

  3. Onaylamak için Güncelleştir'i seçin.

    Onaylamak için Güncelleştir'in nasıl seçildiğini gösteren ekran görüntüsü.

  4. Havuzdaki her ajan için bir güncelleme isteği kuyruğa alınır ve mevcut işler tamamlandığında çalışır. Yükseltme genellikle yalnızca birkaç dakika sürer. Bu süre aracı yazılımının en son sürümünü (yaklaşık 200 MB) indirmek, sıkıştırmasını açmak ve aracıyı yeni sürümle yeniden başlatmak için yeterlidir. Aracılarınızın durumunu Aracılar sekmesinden izleyebilirsiniz.

Aracı yazılımını her Azure DevOps Server güncelleştirmesi ile güncelleştiriyoruz. Aracı sürümünü {major}.{minor} biçiminde belirtiriz. Örneğin, ajan sürümü 2.1 ise, ana sürüm 2 ve ikincil sürüm 1 olur.

Azure DevOps Sunucunuzda aracının daha yeni bir sürümü varsa ve bu yeni aracı yalnızca ikincil sürümde farklıysa, genellikle otomatik olarak yükseltilebilir. Bir platform özelliği veya işlem hattında kullandığınız görevlerden biri aracının daha yeni bir sürümünü gerektirdiğinde yükseltme istenir. Azure DevOps Server 2019'dan başlayarak yeni bir sunucu sürümünü beklemeniz gerekmez. Aracının yeni bir sürümünü uygulama katmanınıza yükleyebilirsiniz ve bu sürüm yükseltme olarak sunulur.

Aracıyı etkileşimli olarak çalıştırırsanız veya aracının daha yeni bir ana sürümü varsa aracıları el ile yükseltmeniz gerekebilir. Proje koleksiyonunun altındaki Aracı havuzları sekmesinden aracıyı kolayca yükseltebilirsiniz. İşlem hatları, uyumlu bir ajan olmadan çalıştırılamaz.

Ajanın sürümünü görüntüleyebilirsiniz. Aracı özelliklerini yapılandırma bölümünde açıklandığı gibi Aracıhavuzları'na gidin ve istenen aracı için Özellikler sekmesini seçin.

Aracı güncelleştirmesini program aracılığıyla tetikleme için Aracı güncelleştirme API'sinibelirli bir aracı havuzu için program aracılığıyla aracı güncelleştirmelerini nasıl tetikleyebilirim? bölümünde açıklandığı gibi kullanabilirsiniz.

İnternet erişimi olmayan sunucular için aracı ZIP dosyasını yerel dosya olarak kullanmak üzere aşağıdaki klasöre el ile kopyalayın. Aracılar klasörü yoksa oluşturun:

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

Ajan dizin yapısı

İşlem hattı işleri aracılar üzerinde çalıştırıldığında kaynak kodu, ikili dosyaları ve yapıtları depolamak için bir dizin yapısı oluşturulur.

Ajanın ana dizini, ajanın yüklü olduğu dizindir. Dizin genellikle şu konumdadır:

  • Microsoft tarafından barındırılan aracılar: C:\agents\<agent version> Windows, /Users/runner/runners/<agent version> macOS ve /home/vsts/agents/<agent version> Linux üzerinde.
  • Kendin barındırılan aracılar: C:\agent Windows'ta, Users/<username>/agent (~/agent) macOS'ta ve /home/vsts/agent Linux'ta.

Ajansın iş dizini, kaynağın ve iş çıktılarının depolandığı çalışma alanını içerir. İş dizini genellikle şu konumdadır:

  • Microsoft tarafından barındırılan aracı: C:\a Windows, /Users/runner/work macOS ve/home/vsts/work Linux üzerinde.
  • Kendi kendine barındırılan aracı: C:\agent\_work Windows, ~/agent/work macOS ve /home/agent/_work Linux üzerinde.

İş dizini yapısı şöyledir:


    - /work directory
        - /1 build directory/pipeline workspace
            - /s source/working directory
            - /b binaries directory
            - /a artifacts staging directory
            - /TestResults Test results directory
Dizin Açıklama Örnekler Önceden tanımlanmış değişkenler
Ajanın ana dizini Ajanın yüklendiği yer. Microsoft tarafından barındırılan aracı:
   Windows: C:\agents\3.248.0
   Linux: /home/vsts/agents/3.248.0
   macOS: /Users/runner/runners/3.248.0
Kendinden barındırılan ajan:
   Windows: C:\agent
   Linux: home/agent
   macOS: ~/agent
Agent.HomeDirectory
İş dizini Ajanın kaynak kodu, ikili dosyaları ve artefaktları depoladığı yer. Microsoft tarafından barındırılan aracı:
   Windows: C:\a
   Linux: /home/vsts/work
   macOS: /Users/runner/work
Kendinden barındırılan ajan:
   Windows: C:\agent\_work
   Linux: /home/agent/_work
   macOS: ~/agent/work
Agent.WorkFolder
Agent.RootDirectory
System.WorkFolder
Dizin veya çalışma alanı oluşturma Boru hattı işinin çalıştığı yer. Microsoft tarafından barındırılan aracı:
   Windows: C:\a\1
   Linux: /home/vsts/work/1
   macOS: /Users/runner/work/1
Kendinden barındırılan ajan:
   Windows: C:\agent\_work\1
   Linux: /home/agent/_work/1
   macOS: ~/agent/work/1
Agent.BuildDirectory
Pipeline.Workspace
s - Kaynak veya çalışma dizini Depodan çekilen kaynak kodu içerir. İşinizde birden çok checkout adım varsa, kaynak kodunuz depoların alt klasörü solarak adlandırılan dizinlerde kullanıma alınır. Microsoft tarafından barındırılan aracı:
   Windows: C:\a\1\s
   Linux: /home/vsts/work/1/s
   macOS: /Users/runner/work/1/s
Kendinden barındırılan ajan:
   Windows: C:\agent\_work\1\s
   Linux: /home/agent/_work/1/s
   macOS: ~/agent/work/1/s
Build.SourcesDirectory
Build.RepositoryLocalPath
System.DefaultWorkingDirectory
b - İkili dosyalar dizini Yapı çıktısını içerir. Microsoft tarafından barındırılan aracı:
   Windows: C:\a\1\b
   Linux: /home/vsts/work/1/b
   macOS: /Users/runner/work/1/b
Kendinden barındırılan ajan:
   Windows: C:\agent\_work\1\b
   Linux: /home/agent/_work/1/b
   macOS: ~/agent/work/1/b
Build.BinariesDirectory
a - Artefakt hazırlama dizini Derleme yapı çıktılarını içerir. Kendi kendine barındırılan aracılardaki çalıştırmalar arasında temizlenir. Microsoft tarafından barındırılan aracı:
   Windows: C:\a\1\a
   Linux: /home/vsts/work/1/a
   macOS: /Users/runner/work/1/a
Kendinden barındırılan ajan:
   Windows: C:\agent\_work\1\a
   Linux: /home/agent/_work/1/a
   macOS: ~/agent/work/1/a
Build.StagingDirectory
Build.ArtifactStagingDirectory
System.ArtifactsDirectory
TestResults dizin Test sonuçlarını içerir. Kendi kendine barındırılan aracılardaki çalıştırmalar arasında temizlenir. Microsoft tarafından barındırılan aracı:
   Windows: C:\a\1\TestResults
   Linux: /home/vsts/work/1/TestResults
   macOS: /Users/runner/work/1/TestResults
Kendinden barındırılan ajan:
   Windows: C:\agent\_work\1\TestResults
   Linux: /home/agent/_work/1/TestResults
   macOS: ~/agent/work/1/TestResults
Common.TestResultsDirectory

Microsoft tarafından barındırılan aracılarda her çalıştırmada farklı bir aracı kullanılır, bu nedenle iş dizini çalıştırmalar arasında korunmaz. Kendi kendine barındırılan aracılarda, varsayılan olarak yalnızca yapıt hazırlama dizini ve test sonuçları dizinleri çalıştırmalar arasında temizlenir. Çalışma alanı temizleme seçeneği hakkında daha fazla bilgi için bkz. çalışma alanı .

Önceden tanımlanmış değişkenler hakkında daha fazla bilgi için bkz. Önceden tanımlanmış değişkenler.

Sıkça Sorulan Sorular

En son ajan sürümüne sahip olduğumdan nasıl emin olurum?

  1. Aracı havuzları sekmesine gidin:

    1. Kuruluşunuzda oturum açın (https://dev.azure.com/{yourorganization}).

    2. Azure DevOps>Kuruluş ayarları'nı seçin.

      Kuruluş ayarlarının nasıl seçildiğini gösteren ekran görüntüsü.

    3. Ajan Havuzları'nı seçin.

      Aracı havuzları sekmesinin nasıl seçildiğini gösteren ekran görüntüsü.

    1. Proje koleksiyonunuzda (http://your-server/DefaultCollection) oturum açın.

    2. Azure DevOps>Koleksiyonu ayarları'nı seçin.

      Koleksiyon ayarlarının nasıl seçildiğini gösteren ekran görüntüsü.

    3. Ajan Havuzları'nı seçin.

      Aracı Havuzları Seçin.

    Aracı havuzlarına nasıl gidileceğini ve aracı havuzlarının nasıl seçileceğini gösteren ekran görüntüsü.

  2. Aracıyı içeren havuzu seçin.

  3. Ajanın etkinleştirildiğinden emin olun.

  4. Yetenekler sekmesine gidin:

    1. Aracı havuzları sekmesinden istediğiniz aracı havuzunu seçin.

      Aracı havuzlarından istediğiniz aracı havuzunu seçin.

    2. Aracılar'ı seçin ve istediğiniz aracıyı seçin.

      Aracılar menüsünden bir aracı seçin.

    3. Özellikler sekmesini seçin.

      Özellikler sekmesini seçin.

      Not

      Microsoft tarafından barındırılan aracılar sistem özelliklerini görüntülemez. Microsoft tarafından barındırılan aracılarda yüklü yazılımların listesi için Microsoft tarafından barındırılan aracı kullanma bölümüne bakın.

    1. Aracı havuzları sekmesinden istediğiniz havuzu seçin.

      İstediğiniz havuzu seçin.

    2. Aracılar'ı seçin ve istediğiniz aracıyı seçin.

      Aracılar'ı seçin ve istediğiniz aracıyı seçin.

    3. Özellikler sekmesini seçin.

      Aracı özellikleri sekmesi.

  5. Agent.Version yeteneğini arayın. Bu değeri Azure Pipelines Aracısı sayfasındaki en son yayımlanan aracı sürümüyle karşılaştırabilirsiniz.

  6. Her aracı, aracının daha yeni bir sürümünü gerektiren bir görev çalıştırdığında kendisini otomatik olarak güncelleştirir. Bazı aracıları el ile güncelleştirmek istiyorsanız havuza sağ tıklayın ve ardından Tüm aracıları güncelleştir'i seçin.

Azure DevOps Server havuzunun parçası olan aracılarımı güncelleştirebilir miyim?

Evet. Azure DevOps Server 2019'da başlayarak, sunucunuzu yerel diskte aracı paketi dosyalarını aramak üzere yapılandırabilirsiniz. Bu yapılandırma, yayınlandığı sırada sunucuyla birlikte gelen varsayılan sürümü geçersiz kılar. Bu senaryo, sunucunun İnternet'e erişimi olmadığında da geçerlidir.

  1. İnternet erişimi olan bir bilgisayardan Azure Pipelines Aracısı GitHub Sürümleri sayfasından aracı paketi dosyalarının en son sürümünü (.zip veya .tar.gz biçimde) indirin.

  2. İndirilen paket dosyalarını istediğiniz bir yöntemi (örneğin, USB sürücüsü, ağ aktarımı vb.) kullanarak her Azure DevOps Server Uygulama Katmanına aktarın. %ProgramData%\Microsoft\Azure DevOps\Agents klasörünün altına aracı dosyalarını yerleştirin. Aracılar etiketli bir klasör yoksa bir klasör oluşturun.

  3. Artık hazırsınız! Azure DevOps Sunucunuz artık aracılar her güncelleştirildiğinde yerel dosyaları kullanıyor. Her aracı, aracının daha yeni bir sürümünü gerektiren bir görev çalıştırdığında kendisini otomatik olarak güncelleştirir. Ancak bazı aracıları el ile güncelleştirmek istiyorsanız havuza sağ tıklayın ve ardından Tüm aracıları güncelleştir'i seçin.

Şirket içinde barındırılan aracıların Microsoft tarafından barındırılan aracılara göre performans avantajları var mı?

Birçok durumda, evet. Kendi barındırdığınız bir aracı kullanıyorsanız, artımlı derlemeler çalıştırabilirsiniz. Örneğin, depoyu temizlemeyen ve temiz derleme gerçekleştirmeyen bir işlem hattı tanımlarsanız, derlemeleriniz genellikle daha hızlı çalışır. Microsoft tarafından barındırılan bir aracı ile bu avantajları elde edemezsiniz, çünkü işlem hattı tamamlandıktan sonra aracı yok edilir; bu sebeple, önbelleğe alma gibi özellikler kullanmanız gerekir.

Microsoft tarafından barındırılan bir aracının derlemenizi başlatması daha uzun sürebilir. İşinizin Microsoft tarafından barındırılan bir aracıya atanabilmesi genellikle birkaç saniye sürse de bazen yük durumuna bağlı olarak bir aracı atanması birkaç dakika sürebilir.

Aynı makineye kendi sunucusunda barındırılan birden çok aracı yükleyebilir miyim?

Evet. Bu yaklaşım, çok fazla paylaşılan kaynak tüketmeyen işler çalıştıran aracılar için iyi çalışabilir. Örneğin, çoğunlukla dağıtımları organize eden ve aracının kendisinde fazla işlem yapmayan yayınları çalıştıran aracılar için deneyebilirsiniz.

Diğer durumlarda aynı makinede birden çok aracı çalıştırarak çok fazla verimlilik kazanmayabileceğinizi fark edebilirsiniz. Örneğin, çok fazla disk alanı ve giriş/çıkış kaynağı kullanan derlemeler çalıştıran aracılar için faydalı olmayabilir.

Paralel derleme işleri aynı tekil araç dağıtımını (örneğin, npm paketleri) kullanıyorsa sorunlarla karşılaşabilirsiniz. Bir derleme, başka bir derleme tarafından kullanılırken bağımlılığı güncelleştirebilir ve bu da güvenilir olmayan sonuçlara ve hatalara neden olabilir.

İşlem hattı işleri iptal edildiğinde aracılar ne yapar?

Microsoft tarafından barındırılan aracılarda, aracı kapatılır ve Azure Pipelines havuzuna geri döndürülür.

Kendi kendine barındırılan aracılar için:

  • Boru hattı iptal edildiğinde ajan, geçerli adımı yürüten sürece bir dizi komut gönderir.
  • İlk komut 7,5 saniyelik zaman aşımı ile gönderilir.
  • İşlem sonlandırılmıyorsa, 2,5 saniyelik zaman aşımı ile ikinci bir komut gönderilir.
  • İşlem sonlandırılmazsa, ajan onun öldürülmesini emreder.
  • İşlem ilk iki sonlandırma isteğini yoksayarsa zorla sonlandırılır.

İlk istekten sonlandırmaya kadar olan süre yaklaşık 10 saniyedir.

İşlem hattını iptal etme işlemine verilen komutlar aracı işletim sistemine göre farklılık gösterir:

  • macOS ve Linux: Gönderilen komutlar SIGINT, ardından SIGTERM, ardından SIGKILL şeklindedir.
  • Windows: İşleme gönderilen komutlar sırasıyla Ctrl+C, Ctrl+Break ve Process.Kill şeklindedir.

Belirli bir aracı havuzu için program aracılığıyla aracı güncelleştirmelerini nasıl tetikleyebilirim?

Aşağıdaki API'yi kullanarak havuz için aracı güncelleştirmelerini tetikleyebilirsiniz:

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

Not

Daha fazla bilgi için bkz. API ve Azure DevOps Server sürüm eşlemesi.

URI parametreleri

Veri Akışı Adı İçinde Zorunlu Türü Açıklama
agentId query False Dizgi Güncelleştirilecek temsilci. Belirtilmezse, tüm aracılar için bir güncelleme tetiklenir.
organization yol True Dizgi Azure DevOps kuruluşunun adı.
poolId yol True tamsayı int32 Kullanılacak ajan havuzu.
api-version query False Dizgi Kullanılacak API'nin sürümü. API'nin bu sürümünü kullanmak için değeri olarak 6.0ayarlanmalıdır.

Aracı güncellemesini tetiklemek için istek gövdesi boş olmalıdır.

Azure Pipelines aracısı GitHub'da açık kaynaktır.

Aracılar hakkında daha fazla bilgi için Azure DevOps ile uygulama derleme öğrenme yolundaki aşağıdaki modüllere bakın: