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:
- Dağıtım grubu oluşturduğunuzda otomatik olarak oluşturulan betiği çalıştırın.
- Vm'lerin her birine Azure Pipelines Aracısı Azure VM uzantısını yükleyin.
- Yayın işlem hattınızda ARM Şablonu dağıtım görevini kullanın.
Aracılar ve işlem hatları hakkında bilgi için bkz:
- Azure Pipelines'da paralel işler.
- Azure DevOps Fiyatlandırması
Yükleme betiğini hedef sunucularda çalıştırma
Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.
Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.
Sonraki sayfanın Komut satırını kullanarak makineleri kaydetme bölümünde hedef makine işletim sistemini seçin.
Kimlik doğrulaması için betikte Kişisel erişim belirteci kullan'ı seçin. Daha fazla bilgi edinin.
Betiği panoya kopyala'yı seçin.
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 successfully
bitmesini bekleyin.
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
Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.
Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.
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.
Uzantıyı yükle dikey penceresinde, kullanılacak Azure Pipelines aboneliğinin adını belirtin. Örneğin, URL ise
https://dev.azure.com/contoso
contoso belirtmeniz gerekir.Proje adını ve dağıtım grubu adını belirtin.
İsteğe bağlı olarak, aracı için bir ad belirtin. Belirtilmezse, ile
-DG
eklenen VM adını kullanır.Azure Pipelines'da kimlik doğrulaması için kullanılacak Kişisel Erişim Belirtecini (PAT) girin.
İ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.
Aracıyı bu VM'ye yüklemeye başlamak için Tamam'ı seçin.
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/contoso
yalnızcacontoso
- 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 TeamServicesAgentLinux
emin 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ı ve1.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:
Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.
Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.
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.
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.
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
Yeni bir grup oluşturmak için Azure Pipelines'ın Dağıtım grupları sekmesinde +Yeni'yi seçin.
Grup için bir ad girin ve isteğe bağlı olarak bir açıklama girip Oluştur'u seçin.
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.
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: Value
kullanılarak kopyalanır. Örneğin,Role: Web
.
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.
Aracıları yüklemek için yayın işlem hattından bir yayın oluşturun.
İlgili konular
Yardım ve destek
- Sorun giderme ipuçlarını keşfedin.
- Stack Overflow hakkında öneri alın.
- Azure DevOps Geliştirici Topluluğu sorularınızı gönderin, yanıt arayın veya bir özellik önerin.
- Azure DevOps için destek alın.