Dağıtım grupları için aracıları sağlama

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Dağıtım grupları , dağıtım için hedef makinelerden oluşan mantıksal grupları tanımlamayı ve gerekli aracıyı her makineye yüklemeyi kolaylaştırır. Bu makalede dağıtım grubu oluşturma ve aracıyı dağıtım grubunuzdaki her sanal veya fiziksel makineye yükleme ve sağlama açıklanmaktadır.

Aracıyı şu yollardan herhangi biriyle yükleyebilirsiniz:

Aracılar ve işlem hatları hakkında bilgi için bkz:

Yükleme betiğini hedef sunucularda çalıştırma

  1. Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.

  2. Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.

  3. Sonraki sayfanın Komut satırını kullanarak makineleri kaydetme bölümünde hedef makine işletim sistemini seçin.

  4. Kimlik doğrulaması için betikte Kişisel erişim belirteci kullan'ı seçin. Daha fazla bilgi edinin.

  5. Betiği panoya kopyala'yı seçin.

  6. Uygun izinlere sahip hesabı kullanarak her hedef makinede sırayla oturum açın ve:

    • bir Yönetici istrator PowerShell komut istemi açın, kopyaladığınız betiği yapıştırın, ardından makineyi bu gruba kaydetmek için yürütür.

    • Betiği çalıştırırken güvenli bir kanalın oluşturulamadığı bir hata alırsanız, Yönetici istrator PowerShell isteminde şu komutu yürütebilirsiniz:

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    • Aracı için etiketleri yapılandırmanız istendiğinde, kısmi dağıtımlar için gruptaki makinelerin alt kümelerini tanımlamak için kullanacağınız etiketleri basın Y ve girin.

      Atadığınız etiketler, dağıtım grubu bir Makine grubu üzerinde çalıştır işinde kullanıldığında dağıtımı belirli sunuculara sınırlamanıza olanak sağlar.

    • Kullanıcı hesabı istendiğinde, varsayılan değerleri kabul etmek için Return tuşuna basın.

    • betiğin iletisiyle Service vstsagent.{organization-name}.{computer-name} started successfullybitmesini bekleyin.

  7. Azure Pipelines'ın Dağıtım grupları sayfasında Makineler sekmesini açın ve aracıların çalıştığını doğrulayın. Yapılandırdığınız etiketler görünmüyorsa sayfayı yenileyin.

Azure Pipelines Aracısı Azure VM uzantısını yükleme

  1. Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.

  2. Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.

  3. Azure portalında, dağıtım grubuna dahil edilecek her VM için Uzantı dikey penceresini açın, + Ekle'yi seçerek Yeni kaynak listesini açın ve Azure Pipelines Aracısı'nı seçin.

    Azure Pipelines Aracısı uzantısını yükleme

  4. Uzantıyı yükle dikey penceresinde, kullanılacak Azure Pipelines aboneliğinin adını belirtin. Örneğin, URL ise https://dev.azure.com/contosocontoso belirtmeniz gerekir.

  5. Proje adını ve dağıtım grubu adını belirtin.

  6. İsteğe bağlı olarak, aracı için bir ad belirtin. Belirtilmezse, ile -DGeklenen VM adını kullanır.

  7. Azure Pipelines'da kimlik doğrulaması için kullanılacak Kişisel Erişim Belirtecini (PAT) girin.

  8. İsteğe bağlı olarak, aracıda yapılandırılacak etiketlerin virgülle ayrılmış bir listesini belirtin. Etiketler büyük/küçük harfe duyarlı değildir ve her biri 256 karakterden fazla olmamalıdır.

  9. Aracıyı bu VM'ye yüklemeye başlamak için Tamam'ı seçin.

  10. Uzantıyı bu dağıtım grubuna eklemek istediğiniz diğer vm'lere ekleyin.

ARM Şablonu dağıtım görevini kullanma

Önemli

Bu yönergeler görevin 2. sürümüne başvurur. Görev sürümünüzü 3'ten 2'ye değiştirin.

ARM Şablonu dağıtım görevini kullanarak, sanal makine oluştururken Azure Pipelines Aracısı Azure VM uzantısını yükleyen bir Azure Resource Manager (ARM) şablonu dağıtabilir veya kaynak grubunu, sanal makine oluşturulduktan sonra uzantıyı uygulayacak şekilde güncelleştirebilirsiniz. Alternatif olarak, aracıyı dağıtım gruplarına dağıtmak için ARM Şablonu dağıtım görevinin gelişmiş dağıtım seçeneklerini kullanabilirsiniz.

ARM şablonu kullanarak "Azure Pipelines Aracısı" Azure VM uzantısını yükleme

ARM şablonu, bir dizi Azure kaynağını bildirimli olarak tanımlayan bir JSON dosyasıdır. Şablon otomatik olarak okunabilir ve Kaynaklar Azure tarafından sağlanabilir. Tek bir şablonda birden çok hizmeti bağımlılıklarıyla birlikte dağıtabilirsiniz.

