Aracılığıyla paylaş


Şirket içinde barındırılan Windows aracıları

Azure DevOps Services

Windows, Azure ve diğer Visual Studio çözümlerini derlemek ve dağıtmak için en az bir Windows aracısı gerekir. Windows aracıları Java ve Android uygulamaları da oluşturabilir.

Bu makalede, Azure DevOps Services ve Azure DevOps Server'ın geçerli sürümleriyle 3.x aracı yazılımını kullanma yönergeleri sağlanır. 3.x aracısını destekleyen Azure DevOps Server sürümlerinin listesi için bkz . Azure DevOps Server 3.x aracısını destekliyor mu?

Not

Bu makalede, şirket içinde barındırılan bir aracının nasıl yapılandırıldığı açıklanır. Azure DevOps Services kullanıyorsanız ve Microsoft tarafından barındırılan bir aracı gereksinimlerinizi karşılıyorsa, şirket içinde barındırılan bir Windows aracısı ayarlamayı atlayabilirsiniz.

Aracılar hakkında bilgi edinin

Bir aracının ne olduğunu ve nasıl çalıştığını zaten biliyorsanız, aşağıdaki bölümlere doğrudan atlayabilirsiniz. Ancak ne yaptıkları ve nasıl çalıştıkları hakkında daha fazla bilgi edinmek isterseniz bkz . Azure Pipelines aracıları.

Önkoşulları denetleme

Makinenizin şu önkoşullara sahip olduğundan emin olun:

  • İşletim sistemi sürümü
    • İstemci işletim sistemi
      • Windows 7 SP1 ESU
      • Windows 8.1
      • Windows 10
      • Windows 11
    • Sunucu işletim sistemi
      • Windows Server 2012 veya üzeri
  • Aracı yazılımı kendi .NET sürümünü yükler, bu nedenle .NET önkoşulu yoktur.
  • PowerShell 3.0 veya üzeri
  • Subversion - Subversion deposundan oluşturuyorsanız makineye Subversion istemcisini yüklemeniz gerekir.
  • Önerilen - Visual Studio derleme araçları (2015 veya üzeri)

Aracı kurulumunu ilk kez el ile çalıştırmanız gerekir. Aracıların nasıl çalıştığına ilişkin bir his edindikten sonra veya birçok aracıyı ayarlamayı otomatikleştirmek istiyorsanız katılımsız yapılandırmayı kullanmayı göz önünde bulundurun.

Donanım özellikleri

Temsilcilerinizin donanım özellikleri ihtiyaçlarınıza, ekip boyutuna vb. göre farklılık gösterir. Herkese uygulanacak genel bir öneride bulunmak mümkün değildir. Başvuru noktası olarak, Azure DevOps ekibi barındırılan aracıları kullanan işlem hatlarını kullanarak barındırılan aracılar kodunu oluşturur. Öte yandan Azure DevOps kodunun büyük kısmı, her bir parçada şirket içinde barındırılan dört aracı çalıştıran 24 çekirdekli sunucu sınıfı makineler tarafından oluşturulur.

İzinleri hazırlama

Şirket içinde barındırılan aracılar için bilgi güvenliği

Aracıyı yapılandıran kullanıcının havuz yöneticisi izinlerine ihtiyacı vardır, ancak aracıyı çalıştıran kullanıcı bunu yapmaz.

Aracı tarafından denetlenen klasörler, şifresi çözülebilecek veya dışarı aktarılabilir gizli diziler içerdiğinden mümkün olduğunca az kullanıcıyla sınırlandırılmalıdır.

Azure Pipelines aracısı, dış kaynaklardan indirmiş olduğu kodu yürütmek için tasarlanmış bir yazılım ürünüdür. Bu, doğal olarak Uzaktan Kod Yürütme (RCE) saldırılarına yönelik bir hedef olabilir.

Bu nedenle, işlem hattı aracılarının her bir kullanımını iş yapmak için çevreleyen tehdit modelini göz önünde bulundurmak ve aracıyı çalıştıran kullanıcıya, aracının çalıştığı makineye, İşlem Hattı tanımına yazma erişimi olan kullanıcılara, yaml'nin depolandığı git depolarına verilebilen en düşük izinlerin ne olduğuna karar vermek önemlidir. veya yeni işlem hatları için havuza erişimi denetleyen kullanıcı grubunu seçin.

Aracıyı çalıştıran kimliğin, aracıyı havuza bağlama izinlerine sahip kimlikten farklı olması en iyi yöntemdir. Kimlik bilgilerini (ve aracıyla ilgili diğer dosyaları) oluşturan kullanıcı, bunları okuması gereken kullanıcıdan farklıdır. Bu nedenle, aracı makinenin kendisine ve günlükler ve yapıtlar gibi hassas dosyalar içeren aracı klasörlerine verilen erişimi dikkatli bir şekilde göz önünde bulundurmak daha güvenlidir.