Windows VM için bir ARM şablonu oluşturun ve burada gösterildiği gibi kaynağın Microsoft.Compute/virtualMachine altına bir resources öğesi ekleyin:

"resources": [
  {
    "name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[parameters('location')]",
    "apiVersion": "2015-06-15",
    "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines/',
                      concat(parameters('vmNamePrefix'),copyindex()))]"
    ],
    "properties": {
      "publisher": "Microsoft.VisualStudio.Services",
      "type": "TeamServicesAgent",
      "typeHandlerVersion": "1.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "VSTSAccountName": "[parameters('VSTSAccountName')]",
        "TeamProject": "[parameters('TeamProject')]",
        "DeploymentGroup": "[parameters('DeploymentGroup')]",
        "AgentName": "[parameters('AgentName')]",
        "AgentMajorVersion": "auto|2|3",
        "Tags": "[parameters('Tags')]"
      },
      "protectedSettings": {
      "PATToken": "[parameters('PATToken')]"
     }
   }
  }
]

Not

Azure DevOps Server 2022'de için AgentMajorVersion izin verilebilen değerlerdir auto|N. Azure DevOps Server 2022.1 ve üzeri sürümlerde için AgentMajorVersion izin verilebilen değerlerdir auto|2|3.

"resources": [
  {
    "name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[parameters('location')]",
    "apiVersion": "2015-06-15",
    "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines/',
                      concat(parameters('vmNamePrefix'),copyindex()))]"
    ],
    "properties": {
      "publisher": "Microsoft.VisualStudio.Services",
      "type": "TeamServicesAgent",
      "typeHandlerVersion": "1.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "VSTSAccountName": "[parameters('VSTSAccountName')]",
        "TeamProject": "[parameters('TeamProject')]",
        "DeploymentGroup": "[parameters('DeploymentGroup')]",
        "AgentName": "[parameters('AgentName')]",
        "AgentMajorVersion": "auto|N",
        "Tags": "[parameters('Tags')]"
      },
      "protectedSettings": {
      "PATToken": "[parameters('PATToken')]"
     }
   }
  }
]

Where:

  • VSTSAccountName gereklidir. Kullanılacak Azure Pipelines aboneliği. Örnek: URL'niz ise https://dev.azure.com/contosoyalnızca contoso
  • TeamProject gereklidir. İçinde dağıtım grubunun tanımlandığı proje
  • DeploymentGroup gereklidir. Dağıtım aracısının kaydedileceği dağıtım grubu
  • AgentName isteğe bağlıdır. Belirtilmezse, eklenen VM adı -DG kullanılır
  • Etiketler isteğe bağlıdır. Aracıda ayarlanacak etiketlerin virgülle ayrılmış listesi. Etiketler büyük/küçük harfe duyarlı değildir ve her biri 256 karakterden fazla olmamalıdır
  • PATToken gereklidir. Aracıyı indirmek ve yapılandırmak için Azure Pipelines'da kimlik doğrulaması yapmak için kullanılan Kişisel Erişim Belirteci

Not

Linux VM'sine dağıtıyorsanız, koddaki parametresinin type olduğundan TeamServicesAgentLinuxemin olun.

Uzantı sorunlarını giderme

Uzantıyla ilgili bazı bilinen sorunlar şunlardır:

  • Durum dosyası çok büyükleşiyor: Bu sorun Windows VM'lerinde oluşur; Linux VM'lerinde gözlemlenmemiştir. Durum dosyası, uzantının geçerli durumunu açıklayan bir JSON nesnesi içerir. nesnesi, şimdiye kadar gerçekleştirilen işlemleri listelemek için bir yer tutucudur. Azure bu durum dosyasını okur ve durum nesnesini API isteklerine yanıt olarak geçirir. Dosya izin verilen en büyük boyuta sahiptir; boyut eşiği aşarsa Azure bunu tamamen okuyamaz ve durum için bir hata verir. Her makine yeniden başlatmada, bazı işlemler uzantı (daha önce başarıyla yüklenmiş olsa bile) tarafından gerçekleştirilir ve bu işlem durum dosyasını ekler. Makine çok sayıda yeniden başlatılırsa durum dosyası boyutu eşiği aşıyor ve bu da bu hataya neden oluyor. Hata iletisi şu şekildedir: Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes. Uzantı yüklemesi başarılı olmuş olabilir, ancak bu hata uzantının gerçek durumunu gizler.

    Makine yeniden başlatmaları ( 1.27.0.2 Windows uzantısı ve 1.21.0.1 Linux uzantısı için sürüm) için bu sorunu düzeltildi, bu nedenle yeniden başlatmada durum dosyasına hiçbir şey eklenmez. Düzeltme yapılmadan önce uzantınızla ilgili bu sorunu yaşadıysanız (yani, uzantının önceki sürümlerinde bu sorunu yaşıyordunuz) ve uzantınız düzeltmeyle birlikte sürümlere otomatik olarak eklendiyse, sorun devam eder. Bunun nedeni uzantı güncelleştirmesinde uzantının daha yeni sürümünün önceki durum dosyasıyla çalışmaya devam ediyor olmasıdır. Şu anda, ikincil sürüm otomatik güncelleştirmelerini kapatmak için uzantının önceki bir sürümünü bayrağıyla kullanıyorsanız veya büyük bir durum dosyası önceki bir uzantı sürümünden düzeltmeyi içeren daha yeni sürümlere taşındıysa veya başka bir nedenle bu sorunla karşılaşabilirsiniz. Bu durumda, uzantıyı kaldırıp yeniden yükleyerek bu sorunu aşabilirsiniz. Uzantının kaldırılması uzantı dizininin tamamını temizler, böylece yeni yükleme için yeni bir durum dosyası oluşturulur. Uzantının en son sürümünü yüklemeniz gerekir. Bu çözüm kalıcı bir düzeltmedir ve bunu takip ettikten sonra sorunla bir daha karşılaşmamalısınız.

  • Özel verilerle ilgili sorun: Bu sorun uzantıyla ilgili değildir, ancak bazı müşteriler işletim sistemi sürümlerini değiştirirken VM'de özel veri konumuyla ilgili karışıklık olduğunu bildirdi. Aşağıdaki geçici çözümü öneririz. Python 2 kullanım dışı bırakıldı, bu nedenle python 3 ile çalışmak için uzantıyı yaptık. Varsayılan olarak Python 3 yüklü olmayan önceki işletim sistemi sürümlerini kullanmaya devam ediyorsanız, uzantıyı çalıştırmak için PYTHON 3'ü VM'ye yüklemeniz veya python 3'ün varsayılan olarak yüklü olduğu işletim sistemi sürümlerine geçmeniz gerekir. Linux VM'lerinde, özel veriler önceki Microsoft Azure Linux Aracısı sürümleri ve daha yeni Microsoft Azure Linux Aracısı sürümleri /var/lib/waagent/CustomData için dosyasına /var/lib/waagent/ovf-env.xml kopyalanır. Dosya yeni işletim sistemi sürümünde mevcut olmadığından ancak diğer dosya mevcut olduğundan, bu iki yoldan yalnızca birini sabit kodlayan müşterilerin işletim sistemi sürümleri arasında geçiş yaparken sorunlarla karşılaştığı görülüyor. Bu nedenle, VM sağlamayı bozmamak için şablondaki her iki dosyayı da göz önünde bulundurmalısınız, böylece biri başarısız olursa diğeri başarılı olmalıdır.

ARM şablonları hakkında daha fazla bilgi için bkz . Azure Resource Manager şablonlarında kaynakları tanımlama.

Şablonu kullanmak için:

  1. Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.

  2. Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.

  3. Azure Pipelines'ın Yayınlar sekmesinde ARM Şablonu dağıtım görevini içeren bir aşama ile bir yayın işlem hattı oluşturun.

  4. Azure aboneliği, kaynak grubu adı, konum ve şablon bilgileri gibi görev için gereken parametreleri sağlayın, ardından yayın işlem hattını kaydedin.

  5. Aracıları yüklemek için yayın işlem hattından bir yayın oluşturun.

Gelişmiş dağıtım seçeneklerini kullanarak aracıları yükleme

  1. Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.

  2. Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.

  3. Azure Pipelines'ın Yayınlar sekmesinde ARM Şablonu dağıtım görevini içeren bir aşama ile bir yayın işlem hattı oluşturun.

  4. Görevi seçin ve Sanal makineler için gelişmiş dağıtım seçenekleri bölümünü genişletin. Bu bölümdeki parametreleri aşağıdaki gibi yapılandırın:

    • Önkoşulları Etkinleştir: Dağıtım Grubu Aracısı ile Yapılandır'ı seçin.

    • Azure Pipelines/TFS uç noktası: Hedefinize işaret eden mevcut bir Team Foundation Server/TFS hizmet bağlantısını seçin. Dağıtım grupları için aracı kaydı, Visual Studio projenize erişim gerektirir. Mevcut bir hizmet bağlantınız yoksa Ekle'yi seçin ve şimdi bir bağlantı oluşturun. Dağıtım Grubu ile sınırlı kapsamı olan bir Kişisel Erişim Belirteci (PAT) kullanacak şekilde yapılandırın.

    • Proje: Dağıtım grubunu içeren projeyi belirtin.

    • Dağıtım Grubu: Aracıların kaydedileceği dağıtım grubunun adını belirtin.

    • Azure VM etiketlerini aracılara kopyalama: Ayarlandığında (işaretlendiğinde), Azure VM'de yapılandırılmış olan tüm etiketler ilgili dağıtım grubu aracısına kopyalanır. Varsayılan olarak, tüm Azure etiketleri biçimi Key: Valuekullanılarak kopyalanır. Örneğin, Role: Web.

  5. Görev için gereken Azure aboneliği, kaynak grubu adı ve konum gibi diğer parametreleri sağlayın, ardından yayın işlem hattını kaydedin.

  6. Aracıları yüklemek için yayın işlem hattından bir yayın oluşturun.

Yardım ve destek