Aracı klasörüne yalnızca DevOps yöneticileri ve aracı işlemini çalıştıran kullanıcı kimliği için erişim vermek mantıklıdır. Yöneticilerin derleme hatalarını anlamak veya Azure DevOps hatalarını bildirebilmek için günlük dosyalarını almak için dosya sistemini incelemesi gerekebilir.

Hangi kullanıcıyı kullanacağınıza karar verme

Tek seferlik bir adım olarak aracıyı kaydetmeniz gerekir. Aracı kuyruğu yönetme iznine sahip birinin bu adımları tamamlaması gerekir. Aracı günlük işlemlerde bu kişinin kimlik bilgilerini kullanmaz, ancak kaydı tamamlaması gerekir. Aracıların iletişim kurma şekli hakkında daha fazla bilgi edinin.

Kullanıcının izni olduğunu onaylayın

Kullanacağınız kullanıcı hesabının aracıyı kaydetme izni olduğundan emin olun.

Kullanıcı bir Azure DevOps kuruluş sahibi mi, TFS mi yoksa Azure DevOps Server yöneticisi mi? Burada durun, izniniz var.

Aksi durumda:

  1. Bir tarayıcı açın ve Azure Pipelines kuruluşunuz veya Azure DevOps Server ya da TFS sunucusu için Aracı havuzları sekmesine gidin:

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

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

      Kuruluş ayarları'nı seçin.

    3. Aracı havuzları'nı seçin.

      Aracı havuzları sekmesini seçin.

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

    2. Azure DevOps, Koleksiyon ayarları'nı seçin.

      Koleksiyon ayarları'nı seçin.

    3. Aracı havuzları'nı seçin.

      Aracı havuzları'nı seçin.

    1. Azure DevOps, Koleksiyon ayarları'nı seçin.

      Koleksiyon ayarları, 2019.

    2. Aracı havuzları'nı seçin.

      Aracı havuzları, 2019'u seçin.

  2. Sayfanın sağ tarafındaki havuzu seçin ve güvenlik'e tıklayın.

  3. Kullanacağınız kullanıcı hesabı gösterilmiyorsa, yöneticinin hesabı eklemesini sağlayın. Yönetici, aracı havuzu yöneticisi, Azure DevOps kuruluş sahibi veya TFS ya da Azure DevOps Server yöneticisi olabilir.

    Bu bir dağıtım grubu aracısıysa, yönetici dağıtım grubu yöneticisi, Azure DevOps kuruluş sahibi veya TFS ya da Azure DevOps Server yöneticisi olabilir.

    Azure Pipelines'ın Dağıtım Grupları sayfasındaki Güvenlik sekmesinde bir kullanıcıyı dağıtım grubu yöneticisi rolüne ekleyebilirsiniz.

Not

Şuna benzer bir ileti görürseniz: Üzgünüz, kimliği ekleyemedik. Lütfen farklı bir kimlik deneyin. Büyük olasılıkla bir kuruluş sahibi, TFS veya Azure DevOps Server yöneticisi için yukarıdaki adımları izlemişsinizdir. Hiçbir şey yapmanıza gerek yok; aracı havuzunu yönetme izniniz zaten var.

Aracıyı indirme ve yapılandırma

Azure Pipelines

  1. Yukarıda açıklandığı gibi izinleri hazırladığınız hesabı kullanarak makinede oturum açın.

  2. Web tarayıcınızda Azure Pipelines'da oturum açın ve Aracı havuzları sekmesine gidin:

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

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

      Kuruluş ayarları'nı seçin.

    3. Aracı havuzları'nı seçin.

      Aracı havuzları sekmesini seçin.

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

    2. Azure DevOps, Koleksiyon ayarları'nı seçin.

      Koleksiyon ayarları'nı seçin.

    3. Aracı havuzları'nı seçin.

      Aracı havuzları'nı seçin.

    1. Azure DevOps, Koleksiyon ayarları'nı seçin.

      Koleksiyon ayarları, 2019.

    2. Aracı havuzları'nı seçin.

      Aracı havuzları, 2019'u seçin.

  3. Varsayılan havuzu seçin, Aracılar sekmesini seçin ve Yeni aracı'yı seçin.

  4. Aracıyı al iletişim kutusunda Windows'u seçin.

  5. Sol bölmede, makinenizde yüklü Windows işletim sistemi sürümünün işlemci mimarisini seçin. x64 aracı sürümü 64 bit Windows için, x86 sürümü ise 32 bit Windows için tasarlanmıştır. Hangi Windows sürümünün yüklü olduğundan emin değilseniz, öğrenmek için bu yönergeleri izleyin.

  6. Sağ bölmede İndir düğmesine tıklayın.

  7. Aracıyı indirmek için sayfadaki yönergeleri izleyin.

  8. Aracıyı seçtiğiniz dizine açın. Araçlar ve betikler her zaman doğru kaçış alanları olmadığından dizin yolunun boşluk içermediğinden emin olun. Önerilen klasör: C:\agents. İndirme klasöründe veya diğer kullanıcı klasörlerinde ayıklamak izin sorunlarına neden olabilir.

Önemli

Aracıyı yükseltilmiş bir PowerShell penceresinden yapılandırmanızı kesinlikle öneririz. Hizmet olarak yapılandırmak istiyorsanız, bu gereklidir.

Aracıyı yapılandırmak için Windows PowerShell ISE kullanmamalısınız.

Önemli

Güvenlik nedeniyle aracılar klasörünün (C:\agents) yalnızca yöneticiler tarafından düzenlenebilir olduğundan emin olmanız önemle önerilir.

Not

Aracı yapılandırması için git-bash gibi nane tabanlı kabuklar kullanmaktan kaçının. Mintty, yerel Giriş/Çıkış Windows API'siyle tam olarak uyumlu değildir (bu konuda bazı bilgiler verilmiştir ) ve bu durumda kurulum betiğinin doğru şekilde çalışacağını garanti edemeyiz.

Aracıyı yükleme

  1. Yükseltilmiş (PowerShell) bir pencere başlatın ve aracıyı paketten çıkardığınız konumu ayarlayın.

    cd C:\agents 
    
    
  2. config.cmd'i çalıştırın. Bu size aracıyı yapılandırmak için bir dizi soru sorar.

    .\config.cmd
    
    

Sunucu URL'si

Kurulum sunucu URL'nizi istediğinde Azure DevOps Services için yanıtlayın https://dev.azure.com/{your-organization}.

Kurulum sunucu URL'nizi istediğinde, Azure DevOps Server için yanıtlayın https://{my-server}/{my-collection}.

Aracı kurulumu kimlik doğrulama türü

Bir aracıyı kaydettiğinizde, aşağıdaki kimlik doğrulama türlerinden birini seçin; kurulum sizden her kimlik doğrulama türü için gereken belirli ek bilgileri ister. Daha fazla bilgi için bkz . Şirket içinde barındırılan aracı kimlik doğrulama seçenekleri.

  • Kişisel erişim belirteci
  • Temel kimlik doğrulamasını kullanarak Azure DevOps Server'a veya TFS'ye alternatif olarak bağlanın. Alternatif'i seçtiğinizde kimlik bilgileriniz istenir.

Windows aracıları, Azure DevOps Server ve TFS'de aşağıdaki iki ek kimlik doğrulama seçeneğine sahiptir.

  • NTLM veya Kerberos gibi bir Windows kimlik doğrulama düzeni aracılığıyla TFS'ye oturum açmış kullanıcı dışında bir kullanıcı olarak bağlanma anlaşması yapın. Anlaş'ı seçtikten sonra kimlik bilgileriniz istenir.
  • Tümleşik (Varsayılan) NTLM veya Kerberos gibi bir Windows kimlik doğrulama şeması aracılığıyla oturum açmış kullanıcının kimlik bilgilerini kullanarak bir Windows aracısını TFS'ye bağlayın. Bu yöntemi seçtikten sonra sizden kimlik bilgileri istenmez.

Önemli

Sunucunuz Alternatif, Anlaşma veya Tümleşik kimlik doğrulaması kullanmak için kimlik doğrulama yöntemini destekleyecek şekilde yapılandırılmalıdır.

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

Etkileşimli veya hizmet modunu seçme

Aracıyı etkileşimli modda mı yoksa hizmet olarak mı çalıştıracaklarına ilişkin yönergeler için bkz . Aracılar: Etkileşimli ve hizmet.

Hizmet olarak çalıştırmayı seçerseniz (ki bunu öneririz), olarak çalıştırdığınız kullanıcı adı 20 karakter veya daha az olmalıdır.

Aracıyı çalıştırma

Etkileşimli olarak çalıştırma

Aracıyı etkileşimli çalışacak şekilde yapılandırdıysanız, aracıyı başlatmak için aşağıdaki komutu çalıştırın.

.\run.cmd

Aracıyı yeniden başlatmak için, aracıyı durdurmak için Ctrl+C tuşlarına basın ve ardından aracıyı yeniden başlatmak için komutunu çalıştırın run.cmd .

Not

Aracıyı Windows PowerShell görevlerini yürütmek için PowerShell Core'dan çalıştırıyorsanız işlem hattınız gibi Error in TypeData "System.Security.AccessControl.ObjectSecurity": The member is already presentbir hatayla başarısız olabilir. Bunun nedeni, Windows PowerShell'in PowerShell Core modül konumlarını PSModulePath içeren ortam değişkenini üst işleminden devralıyor olmasıdır.

Geçici bir çözüm olarak, işlem hattında aracının düğmesini AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL olarak true ayarlayabilirsiniz. Bu, aracının görevleri yürütmeden önce sıfırlanmasına PSModulePath olanak sağlar.

variables:
 AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL: "true"

Bu geçici çözüm sorununuzu çözmezse veya özel modül konumlarını kullanmanız gerekiyorsa, aracıyı $Env:PSModulePath çalıştırmadan önce değişkeni PowerShell Core pencerenizde gerektiği gibi ayarlayabilirsiniz.

Bir kez çalıştır

Ayrıca aracının yalnızca bir işi kabul edip çıkış yapmalarını da seçebilirsiniz. Bu yapılandırmada çalıştırmak için aşağıdaki komutu kullanın.

.\run.cmd --once

Bu modda aracılar yalnızca bir işi kabul eder ve ardından düzgün bir şekilde açılır (Azure Container Instances gibi bir hizmette Docker'da çalıştırmak için kullanışlıdır).

Hizmet olarak çalıştır

Aracıyı hizmet olarak çalışacak şekilde yapılandırdıysanız otomatik olarak başlatılır. Hizmet ek bileşeninden aracının çalışma durumunu görüntüleyebilir ve denetleyebilirsiniz. Komutunu çalıştırın services.msc ve aşağıdakilerden birini arayın:

  • "Azure Pipelines Aracısı (aracınızın adı)"
  • "VSTS Aracısı (aracınızın adı)"
  • "vstsagent. (kuruluş adı). (temsilcinizin adı)"

Not

Hizmet olarak çalışan bir aracıya erişim denetiminde daha fazla esneklik sağlamak için, etkileşimli yapılandırma akışı sırasında bayrak veya istem yoluyla aracı hizmeti SID türünü [SERVICE_SID_TYPE_UNRESTRICTED] olarak ayarlamak mümkündür. Aracı hizmeti varsayılan olarak ile SERVICE_SID_TYPE_NONEyapılandırılır.

SID türleri hakkında daha fazla bilgi için lütfen bu belgelere bakın.

Aracıyı yeniden başlatmak için girdiye sağ tıklayın ve Yeniden Başlat'ı seçin.

Not

Aracının oturum açma hesabını değiştirmeniz gerekiyorsa, bunu Hizmetler ek bileşeninden yapmayın. Bunun yerine aracıyı yeniden yapılandırmak için aşağıdaki bilgilere bakın.

Aracınızı kullanmak için aracının havuzunu kullanarak bir çalıştırın. Farklı bir havuz seçmediyseniz, aracınız Varsayılan havuzda olur.

Aracıyı değiştirme

Aracıyı değiştirmek için Aracıyı indirme ve yapılandırma adımlarını yeniden izleyin.

Aracıyı zaten var olan bir aracıyla aynı adı kullanarak yapılandırdığınızda, mevcut aracıyı değiştirmek isteyip istemediğiniz sorulur. yanıtını Yverirseniz değiştirdiğiniz aracıyı kaldırdığınızdan emin olun (aşağıya bakın). Aksi takdirde, birkaç dakikalık çakışmalardan sonra aracılardan biri kapanır.

Aracıyı kaldırma ve yeniden yapılandırma

Aracıyı kaldırmak için:

.\config remove

Aracıyı kaldırdıktan sonra yeniden yapılandırabilirsiniz.

Katılımsız yapılandırma

Aracı, insan müdahalesi olmadan bir betikten ayarlanabilir. Tüm soruların yanıtlarını ve geçmelisiniz --unattended .

Aracıyı yapılandırmak için kuruluşunuzun URL'sini veya aracıları ayarlama yetkisi olan birinin koleksiyonunu ve kimlik bilgilerini bilmesi gerekir. Diğer tüm yanıtlar isteğe bağlıdır. Bunun yerine herhangi bir komut satırı parametresi bir ortam değişkeni kullanılarak belirtilebilir: adını büyük harfe koyun ve önüne ekleyin VSTS_AGENT_INPUT_. Örneğin, VSTS_AGENT_INPUT_PASSWORD yerine belirtin --password.

Gerekli seçenekler

  • --unattended - aracı kurulumu bilgi istemez ve tüm ayarlar komut satırında sağlanmalıdır
  • --url <url> - Sunucunun URL'si. Örneğin: https://dev.azure.com/myorganization veya http://my-azure-devops-server:8080/tfs
  • --auth <type> - kimlik doğrulama türü. Geçerli değerler şunlardır:
    • pat (Kişisel erişim belirteci)
    • SP(Hizmet Sorumlusu) (Aracı sürüm 3.227.1 veya üzeri gerektirir)
    • negotiate (Kerberos veya NTLM)
    • alt (Temel kimlik doğrulaması)
    • integrated (Windows varsayılan kimlik bilgileri)

Kimlik doğrulaması seçenekleri

  • seçeneğini belirlediyseniz --auth pat:
    • --token <token> - kişisel erişim belirtecinizi belirtir
    • Parametre olarak OAuth 2.0 belirtecini --token de geçirebilirsiniz.
  • veya --auth altseçeneğini belirlediyseniz--auth negotiate:
    • --userName <userName> - veya biçiminde domain\userName bir Windows kullanıcı adı belirtir userName@domain.com
    • --password <password> - bir parola belirtir
  • seçeneğini belirlediyseniz --auth SP:
    • --clientID <clientID> - Aracıları kaydetme erişimi olan Hizmet Sorumlusunun İstemci Kimliğini belirtir
    • --tenantId <tenantID> - Hizmet Sorumlusunun kayıtlı olduğu Kiracı Kimliğini belirtir
    • --clientSecret <clientSecret> - Hizmet Sorumlusunun İstemci Gizli Dizisini belirtir
    • Daha fazla bilgi için bkz. Hizmet sorumlusu kullanarak aracı kaydetme

Havuz ve aracı adları

  • --pool <pool> - Aracıya katılmak için havuz adı
  • --agent <agent> - aracı adı
  • --replace - bir havuzdaki aracıyı değiştirin. Başka bir aracı aynı adla dinliyorsa, çakışmayla başarısız olur

Aracı kurulumu

  • --work <workDirectory> - iş verilerinin depolandığı iş dizini. Varsayılan olarak _work aracı dizininin kökü altındadır. İş dizini belirli bir aracıya aittir ve birden çok aracı arasında paylaşılmamalıdır.
  • --acceptTeeEula - Her Yerde Takım Gezgini Son Kullanıcı Lisans Sözleşmesi'ni kabul edin (yalnızca macOS ve Linux)
  • --disableloguploads - konsol günlüğü çıkışını sunucuya akışla aktarmayın veya göndermeyin. Bunun yerine, iş tamamlandıktan sonra aracı konağın dosya sisteminden alabilirsiniz.

Yalnızca Windows başlatma

  • --runAsService - aracıyı Bir Windows hizmeti olarak çalışacak şekilde yapılandırın (yönetici izni gerektirir)
  • --runAsAutoLogon - otomatik oturum açmayı yapılandırma ve başlangıçta aracıyı çalıştırma (yönetici izni gerektirir)
  • --windowsLogonAccount <account>- ile --runAsAutoLogon veya --runAsService biçiminde Windows kullanıcı adını domain\userName belirtmek için kullanılır veyauserName@domain.com
  • --windowsLogonPassword <password>- ile --runAsService veya --runAsAutoLogon windows oturum açma parolasını belirtmek için kullanılır (Grup Yönetilen Hizmet Hesapları ve 'NT AUTHORITY\NETWORK SERVICE' gibi Yerleşik Windows hesapları için gerekli değildir)
  • --enableservicesidtypeunrestricted- aracıyı hizmet SID türüyle SERVICE_SID_TYPE_UNRESTRICTED yapılandırmak için ile --runAsService kullanılır (yönetici izni gerektirir)
  • --overwriteAutoLogon - makinede var olan otomatik oturum açma işleminin üzerine yazmak için ile --runAsAutoLogon kullanılır
  • --noRestart - aracı yapılandırması tamamlandıktan sonra konağın yeniden başlatılmasını durdurmak için ile --runAsAutoLogon kullanılır

Aracıyı seçeneğiyle runAsAutoLogon yapılandırma sorunlarını giderme

Aracıyı seçeneğiyle runAsAutoLogon yapılandırmak, makineyi yeniden başlattıktan sonra aracıyı her seferinde çalıştırır. Aracı makineyi yeniden başlattıktan sonra çalıştırılmazsa sonraki adımları gerçekleştirin.

Aracı makinede zaten yapılandırılmışsa

Aracıyı yeniden yapılandırmadan önce eski aracı yapılandırmasını kaldırmak gerekir, bu nedenle aracı klasöründen şu komutu çalıştırmayı deneyin:

.\config.cmd remove --auth 'PAT' --token '<token>'

Komutunu yürüttkten sonra aracının aracı havuzunuzdan kaldırılıp kaldırılmadığını denetleyin:

<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents

Aracı komutu çalıştırılarak kaldırılmadıysa aracıyı aracı havuzunuzdan el ile kaldırın.

Ardından aracı klasöründen şu komutu çalıştırarak aracıyı yeniden yapılandırmayı deneyin:

.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'

Aracı adını (belirli bir benzersiz ad) belirtin ve bu aracıyı yeniden yapılandırdıktan sonra aracı havuzunuzda görünup görünmediğini denetleyin.

Bir aracı arşivini açmak (buradan indirilebilir) ve bu komutu yeni paketlenmemiş aracı klasöründen çalıştırmak çok daha iyi olacaktır.

Windows kayıt defteri anahtarının doğru kaydedilip kaydedilmediğini denetleyin

whoami /user komutunu çalıştırarak alın<sid>. Yolunu açın Registry Editor ve izleyin:

Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Anahtarın VSTSAgent olup olmadığını denetleyin. Varsa bu anahtarı silin, ardından aracı klasöründen .\config.cmd komutunu (args olmadan) çalıştırarak aracıyı kapatın Registry Editor ve yapılandırın. Soruyu Enter Restart the machine at a later time?yanıtlamadan önce yeniden açın Registry Editor ve anahtarın VSTSAgent görünup görünmediğini denetleyin. Soruyu yanıtlamak için basın Enter ve makineyi yeniden başlattıktan sonra anahtarın VSTSAgent yerinde kalıp kalmadiğini denetleyin.

Windows kayıt defteri anahtarlarının makinenizde sorunsuz çalışıp çalışmadiğini denetleyin

Aşağıdaki satırı içeren bir autorun.cmd dosya oluşturun: echo "Hello from AutoRun!". Anahtarı AutoRun ve değeriyle yeni bir anahtar-değer çiftinin üzerindeki yolda açın Registry Editor ve oluşturun

C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"

Makinenizi yeniden başlatın. İletiyle birlikte bir konsol penceresi görmüyorsanız Windows kayıt defteri anahtarlarıyla Hello from AutoRun! ilgili bir sorun var.

Yalnızca dağıtım grubu

  • --deploymentGroup - aracıyı dağıtım grubu aracısı olarak yapılandırma
  • --deploymentGroupName <name> - aracının katılacağını dağıtım grubunu belirtmek için ile --deploymentGroup kullanılır
  • --projectName <name> - proje adını ayarlamak için ile --deploymentGroup kullanılır
  • --addDeploymentGroupTags - dağıtım grubu etiketlerinin eklenmesi gerektiğini belirtmek için ile --deploymentGroup kullanılır
  • --deploymentGroupTags <tags> - ile dağıtım grubu aracısı için etiketlerin virgülle --addDeploymentGroupTags ayrılmış listesini belirtmek için kullanılır - örneğin "web, db"

Yalnızca ortamlar

  • --addvirtualmachineresourcetags - ortam kaynak etiketlerinin eklenmesi gerektiğini belirtmek için kullanılır
  • --virtualmachineresourcetags <tags> - ortam kaynak aracısı için etiketlerin virgülle ayrılmış listesini belirtmek için ile --addvirtualmachineresourcetags birlikte kullanılır - örneğin "web, db"

.\config --help her zaman en son gerekli ve isteğe bağlı yanıtları listeler.

Tanılama

Şirket içinde barındırılan aracınızla ilgili sorun yaşıyorsanız, tanılama çalıştırmayı deneyebilirsiniz. Aracıyı yapılandırdıktan sonra:

.\run --diagnostics

Bu işlem, sorunu gidermenize yardımcı olabilecek bir tanılama paketi aracılığıyla çalıştırılır. Tanılama özelliği aracısı 2.165.0 sürümünden itibaren kullanılabilir.

Şirket içinde barındırılan aracılar için ağ tanılama

Şirket içinde barındırılan aracıların ağ sorunlarını giderirken kullanılabilecek ek günlükleri toplamak için Agent.Diagnostic değerini true olarak ayarlayın. Daha fazla bilgi için bkz . Şirket içinde barındırılan aracılar için ağ tanılama

Diğer seçeneklerle ilgili yardım

Diğer seçenekler hakkında bilgi edinmek için:

.\config --help

Yardım, kimlik doğrulama alternatifleri ve katılımsız yapılandırma hakkında bilgi sağlar.

Özellikler

Aracınızın özellikleri kataloglanır ve havuza tanıtılır, böylece yalnızca işleyebilecekleri derlemeler ve yayınlar kendisine atanır. Bkz. Derleme ve sürüm aracısı özellikleri.

Çoğu durumda, aracıyı dağıttığınızda yazılım veya yardımcı programlar yüklemeniz gerekir. Genellikle geliştirme makinenizde kullandığınız yazılım ve araçları aracılarınıza yüklemeniz gerekir.

Örneğin, derlemeniz npm görevini içeriyorsa, havuzda npm yüklü bir derleme aracısı olmadığı sürece derleme çalışmaz.

Önemli

Özellikler tüm ortam değişkenlerini ve aracı çalıştırıldığında ayarlanan değerleri içerir. Aracı çalışırken bu değerlerden herhangi biri değişirse, yeni değerleri almak için aracının yeniden başlatılması gerekir. Bir aracıya yeni yazılım yükledikten sonra, derlemenin çalışabilmesi için yeni özelliğin havuzda görünmesi için aracıyı yeniden başlatmanız gerekir.

Ortam değişkenlerini özellik olarak dışlamak istiyorsanız, yoksaymak için virgülle ayrılmış bir değişken listesiyle bir ortam değişkeni VSO_AGENT_IGNORE ayarlayarak bunları belirleyebilirsiniz.

SSS

Aracım hangi Git sürümünü çalıştırıyor?

Varsayılan olarak, Windows aracısı aracı yazılımıyla birlikte gelen Git sürümünü kullanır. Microsoft, Aracı ile birlikte gelen Git sürümünü kullanmanızı önerir, ancak bu varsayılan davranışı geçersiz kılmak ve aracı makinenin yolda yüklü olduğu Git sürümünü kullanmak için çeşitli seçenekleriniz vardır.

  • İşlem hatlarınızda adlı System.PreferGitFromPath true bir işlem hattı değişkeni ayarlayın.
  • Şirket içinde barındırılan aracılarda, aracı kök dizininde .env adlı bir dosya oluşturabilir ve dosyaya bir System.PreferGitFromPath=true satır ekleyebilirsiniz. Daha fazla bilgi için bkz. Nasıl yaparım? her aracı için farklı ortam değişkenleri ayarlama?

İşlem hattı tarafından kullanılan Git sürümünü görmek için, aşağıdaki örnekte gösterildiği gibi işlem hattınızdaki bir checkout adımın günlüklerine bakabilirsiniz.

Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1

En son aracı sürümüne sahip olduğumdan emin Nasıl yaparım??

  1. Aracı havuzları sekmesine gidin:

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

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

      Kuruluş ayarları'nı seçin.

    3. Aracı havuzları'nı seçin.

      Aracı havuzları sekmesini seçin.

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

    2. Azure DevOps, Koleksiyon ayarları'nı seçin.

      Koleksiyon ayarları'nı seçin.

    3. Aracı havuzları'nı seçin.

      Aracı havuzları'nı seçin.

    1. Azure DevOps, Koleksiyon ayarları'nı seçin.

      Koleksiyon ayarları, 2019.

    2. Aracı havuzları'nı seçin.

      Aracı havuzları, 2019'u seçin.

  2. Aracıyı içeren havuza tıklayın.

  3. Aracını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'ı seçin ve aracıyı 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 bkz . Microsoft tarafından barındırılan aracı kullanma.

    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.

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

      İstediğiniz sekme olan 2019'ı seçin.

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

      İstenen aracıyı seçin, 2019.

    3. Özellikler sekmesini seçin.

      Özellikler sekmesini seçin, 2019.

  5. Yeteneği arayın Agent.Version . Bu değeri en son yayımlanan aracı sürümüyle karşılaştırabilirsiniz. Bkz . Azure Pipelines Aracısı ve listelenen en yüksek sürüm numarası için sayfayı denetleyin.

  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 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 (USB sürücüsü, Ağ aktarımı vb.) kullanarak her Azure DevOps Server Uygulama Katmanına aktarın. Aracı dosyalarını aşağıdaki klasörün altına yerleştirin:

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

Aracılar klasörü yoksa oluşturun.

  1. Artık hazırsınız! Azure DevOps Sunucunuz artık aracılar her güncelleştirildiğinde yerel dosyaları kullanacaktır. 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.

Güvenlik duvarı çalıştırıyorum ve kodum Azure Repos’da. Aracının hangi URL'lerle iletişim kurması gerekiyor?

Güvenlik duvarının arkasındaki güvenli bir ağda aracı çalıştırıyorsanız, aracının aşağıdaki URL'ler ve IP adresleriyle iletişim başlataadığından emin olun.

Etki alanı URL'si Açıklama
https://{organization_name}.pkgs.visualstudio.com Etki alanını kullanan kuruluşlar için Azure DevOps Paketleme API'si {organization_name}.visualstudio.com
https://{organization_name}.visualstudio.com Etki alanını kullanan {organization_name}.visualstudio.com kuruluşlar için
https://{organization_name}.vsblob.visualstudio.com Etki alanını kullanan kuruluşlar için Azure DevOps Telemetrisi {organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com Etki alanını kullanan {organization_name}.visualstudio.com kuruluşlar için Release Management Services
https://{organization_name}.vssps.visualstudio.com Etki alanını kullanan {organization_name}.visualstudio.com kuruluşlar için Azure DevOps Platform Hizmetleri
https://{organization_name}.vstmr.visualstudio.com Etki alanını kullanan {organization_name}.visualstudio.com kuruluşlar için Azure DevOps Test Yönetim Hizmetleri
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com Etki alanını kullanan dev.azure.com kuruluşlar için
https://*.vsassets.io CDN aracılığıyla Azure Artifacts
https://*.vsblob.visualstudio.com Etki alanını kullanan kuruluşlar için Azure DevOps Telemetrisi dev.azure.com
https://*.vssps.visualstudio.com Etki alanını kullanan dev.azure.com kuruluşlar için Azure DevOps Platform Hizmetleri
https://*.vstmr.visualstudio.com Etki alanını kullanan dev.azure.com kuruluşlar için Azure DevOps Test Yönetim Hizmetleri
https://app.vssps.visualstudio.com Etki alanını kullanan {organization_name}.visualstudio.com kuruluşlar için
https://dev.azure.com Etki alanını kullanan dev.azure.com kuruluşlar için
https://login.microsoftonline.com Microsoft Entra oturum açma
https://management.core.windows.net Azure Yönetim API'leri
https://vstsagentpackage.azureedge.net Aracı paketi

Kuruluşunuzun mevcut güvenlik duvarı veya IP kısıtlamalarıyla çalıştığından dev.azure.com *dev.azure.com emin olmak için açık olduğundan ve açık olduğundan emin olun ve izin verilmiş IP'lerinizi IP sürümünüz temelinde aşağıdaki IP adreslerini içerecek şekilde güncelleştirin. ve 13.107.9.183 IP adreslerini şu anda izin-listelediyseniz13.107.6.183, kaldırmanıza gerek olmadığından bunları yerinde bırakın.

IPv4 aralıkları

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

IPv6 aralıkları

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

Not

İzin verilen adresler hakkında daha fazla bilgi için bkz . İzin verilen adres listeleri ve ağ bağlantıları.

Aracıyı otomatik olarak imzalanan sertifikayla Nasıl yaparım? çalıştırın?

Not

Aracıyı otomatik olarak imzalanan bir sertifikayla çalıştırmak yalnızca Azure DevOps Server için geçerlidir.

Aracıyı otomatik olarak imzalanan sertifikayla çalıştırma

Aracıyı bir web ara sunucusunun arkasında Nasıl yaparım? çalıştırabilirsiniz?

Aracıyı bir web ara sunucusunun arkasında çalıştırma

Aracıyı yeniden başlatma Nasıl yaparım?

Aracıyı etkileşimli olarak çalıştırıyorsanız Etkileşimli çalıştırma başlığındaki yeniden başlatma yönergelerine bakın. Aracıyı hizmet olarak çalıştırıyorsanız Hizmet olarak çalıştır'daki adımları izleyerek aracıyı yeniden başlatın.

Nasıl yaparım? her aracı için farklı ortam değişkenleri ayarlandı mı?

Aracının kök dizini altında bir .env dosya oluşturun ve ayarlamak istediğiniz ortam değişkenlerini aşağıdaki biçimde dosyaya yerleştirin ve aracıyı yeniden başlatın.

MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4

Aracıyı bir web proxy'sini atlayacak ve Azure Pipelines'a bağlanacak şekilde yapılandırıyor Nasıl yaparım??

Aracının proxy'nizi atlayıp azure pipelines'a doğrudan bağlanmasını istiyorsanız, aracının aşağıdaki URL'lere erişmesini sağlamak için web proxy'nizi yapılandırmanız gerekir.

Etki alanını kullanan kuruluşlar için *.visualstudio.com :

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

Etki alanını kullanan kuruluşlar için dev.azure.com :

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

Kuruluşunuzun mevcut güvenlik duvarı veya IP kısıtlamalarıyla çalıştığından dev.azure.com *dev.azure.com emin olmak için açık olduğundan ve açık olduğundan emin olun ve izin verilmiş IP'lerinizi IP sürümünüz temelinde aşağıdaki IP adreslerini içerecek şekilde güncelleştirin. ve 13.107.9.183 IP adreslerini şu anda izin-listelediyseniz13.107.6.183, kaldırmanıza gerek olmadığından bunları yerinde bırakın.

IPv4 aralıkları

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

IPv6 aralıkları

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

Not

Bu yordam, aracının bir web proxy'sini atlamasına olanak tanır. Derleme işlem hattınız ve betikleriniz, derlemenizde çalıştırdığınız her görev ve araç için web proxy'nizi atlamayı işlemeye devam etmelidir.

Örneğin, bir NuGet görevi kullanıyorsanız, web proxy'nizi kullandığınız NuGet akışını barındıran sunucunun URL'sini atlamayı destekleyecek şekilde yapılandırmanız gerekir.

TFS kullanıyorum ve yukarıdaki bölümlerdeki URL'ler benim için çalışmıyor. Nereden yardım alabilirim?

Web sitesi ayarları ve güvenliği

Şirket içinde TFS kullanıyorum ve bu özelliklerden bazılarını görmüyorum. Neden?

Bu özelliklerden bazıları yalnızca Azure Pipelines'da kullanılabilir ve henüz şirket içinde kullanılamaz. TFS'nin en son sürümüne yükselttiyseniz bazı özellikler şirket içinde kullanılabilir.

Aracı hizmeti için etkinleştirme SERVICE_SID_TYPE_UNRESTRICTED nedir?

Windows Server'da aracı yazılımını yapılandırırken, aşağıdaki komut isteminden hizmet güvenlik tanımlayıcısını belirtebilirsiniz.

Enter enable SERVICE_SID_TYPE_UNRESTRICTED for agent service (Y/N) (press enter for N)

Aracı yazılımının önceki sürümleri, geçerli aracı sürümleri için varsayılan değer olan hizmet güvenlik tanımlayıcısı türünü SERVICE_SID_TYPE_NONEolarak ayarlar. Güvenlik hizmeti tanımlayıcı türünü olarak yapılandırmak için tuşuna SERVICE_SID_TYPE_UNRESTRICTEDbasın Y.

Daha fazla bilgi için bkz . SERVICE_SID_INFO yapısı ve Güvenlik tanımlayıcıları.