Azure Sanal Makine Ölçek Kümesi aracıları
Azure DevOps Services
Bundan böyle ölçek kümesi aracıları olarak adlandırılan Azure Sanal Makine Ölçek Kümesi aracıları, taleplerinizi karşılayacak şekilde otomatik olarak ölçeklendirilebilen şirket içinde barındırılan aracılar biçimidir. 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 de esnekliğe sahip olursunuz.
Microsoft tarafından barındırılan aracıları seviyorsanız ancak sundukları ile sınırlıysanız ölçek kümesi aracılarını göz önünde bulundurmanız gerekir. İşte bazı örnekler:
- Yerel Microsoft tarafından barındırılan aracılarda sunduğumuzdan daha fazla belleğe, işlemciye, daha fazla depolama alanına veya daha fazla GÇ'ye ihtiyacınız vardır.
- Makine öğrenmesi için belirli yönerge kümelerine sahip bir NCv2 sanal makinesine ihtiyacınız var.
- Gelen bağlantısı olmayan bir özel sanal ağdaki özel Azure App Service'e dağıtım yapmanız gerekiyor.
- Microsoft tarafından barındırılan aracıların sunucularınızla iletişim kurabilmesi için şirket güvenlik duvarını belirli IP adreslerine açmanız gerekir.
- Aracı makinelerin ağ bağlantısını kısıtlamanız ve yalnızca onaylanan sitelere ulaşmalarına izin vermeniz gerekir.
- Microsoft'tan ihtiyaçlarınızı karşılamaya yetecek kadar aracı alamıyorsunuz.
- İşleriniz Microsoft tarafından barındırılan aracının zaman aşımı süresini aşıyor.
- Microsoft tarafından barındırılan paralel işleri kuruluşunuzdaki tek tek projelere veya ekiplere bölümleyemezsiniz.
- Artımlı kaynak ve makine düzeyinde paket önbelleklerinin avantajından yararlanmak için aracıda birkaç ardışık iş çalıştırmak istiyorsunuz.
- Bir aracı işleri kabul etmeye başlamadan önce yapılandırmayı veya önbellek ısınmasını çalıştırmak istiyorsunuz.
Şirket içinde barındırılan aracıları seviyor ancak yönetmeyi basitleştirebiliyorsanız ölçek kümesi aracılarını göz önünde bulundurmanız gerekir. İşte bazı örnekler:
- Ayrılmış aracıları 24 saat çalıştırmak istemiyorsunuz. İşleri çalıştırmak için kullanılmayan aracı makinelerinin sağlamasını kaldırmak istiyorsunuz.
- İşlem hattınızda güvenilmeyen kod çalıştırıyor ve her işten sonra aracı makinelerinin görüntüsünü yeniden oluşturmak istiyorsunuz.
- Aracılarınız için temel görüntüyü düzenli aralıklarla güncelleştirmeyi basitleştirmek istiyorsunuz.
Not
Ölçek kümelerini kullanarak Mac aracılarını çalıştıramazsınız. Windows veya Linux aracılarını yalnızca bu şekilde çalıştırabilirsiniz.
Azure DevOps Services için VMSS aracı havuzlarının kullanılması yalnızca Azure Genel (genel hizmet) bulutu için desteklenir. Şu anda VMSS aracı havuzları diğer ulusal bulut tekliflerini desteklememektedir.
VmSS'yi birden çok havuzla ilişkilendirmemelisiniz.
Ölçek kümesini oluşturma
Ölçek kümesi aracıları oluşturmaya hazırlanırken, önce Azure portal bir Sanal Makine Ölçek Kümesi oluşturmanız gerekir. Azure Pipelines'ın yönetebilmesi için Sanal Makine Ölçek Kümesi'ni belirli bir şekilde oluşturmanız gerekir. Özellikle, Azure Pipelines'ın gelen işlem hattı işlerinin sayısına göre ölçeklendirmeyi nasıl gerçekleştireceğini belirleyebilmesi için otomatik ölçeklendirmeyi devre dışı bırakmanız gerekir. Ölçek kümesini oluşturmak için aşağıdaki adımları kullanmanızı öneririz.
Aşağıdaki örnekte, UbuntuLTS VM görüntüsü kullanılarak Azure Cloud Shell ile yeni bir kaynak grubu ve Sanal Makine Ölçek Kümesi oluşturulur.
Not
Bu örnekte ölçek kümesi için UbuntuLTS VM görüntüsü kullanılmıştır. Aracınızın temeli olarak özelleştirilmiş bir VM görüntüsüne ihtiyacınız varsa, ölçek kümesini oluşturmadan önce Özel görüntü, yazılım veya disk boyutuyla ölçek kümesi oluşturma bölümündeki adımları izleyerek özelleştirilmiş görüntüyü oluşturun.
adresinden Azure Cloud Shell'ye
https://shell.azure.com/
gidin.Varsayılan Azure aboneliğinizi doğrulamak için aşağıdaki komutu çalıştırın.
az account list -o table
İstediğiniz abonelik varsayılan olarak listelenmiyorsa istediğiniz aboneliği seçin.
az account set -s <your subscription ID>
Sanal Makine Ölçek Kümeniz için bir kaynak grubu oluşturun.
az group create \ --location westus \ --name vmssagents
Kaynak grubunuzda bir Sanal Makine Ölçek Kümesi oluşturun. Bu örnekte UbuntuLTS VM görüntüsü belirtilmiştir.
az vmss create \ --name vmssagentspool \ --resource-group vmssagents \ --image UbuntuLTS \ --vm-sku Standard_D2_v3 \ --storage-sku StandardSSD_LRS \ --authentication-type SSH \ --generate-ssh-keys \ --instance-count 2 \ --disable-overprovision \ --upgrade-policy-mode manual \ --single-placement-group false \ --platform-fault-domain-count 1 \ --load-balancer ""
Not
Azure Pipelines, ölçek kümesi fazla sağlamayı ve otomatik ölçeklendirmeyi desteklemez. Ölçek kümeniz için her iki özelliğin de devre dışı bırakıldıkdan emin olun.
Ölçek kümesini Azure Pipelines yönettiğinden aşağıdaki ayarlar gereklidir veya önerilir:
--disable-overprovision
-Gerekli--upgrade-policy-mode manual
-Gerekli--load-balancer ""
- Azure Pipelines, işleri ölçek kümesi aracı havuzundaki aracılara yönlendirmek için yük dengeleyici gerektirmez, ancak yük dengeleyici yapılandırmak, güvenlik duvarı kuralları için kullanabileceğiniz ölçek kümesi aracılarınızın IP adresini alma yollarından biridir. Ölçek kümesi aracılarınız için IP adresi almak için bir diğer seçenek de seçenekleri kullanarak--public-ip-address
ölçek kümenizi oluşturmaktır. Ölçek kümenizi yük dengeleyici veya genel IP adresiyle yapılandırma hakkında daha fazla bilgi için Sanal Makine Ölçek Kümeleri belgelerine ve az vmss create bölümüne bakın.--instance-count 2
- bu ayar gerekli değildir, ancak bir aracı havuzu oluşturmadan önce ölçek kümesinin tamamen işlevsel olduğunu doğrulama fırsatı verir. İki VM'nin oluşturulması birkaç dakika sürebilir. Daha sonra aracı havuzunu oluşturduğunuzda Azure Pipelines bu iki VM'yi siler ve yenilerini oluşturur.
Önemli
Bu betiği Windows üzerinde Azure CLI kullanarak çalıştırırsanız, içine şunun
""
--load-balancer ""
gibi tek tırnak içine almanız gerekir:--load-balancer '""'
VM boyutunuz Kısa ömürlü işletim sistemi disklerini destekliyorsa, Kısa ömürlü işletim sistemi disklerini etkinleştirmek için aşağıdaki parametreler isteğe bağlıdır ancak sanal makine yeniden oluşturma sürelerini iyileştirmek için önerilir.
--ephemeral-os-disk true
--os-disk-caching readonly
Önemli
Kısa ömürlü işletim sistemi diskleri tüm VM boyutlarında desteklenmez. Desteklenen VM boyutlarının listesi için bkz. Azure VM'leri için kısa ömürlü işletim sistemi diskleri.
Ölçek kümesini oluşturmak için Azure Market veya kendi özel görüntünüzden herhangi bir Linux veya Windows görüntüsünü seçin. Görüntüde Azure Pipelines aracısını önceden yüklemeyin. Azure Pipelines, aracıyı yeni sanal makineler sağlarken otomatik olarak yükler. Yukarıdaki örnekte düz
UbuntuLTS
bir görüntü kullandık. Özel görüntü oluşturma ve kullanma yönergeleri için bkz. SSS.Herhangi bir VM SKU'su ve depolama SKU'su seçin.
Not
Lisanslama konusunda dikkat edilmesi gerekenler, Microsoft tarafından barındırılan görüntüleri dağıtmamızı sınırlar. Ölçek kümesi aracılarınızda kullanmanız için bu görüntüleri sağlayamıyoruz. Ancak bu görüntüleri oluşturmak için kullandığımız betikler açık kaynak. Bu betikleri kullanabilir ve kendi özel görüntülerinizi oluşturabilirsiniz.
Ölçek kümenizi oluşturduktan sonra Azure portal ölçek kümenize gidin ve aşağıdaki ayarları doğrulayın:
Yükseltme ilkesi - El ile
Aşağıdaki Azure CLI komutunu çalıştırarak da bu ayarı doğrulayabilirsiniz.
az vmss show --resource-group vmssagents --name vmssagentspool --output table Name ResourceGroup Location Zones Capacity Overprovision UpgradePolicy -------------- --------------- ---------- ------- ---------- --------------- --------------- vmssagentspool vmssagents westus 0 False Manual
Ölçeklendirme - El ile ölçeklendirme
Önemli
Azure Pipelines örnek korumasını desteklemez. Ölçek daraltma ve ölçek kümesi eylemleri örnek korumalarının devre dışı bırakıldıklarından emin olun.
Ölçek kümesi aracı havuzunu oluşturma
Azure DevOps Projesi ayarlarınıza gidin, İşlem Hatları'nın altında Aracıhavuzları'nı seçin ve yeni bir aracı havuzu oluşturmak için Havuz ekle'yi seçin.
Önemli
Ölçek kümesi havuzunuzu Project ayarlarında veya Kuruluş ayarlarında oluşturabilirsiniz, ancak bir ölçek kümesi havuzunu sildiğinizde, bunu Project ayarlarından değil Kuruluş ayarlarından silmeniz gerekir.
Havuz türü için Azure Sanal Makine Ölçek Kümesi'ni seçin. Ölçek kümesini içeren Azure aboneliğini seçin, Yetkilendir'i seçin ve bu abonelikten istediğiniz Sanal Makine Ölçek Kümesi'ni seçin. Mevcut bir hizmet bağlantınız varsa, bunu abonelik yerine listeden seçebilirsiniz.
Önemli
Ölçek kümesi aracı havuzunu yapılandırmak için, seçili abonelikte Sahip veya Kullanıcı Erişimi Yöneticisi izinlerine sahip olmanız gerekir. Bu izinlerden birine sahipseniz ancak Yetki ver'i seçtiğinizde hata alırsanız sorun giderme bölümüne bakın.
Şu anda desteklenen tek hizmet bağlantısı, hizmet sorumlusu anahtarına dayalı bir Azure Resource Manager (ARM) hizmet bağlantısıdır. Sertifika kimlik bilgilerine veya Yönetilen Kimliğe dayalı ARM hizmeti bağlantıları başarısız olur. Aboneliğinizdeki mevcut ölçek kümelerini listelemeye çalıştığınızda aşağıdakine benzer bir hata görürsünüz:
Invalid Service Endpoint with Id <guid> and Scope <guid>
Bu abonelikten istediğiniz Sanal Makine Ölçek Kümesini seçin.
Aracı havuzunuz için bir ad belirtin.
Aşağıdaki seçenekleri yapılandırın:
- Her kullanımdan sonra sanal makineleri otomatik olarak yok edin - Her iş için yeni bir VM örneği kullanılır. Vm bir işi çalıştırdıktan sonra çevrimdışı olur ve başka bir iş almadan önce yeniden oluşturulur.
- İyi durumda olmayan bir aracıyı araştırmak üzere kaydetme - İyi durumda olmayan aracı VM'lerini silmek yerine sorun giderme amacıyla kaydedip kaydetmeyebilirsiniz.
- Ölçek kümesindeki en fazla sanal makine sayısı - Azure Pipelines aracıların sayısını otomatik olarak genişletecek ancak bu sınırı aşmayacaktır.
- Beklemede tutulacak aracı sayısı - Azure Pipelines aracı sayısına otomatik olarak ölçeklendirilir, ancak yeni işleri çalıştırmak için her zaman bu kadar çok aracı olmasını sağlar. Beklemede kalacak aracı sayısı değerini 0 olarak ayarlarsanız (örneğin, düşük hacimli işlerin maliyetini korumak için) Azure Pipelines vm'yi yalnızca işi olduğunda başlatır.
- Fazla boştaki aracıları silmeden önce dakikalar içinde gecikme - Derleme yükündeki değişkenliği gün boyunca hesaba katmak için, Azure Pipelines fazla boştaki aracıyı silmeden önce belirtilen süreyi bekler.
- VM'leri etkileşimli testler çalıştıracak şekilde yapılandırma (Yalnızca Windows Server İşletim Sistemi) - Windows aracıları otomatik oturum açma ve etkileşimli kullanıcı arabirimi ile otomatik oturum açmadan çalışacak şekilde yapılandırılabilir veya yükseltilmiş izinlerle çalışacak şekilde yapılandırılabilir. Etkileşimli kullanıcı arabirimiyle unelevated çalıştırmak için bu kutuyu işaretleyin. Her iki durumda da aracı kullanıcı Yöneticiler grubunun bir üyesidir.
Ayarlarınız yapılandırıldığında, aracı havuzunu oluşturmak için Oluştur'u seçin.
Ölçek kümesi aracı havuzunu kullanma
Ölçek kümesi aracı havuzu kullanmak diğer aracı havuzlarına benzer. Bunu klasik derleme, yayın veya YAML işlem hatlarında kullanabilirsiniz. Kullanıcı izinleri, işlem hattı izinleri, onaylar ve diğer denetimler diğer aracı havuzlarında olduğu gibi çalışır. Daha fazla bilgi için bkz . Aracı havuzları.
Önemli
Doğrudan Azure portal ölçek kümesinde değişiklik yaparken dikkatli olunmalıdır.
- Azure portal ölçek kümesi yapılandırma ayarlarının çoğunu değiştiremezsiniz. Azure Pipelines, ölçek kümesinin yapılandırmasını güncelleştirir. Ölçek kümesinde el ile yaptığınız tüm değişiklikler Azure Pipelines'ın çalışmasını etkileyebilir.
- Önce Azure Pipelines'da ölçek kümesi havuzunu silmeden bir ölçek kümesini yeniden adlandıramaz veya silemezsiniz.
Azure Pipelines ölçek kümesini nasıl yönetir?
Ölçek kümesi aracı havuzu oluşturulduktan sonra Azure Pipelines aracı makinelerini otomatik olarak ölçeklendirir.
Azure Pipelines, her 5 dakikada bir havuzdaki aracıların ve ölçek kümesindeki sanal makinelerin durumunu örnekler. Ölçeği daraltma veya genişletme kararı, o zamandaki boştaki aracıların sayısına bağlıdır. Bir aracı çevrimiçiyse ve bir işlem hattı işi çalıştırmıyorsa boşta olarak kabul edilir. Azure Pipelines, aşağıdaki koşullardan biri karşılanırsa bir ölçeği genişletme işlemi gerçekleştirir:
- Boşta aracı sayısı belirttiğiniz bekleme aracılarının sayısının altında kalıyor
- Kuyrukta bekleyen işlem hattı işlerine hizmet vermek için boşta aracı yok
Bu koşullardan biri karşılanırsa, Azure Pipelines VM sayısını büyütür. Ölçeği genişletme işlemi, havuz boyutu üst sınırının belirli bir yüzdesinin artışlarıyla gerçekleştirilir. Her adım için makinelerin oluşturulması için 20 dakika izin verin.
Azure Pipelines, boştaki aracı sayısı bekleme sayısını 30 dakikadan fazla aştığında aracılarda ölçeklendirilir ( fazla boştaki aracıları silmeden önce dakika cinsinden gecikme ile yapılandırılabilir).
Bunların tümünü bir örneğe koymak için, iki hazır bekleyen aracı ve dört maksimum aracı ile yapılandırılmış bir ölçek kümesi aracı havuzunu düşünün. Her kullanımdan sonra VM'yi yıkmak istediğinizi varsayalım. Ayrıca, ölçek kümesinde başlangıç için vm olmadığını varsayalım.
Boşta aracı sayısı 0 olduğundan ve boşta aracı sayısı 2 olan bekleme sayısının altında olduğundan Azure Pipelines ölçeği genişletir ve ölçek kümesine iki VM ekler. Bu aracılar çevrimiçi olduktan sonra iki boşta aracı olacaktır.
Bir işlem hattı işinin geldiğini ve aracılardan birine ayrıldığını varsayalım.
Şu anda boşta olan aracıların sayısı 1'dir ve bu da bekleme sayısı olan 2'den azdır. Bu nedenle Azure Pipelines ölçeği genişletip 2 VM daha ekler (bu örnekte kullanılan artım boyutu). Şu anda havuzda üç boşta aracı ve bir meşgul aracı vardır.
İlk temsilcideki işin tamamlandığını belirtelim. Azure Pipelines bu aracıyı çevrimdışına alarak makineyi yeniden oluşturur. Birkaç dakika sonra yeni bir görüntüyle geri gelir. Şu anda dört boşta aracımız olacak.
30 dakika boyunca başka bir iş gelmezse ( fazla boştaki aracıları silmeden önce dakika cinsinden gecikme ile yapılandırılabilir), Azure Pipelines gerekenden daha fazla boşta aracı olduğunu belirler. Bu nedenle, havuzda iki aracıya ölçeklendirilir.
Bu işlem boyunca, Azure Pipelines'ın hedefi beklemede istenen boşta aracı sayısına ulaşmaktır. Havuzların ölçeği yavaş yavaş genişletilir ve daraltılır. Bir gün boyunca istekler sabah kuyruğa alınırken havuz ölçeği genişletilir ve akşamları yük yavaşladıkça ölçeği daraltılır. Azure Pipelines'ın belirttiğiniz kısıtlamalarla aşamalı olarak yakınsadığı için, çeşitli zamanlarda istediğinizden daha fazla boşta aracı gözlemleyebilirsiniz.
Not
Azure Pipelines'ın sanal makinelerde ölçeği genişletmesi veya ölçeği genişletmesi bir saat veya daha fazla sürebilir. Azure Pipelines adımlar halinde ölçeği genişletecek, hataların işlemlerini izleyecek ve kullanılamayan makineleri silerek ve zaman içinde yeni makineler oluşturarak tepki verecek. Bu düzeltme işlemi bir saatten fazla sürebilir.
En yüksek kararlılığı elde etmek için ölçek kümesi işlemleri sırayla gerçekleştirilir. Örneğin, havuzun ölçeğinin genişletilmesi gerekiyorsa ve silinecek iyi durumda olmayan makineler varsa, Azure Pipelines önce havuzun ölçeğini genişletecektir. Havuzun ölçeği, bekleme durumundaki boşta kalan aracı sayısına ulaşmak için genişletildikten sonra, İyi durumda olmayan aracıyı araştırma için kaydet ayarına bağlı olarak iyi durumda olmayan makineler silinir. Daha fazla bilgi için bkz. İyi durumda olmayan aracılar.
Örnekleme boyutu 5 dakika olduğundan, tüm aracılar kısa bir süre için işlem hatlarını çalıştırabilir ve ölçeği genişletme gerçekleşmez.
İşlem Hattı Aracı Yapılandırmasını Özelleştirme
Ölçek kümeniz için işletim sistemi özel görüntünüzde ortam değişkenleri tanımlayarak Azure Pipelines Aracısı'nın yapılandırmasını özelleştirebilirsiniz. Örneğin, ölçek kümesi aracısı çalışma dizini varsayılan olarak Windows için C:\a ve Linux için /agent/_work olarak ayarlanır. Çalışma dizinini değiştirmek istiyorsanız, istenen çalışma dizinine sahip VSTS_AGENT_INPUT_WORK adlı bir ortam değişkeni ayarlayın. Daha fazla bilgi İşlem Hatları Aracısı Katılımsız Yapılandırma belgelerinde bulunabilir. Bazı örnekler:
VSTS_AGENT_INPUT_WORK
VSTS_AGENT_INPUT_PROXYURL
VSTS_AGENT_INPUT_PROXYUSERNAME
VSTS_AGENT_INPUT_PROXYPASSWORD
Önemli
pipelines aracısını özelleştirirken dikkatli olunmalıdır. Bazı ayarlar diğer gerekli ayarlarla çakışarak aracının kaydedilememesine ve VM'nin silinmesine neden olur. Bu ayarlar ayarlanmamalı veya değiştirilmemelidir:
VSTS_AGENT_INPUT_URL
VSTS_AGENT_INPUT_AUTH
VSTS_AGENT_INPUT_TOKEN
VSTS_AGENT_INPUT_USERNAME
VSTS_AGENT_INPUT_PASSWORD
VSTS_AGENT_INPUT_POOL
VSTS_AGENT_INPUT_AGENT
VSTS_AGENT_INPUT_RUNASSERVICE
- ... ve Dağıtım Gruplarıyla ilgili her şeyi.
Özel Betik Uzantısı aracılığıyla Sanal Makine Başlatmayı Özelleştirme
Kullanıcılar, bu makineler işlem hattı işlerini çalıştırmaya başlamadan önce kendi ölçek kümesi aracı makinelerinde başlangıç betikleri yürütmek isteyebilir. Başlangıç betikleri için bazı yaygın kullanım örnekleri arasında yazılım yükleme, önbellekleri ısıtma veya depoları getirme sayılabilir. Windows için Özel Betik Uzantısı'nı veya Linux için Özel Betik Uzantısı'nı yükleyerek başlangıç betiklerini yürütebilirsiniz. Bu uzantı, oluşturulduktan veya yeniden oluşturulduktan hemen sonra ölçek kümesindeki her sanal makinede yürütülür. Azure Pipelines aracı uzantısı yürütülmeden önce özel betik uzantısı yürütülür.
Linux için özel betik uzantısı oluşturmaya yönelik bir örnek aşağıda verilmiştir.
az vmss extension set \
--vmss-name <scaleset name> \
--resource-group <resource group> \
--name CustomScript \
--version 2.0 \
--publisher Microsoft.Azure.Extensions \
--settings '{ \"fileUris\":[\"https://<myGitHubRepoUrl>/myScript.sh\"], \"commandToExecute\": \"bash ./myScript.sh /myArgs \" }'
Aşağıda, Windows için özel betik uzantısı oluşturma örneği verilmiştir.
az vmss extension set \
--vmss-name <scaleset name> \
--resource-group <resource group> \
--name CustomScriptExtension \
--version 1.9 \
--publisher Microsoft.Compute \
--settings '{ \"FileUris\":[\"https://<myGitHubRepoUrl>/myscript.ps1\"], \"commandToExecute\": \"Powershell.exe -ExecutionPolicy Unrestricted -File myscript.ps1 -myargs 0 \" }'
Önemli
Vm'nin VM oluşturma işlemini tamamlaması için Özel Betik Uzantısı'nda yürütülen betiklerin çıkış kodu 0 ile döndürülmesi gerekir. Özel betik uzantısı bir özel durum oluşturursa veya sıfır olmayan bir çıkış kodu döndürürse, Azure Pipeline uzantısı yürütülmeyecek ve VM Azure DevOps aracı havuzuna kaydedilmeyecektir.
Ölçek Kümesi Aracısı Yaşam Döngüsü
Azure Pipelines Sanal Makine Ölçek Kümesi Aracısı için işlem akışı aşağıdadır
Azure DevOps Ölçek Kümesi Aracı Havuzu boyutlandırma işi, havuzda çok az boşta aracı olduğunu ve ölçeği genişletmesi gerektiğini belirler. Azure Pipelines, ölçek kümesi kapasitesini artırmak için Azure Ölçek Kümeleri'ne çağrı yapar.
Azure Ölçek Kümesi yeni sanal makineleri oluşturmaya başlar. Sanal makineler çalıştırıldıktan sonra, Azure Ölçek Kümeleri yüklü vm uzantılarını sırayla yürütür.
Özel Betik Uzantısı yüklüyse, Azure Pipelines Aracısı uzantısından önce yürütülür. Özel Betik Uzantısı sıfır olmayan bir çıkış kodu döndürürse, VM oluşturma işlemi durdurulup silinir.
Azure Pipelines Aracısı uzantısı yürütülür. Bu uzantı, Azure Pipelines Aracısı'nın en son sürümünü ve yapılandırma betiğinin en son sürümünü indirir. Yapılandırma betikleri aşağıdaki biçimlere sahip URL'lerde bulunabilir:
Yapılandırma betiği, işletim sistemi Windows Server veya Linux ise adlı
AzDevOps
bir yerel kullanıcı oluşturur. Windows 10 İstemci işletim sistemi için aracı LocalSystem olarak çalışır. Betik daha sonra Azure Pipelines Aracısı'nı çözer, yükler ve yapılandırr. Yapılandırmanın bir parçası olarak aracı Azure DevOps aracı havuzuna kaydolup Aracı havuzu listesinde Çevrimdışı durumda görünür.Çoğu senaryoda, yapılandırma betiği aracıyı yerel kullanıcı
AzDevOps
olarak çalıştırmak üzere hemen başlatır. Aracı Çevrimiçi olur ve işlem hattı işlerini çalıştırmaya hazırdır.Havuz etkileşimli kullanıcı arabirimi için yapılandırıldıysa, aracı yapılandırıldıktan sonra sanal makine yeniden başlatılır. Yeniden başlatmadan sonra yerel kullanıcı otomatik olarak oturum açar ve işlem hatları aracısı başlatılır. Ardından aracı çevrimiçi olur ve işlem hattı işlerini çalıştırmaya hazırdır.
Özel görüntü, yazılım veya disk boyutuyla ölçek kümesi oluşturma
Yalnızca genel kullanıma açık bir Azure görüntüsü kullanarak varsayılan 128 GB işletim sistemi diski ile bir ölçek kümesi oluşturmak istiyorsanız, doğrudan 10. adıma atlayın ve ölçek kümesini oluşturmak için genel görüntü adını (UbuntuLTS, Win2019DataCenter vb.) kullanın. Aksi takdirde VM görüntünüzü özelleştirmek için bu adımları izleyin.
İstediğiniz işletim sistemi görüntüsüne sahip bir VM oluşturun ve isteğe bağlı olarak işletim sistemi disk boyutunu 128 GB'tan 'a
<myDiskSizeGb>
genişletin.Kullanılabilir bir Azure Görüntüsü ile başlıyorsanız, örneğin <myBaseImage> = (Win2019DataCenter, UbuntuLTS):
az vm create --resource-group <myResourceGroup> --name <MyVM> --image <myBaseImage> --os-disk-size-gb <myDiskSize> --admin-username myUserName --admin-password myPassword
Genelleştirilmiş bir VHD ile başlıyorsanız:
İlk olarak, istenen boyutta yönetilmeyen bir diske sahip VM'yi oluşturun ve ardından yönetilen diske dönüştürün:
az vm create --resource-group <myResourceGroup> --name <MyVM> --image <myVhdUrl> --os-type windows --os-disk-size-gb <myDiskSizeGb> --use-unmanaged-disk --admin-username <myUserName> --admin-password <myPassword> --storage-account <myVhdStorageAccount>
VM'yi kapatma
az vm stop --resource-group <myResourceGroup> --name <MyVM>
VM'yi serbest bırakma
az vm deallocate --resource-group <myResourceGroup> --name <MyVM>
Yönetilen diske dönüştürme
az vm convert --resource-group <myResourceGroup> --name <MyVM>
VM’yi yeniden başlatın
az vm start --resource-group <myResourceGroup> --name <MyVM>
Görüntüyü özelleştirmek için VM'nin genel IP adresine Uzak Masaüstü (veya SSH). RDP (3389) veya SSH (22) bağlantı noktalarının engelini kaldırmak için güvenlik duvarında bağlantı noktalarını açmanız gerekebilir.
Windows - 128 GB'tan büyükse
<MyDiskSizeGb>
, işletim sistemi disk boyutunu tarafından<MyDiskSizeGb>
belirttiğiniz disk boyutunu dolduracak şekilde genişletin.DiskPart aracını yönetici olarak açın ve şu DiskPart komutlarını çalıştırın:
list volume
(birimleri görmek için)select volume 2
(hangi birimin işletim sistemi sürücüsü olduğuna bağlıdır)extend size 72000
(sürücüyü 128 GB'tan 200 GB'a kadar 72 GB genişletmek için)
VM'ye istediğiniz ek yazılımları yükleyin.
İşlem hattı aracısı kullanıcısının izinlerini özelleştirmek için adlı
AzDevOps
bir kullanıcı oluşturabilir ve bu kullanıcıya ihtiyacınız olan izinleri vekleyebilirsiniz. Bu kullanıcı, henüz yoksa ölçek kümesi aracısı başlangıç betiği tarafından oluşturulur.Özelleştirmeler bittiğinde VM'yi yeniden başlatın
VM'yi genelleştirin.
- Windows - Yönetici konsolu penceresinden:
C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /shutdown
- Linux:
sudo waagent -deprovision+user -force
Önemli
VM'nin genelleştirme ve kapatma işlemini tamamlanmasını bekleyin. VM durdurulana kadar devam etmeyin. 60 dakika izin ver.
- Windows - Yönetici konsolu penceresinden:
VM'yi serbest bırakma
az vm deallocate --resource-group <myResourceGroup> --name <MyVM>
VM'yi Genelleştirilmiş olarak işaretleme
az vm generalize --resource-group <myResourceGroup> --name <MyVM>
Genelleştirilmiş görüntüyü temel alan bir VM Görüntüsü oluşturun. Mevcut bir ölçek kümesi görüntüsünü güncelleştirmek için bu adımları gerçekleştirirken çıktıdaki görüntü kimliği URL'sini not edin.
az image create --resource-group <myResourceGroup> --name <MyImage> --source <MyVM>
Özel VM görüntüsüne göre ölçek kümesi oluşturma
az vmss create --resource-group <myResourceGroup> --name <myScaleSet> --image <MyImage> --admin-username <myUsername> --admin-password <myPassword> --instance-count 2 --disable-overprovision --upgrade-policy-mode manual --load-balancer '""'
Ölçek kümesinde oluşturulan her iki VM'nin de çevrimiçi olduğunu, farklı adlara sahip olduğunu ve Başarılı durumuna ulaştığını doğrulayın
Artık bu ölçek kümesini kullanarak aracı havuzu oluşturmaya hazırsınız.
Mevcut ölçek kümesini yeni bir özel görüntüyle güncelleştirme
Mevcut bir ölçek kümesindeki görüntüyü güncelleştirmek için, özel işletim sistemi görüntüsünü oluşturma adımının yukarı az image create
kısmındaki Özel görüntü, yazılım veya disk boyutuyla ölçek kümesi oluşturma bölümündeki adımları izleyin. komutundan alınan ID özelliği URL'sini az image create
not edin. Ardından aşağıdaki örnekte gösterildiği gibi ölçek kümesini yeni görüntüyle güncelleştirin. Ölçek kümesi görüntüsü güncelleştirildikten sonra, ölçek kümesindeki gelecekteki tüm VM'ler yeni görüntüyle oluşturulur.
az vmss update --resource-group <myResourceGroup> --name <myScaleSet> --set virtualMachineProfile.storageProfile.imageReference.id=<id url>
Desteklenen İşletim Sistemleri
Ölçek kümesi aracıları şu anda Ubuntu Linux, Windows Server/DataCenter 2016/2019 ve Windows 10 istemcisini desteklemektedir.
Bilinen sorunlar
- Debian veya RedHat Linux dağıtımları desteklenmez. Sadece Ubuntu.
- Windows 10 istemcisi, işlem hattı aracısını yerel kullanıcı olarak çalıştırmayı desteklemez ve bu nedenle aracı kullanıcı arabirimiyle etkileşim kuramaz. Aracı bunun yerine Yerel Hizmet olarak çalışır.
Sorun giderme
Azure DevOps Projesi ayarlarınıza gidin, İşlem Hatları'nın altında Aracıhavuzları'nı seçin ve aracı havuzunuzu seçin. Tanılama etiketli sekmeyi seçin.
Tanılama sekmesi, Azure Ölçek Kümenizdeki VM'leri oluşturmak, silmek veya yeniden oluşturmak için Azure DevOps tarafından yürütülen tüm eylemleri gösterir. Tanılama ayrıca bu eylemleri gerçekleştirmeye çalışırken karşılaşılan hataları günlüğe kaydeder. Ölçek kümenizin ölçeği genişletmek için yeterli kaynağa sahip olduğundan emin olmak için hataları gözden geçirin. Azure aboneliğiniz VM'lerde, CPU çekirdeklerinde, disklerde veya IP Adreslerinde kaynak sınırına ulaştıysa, bu hatalar burada gösterilir.
İyi Durumda Olmayan Aracılar
Aracılar veya sanal makineler başlatılamıyorsa, Azure DevOps'a bağlanmıyorsa veya beklenmedik şekilde çevrimdışı oluyorsa, Azure DevOps hataları Aracı Havuzunun Tanılama sekmesine günlüğe kaydeder ve ilişkili sanal makineyi silmeye çalışır. Ağ yapılandırması, görüntü özelleştirme ve bekleyen yeniden başlatmalar bu sorunlara neden olabilir. Hata ayıklamak ve günlükleri toplamak için VM'ye bağlanmak araştırmaya yardımcı olabilir.
Azure DevOps'un iyi durumda olmayan bir aracı VM'yi araştırmak üzere kaydetmesini ve iyi durumda olmadığını algıladığında vm'yi otomatik olarak silmesini istemiyorsanız Azure DevOps Projesi ayarlarınıza gidin, İşlem Hatları'nın altında Aracı havuzları'nı seçin ve aracı havuzunuzu seçin. Ayarlar'ı seçin, İyi durumda olmayan bir aracıyı araştırmak üzere kaydet seçeneğini belirleyin ve Kaydet'i seçin.
Artık ölçek kümesinde iyi durumda olmayan bir aracı algılandığında Azure DevOps bu aracıyı ve ilişkili sanal makineyi kaydeder. Kaydedilen aracı Aracı havuzu kullanıcı arabiriminin Tanılama sekmesinde görünür. Azure DevOps Projesi ayarlarınıza gidin, İşlem Hatları'nın altında Aracıhavuzları'nı seçin, aracı havuzunuzu seçin, Tanılama'yı seçin ve aracı adını not edin.
Örnekler listesinde Azure portal aracılığıyla Azure Sanal Makine Ölçek Kümenizde ilişkili sanal makineyi bulun.
Örneği seçin, Bağlan'ı seçin ve araştırmanızı gerçekleştirin.
Araştırmanızı tamamladığınızda kaydedilen aracıyı silmek için Azure DevOps Projesi ayarlarınıza gidin, İşlem Hatları'nın altında Aracı havuzları'nı seçin ve aracı havuzunuzu seçin. Tanılama etiketli sekmeyi seçin. Aracıyı araştırma için kaydedilen Aracılar kartında bulun ve Sil'i seçin. Bu, aracıyı havuzdan kaldırır ve ilişkili sanal makineyi siler.
SSS
- Microsoft tarafından barındırılan aracılar için kullanılan görüntüleri nerede bulabilirim?
- Ui testlerini çalıştırmak için ölçek kümesi aracılarını Nasıl yaparım? yapılandırabilirsiniz?
- Aracıları nasıl silebilirim?
- Ölçek kümesi aracı havuzunu beklemede sıfır aracı olacak şekilde yapılandırabilir miyim?
- Ölçek kümesi aracılarının maliyeti nedir?
- Bazı yaygın sorunlar ve çözümleri nelerdir?
- Çeşitli zamanlarda istenenden daha fazla boşta aracı gözlemlersiniz
- VMSS ölçeğini artırma işlemi beklenen beş dakikalık aralıkta gerçekleşmiyor
- Azure DevOps Linux VM Ölçek Kümesi sık sık işlem hattını başlatamıyor
- Aracı havuzu için her kullanımdan sonra sanal makineleri otomatik olarak yok etme seçeneğini denetlersiniz, ancak VM'lerin olması gerektiği gibi yeniden görüntülenmediğini ve kuyruğa alındıklarında yalnızca yeni işleri aldıklarını görürsünüz
- VMSS, VM yeniden başlatılırsa aracıyı çevrimdışı olarak gösterir
- Maliyet yönetiminde VMSS için _AzureDevOpsElasticPoolTimeStamp gibi birden çok etiket görebilirsiniz
- Yeni bir ölçek kümesi aracı havuzu oluşturamaz ve aynı ada sahip bir havuzun zaten var olduğunu belirten bir hata iletisi alamazsınız
- VMSS bakım işi aracılarda çalışmıyor veya günlükleri almıyor
- VMSS betiğinizde birincil yönetici olarak belirtirseniz
AzDevOps
, ölçek kümesi örneklerinde aracı yapılandırmalarıyla ilgili sorunlar gözlemleyebilirsiniz - Ağ güvenliği ve güvenlik duvarı yapılandırmaları nedeniyle ölçek kümesi örneklerinde aracı uzantısı yüklemesi başarısız oluyor
- Havuzumun boyutunu artırmak istiyorum. Neleri dikkate almalı?
Microsoft tarafından barındırılan aracılar için kullanılan görüntüleri nerede bulabilirim?
Lisanslama konusunda dikkat edilmesi gerekenler, Microsoft tarafından barındırılan görüntüleri dağıtmamızı sınırlar. Ölçek kümesi aracılarınızda kullanmanız için bu görüntüleri sağlayamıyoruz. Ancak bu görüntüleri oluşturmak için kullandığımız betikler açık kaynak. Bu betikleri kullanabilir ve kendi özel görüntülerinizi oluşturabilirsiniz.
Ui testlerini çalıştırmak için ölçek kümesi aracılarını Nasıl yaparım? yapılandırabilirsiniz?
Windows Server işletim sistemi ile bir Ölçek Kümesi oluşturun ve Aracı Havuzu oluşturulurken "Vm'leri etkileşimli testleri çalıştırmak için yapılandırma" seçeneğini belirleyin.
Aracıları nasıl silebilirim?
Azure DevOps Projesi ayarlarınıza gidin, İşlem Hatları'nın altında Aracıhavuzları'nı seçin ve aracı havuzunuzu seçin. Aracılar etiketli sekmeyi seçin. Aracıyı devre dışı bırakmak için 'Etkin' iki durumlu düğmesine tıklayın. Devre dışı bırakılan aracı, çalışmakta olduğu işlem hattını tamamlar ve ek çalışma yapmaz. Geçerli işlem hattı işi tamamlandıktan birkaç dakika sonra aracı silinir.
Ölçek kümesi aracı havuzunu beklemede sıfır aracı olacak şekilde yapılandırabilir miyim?
Evet, beklemede tutulacak aracı sayısı değerini sıfır olarak ayarlarsanız (örneğin, düşük hacimli işlerin maliyetini korumak için) Azure Pipelines vm'yi yalnızca işi olduğunda başlatır.
Ölçek kümesi aracılarının maliyeti nedir?
Ölçek kümesi aracılarının fiyatlandırması diğer şirket içi barındırılan aracılara benzer. Aracı yazılımının ve işlerinin çalıştırıldığı altyapıyı sağlar ve paralel işler satın alarak eşzamanlı olarak çalışabilecek istenen iş sayısı için ödeme yapabilirsiniz.
Ölçek kümesi aracıları için aracı yazılımını ve işlerini çalıştırma altyapısı Azure Sanal Makine Ölçek Kümeleri ve fiyatlandırma Sanal Makine Ölçek Kümeleri fiyatlandırma bölümünde açıklanmıştır.
Paralel iş satın alma bilgileri için bkz. Paralel işleri yapılandırma ve ödeme.
Bazı yaygın sorunlar ve çözümleri nelerdir?
Çeşitli zamanlarda istenenden daha fazla boşta aracı gözlemlersiniz
Bunun nedenini daha iyi anlamak için bkz. Azure Pipelines ölçek kümesini nasıl yönetir?. Ölçeklendirme işlemi boyunca Azure Pipelines'ın hedefi, istenen sayıda boşta kalmış bekleme durumunda aracıya ulaşmaktır. Havuzların ölçeği yavaş yavaş genişletilir ve daraltılır. Gün boyunca, havuzun ölçeği sabah istekler kuyruğa alındıkça genişletilir ve akşam yük azalırken daraltılır. Azure Pipelines belirttiğiniz kısıtlamalara aşamalı olarak yaklaştığından bu beklenen bir davranıştır.
VMSS ölçeğini artırma işlemi beklenen beş dakikalık aralıkta gerçekleşmiyor
Ölçeklendirme işi beş dakikada bir çalıştırılır, ama tek bir işlem işleniyorsa ölçeğin beş dakika içinde artırılmadığını gözlemleyebilirsiniz; bu durum şu anda tasarım gereğidir.
Azure DevOps Linux VM Ölçek Kümesi sık sık işlem hattını başlatamıyor
Ölçek kümesi aracılarında sorunlarla karşılaşıldığında ilk bakılması gereken yer aracı havuzundaki Tanılamalar sekmesidir.
Ayrıca iyi durumda olmayan sanal makineyi hata ayıklama amacıyla kaydetmeyi göz önünde bulundurun. Daha fazla bilgi için bkz. İyi Durumda Olmayan Aracılar.
Kayıtlı aracılar, siz silmediğiniz sürece oradadır. Aracı 10 dakika içinde çevrimiçi olmazsa, iyi durumda değil olarak işaretlenir ve mümkünse kaydedilir. Yalnızca bir VM kayıtlı durumda tutulur. Aracı beklenmedik bir şekilde çevrimdışı olursa (VM yeniden başlatması veya görüntüde bir sorun olması nedeniyle), araştırma için kaydedilmez.
Yalnızca aracıların başlatılamayan VM'ler kaydedilir. Vm oluşturma sırasında başarısız durumdaysa kaydedilmez. Bu durumda, Tanılama sekmesindeki ileti "başlatılamadı" yerine "iyi durumda olmayan makine siliniyor" iletisidir.
Aracı havuzu için her kullanımdan sonra sanal makineleri otomatik olarak yok etme seçeneğini denetlersiniz, ancak VM'lerin olması gerektiği gibi yeniden görüntülenmediğini ve kuyruğa alındıklarında yalnızca yeni işleri aldıklarını görürsünüz
Her derlemeden sonra VM'yi kapatma seçeneği yalnızca Windows Server'da ve desteklenen Linux görüntülerinde çalışır. Windows istemci görüntülerinde desteklenmez.
VMSS, VM yeniden başlatılırsa aracıyı çevrimdışı olarak gösterir
VM yeniden başlatılırsa aracıların çevrimdışı olarak gösterilmesi beklenen davranıştır. Aracı hizmeti yalnızca sistemli bağlamda çalışır. Öte yandan makine herhangi bir nedenle yeniden başlatılırsa bunun iyi durumda olmayan bir VM olduğu kabul edilir ve silinir. Daha fazla bilgi için bkz. İyi Durumda Olmayan Aracılar.
Aracılar veya sanal makineler başlatılamıyorsa, Azure DevOps'a bağlanamıyorsa veya beklenmedik şekilde çevrimdışı oluyorsa, Azure DevOps hataları Aracı Havuzunun Tanılama sekmesine günlüğe kaydeder ve ilişkili sanal makineyi silmeye çalışır. Ağ yapılandırması, görüntü özelleştirme ve bekleyen yeniden başlatmalar bu sorunlara neden olabilir. Sorunu önlemek için görüntüde yazılım güncelleştirmesini devre dışı bırakın. Ayrıca sorunun araştırılmasına yardımcı olmak için VM'ye bağlanıp hata ayıklaması yapabilir ve günlükleri toplayabilirsiniz.
Maliyet yönetiminde VMSS için _AzureDevOpsElasticPoolTimeStamp gibi birden çok etiket görebilirsiniz
Havuz oluşturulduğunda ölçek kümesini kullanımda olarak işaretlemek için ölçek kümesine bir etiket eklenir (iki havuzun aynı ölçek kümesini kullanmasını önlemek için) ve yapılandırma işi her çalıştırıldığında (iki saatte bir) güncelleştirilen zaman damgası için bir etiket daha eklenir.
Yeni bir ölçek kümesi aracı havuzu oluşturamaz ve aynı ada sahip bir havuzun zaten var olduğunu belirten bir hata iletisi alamazsınız
Etiket, silindikten sonra bile ölçek kümesinde mevcut olduğundan gibi This virtual machine scale set is already in use by pool <pool name>
bir hata iletisi alabilirsiniz. Bir aracı havuzu silindiğinde, etiketi ölçek kümesinden silmeye çalışırsınız, ancak bu en iyi çabayı gösterir ve üç yeniden denemeden sonra vazgeçersiniz. Ayrıca, herhangi bir aracı havuzu tarafından kullanılmayan bir Sanal Makine Ölçek Kümesinin yeni bir havuza atanmadığı en fazla iki saatlik boşluk olabilir. Bu durumu düzeltmek için söz konusu sürenin geçmesi beklenir veya Azure portaldan ölçek kümesinin etiketi el ile silinir. Azure portalda ölçek kümesi görüntülenirken sol taraftaki Etiketler bağlantısını seçin ve _AzureDevOpsElasticPool etiketini silin.
VMSS bakım işi aracılarda çalışmıyor veya günlükleri almıyor
Bakım işi 24 saatte bir çalıştırılır. VM'lerin bu süreden önce dolması mümkündür. VM'de disk boyutunu artırmayı ve işlem hattına içeriği silecek bir betik eklemeyi göz önünde bulundurun.
VMSS betiğinizde birincil yönetici olarak belirtirseniz AzDevOps
, ölçek kümesi örneklerinde aracı yapılandırmalarıyla ilgili sorunlar gözlemleyebilirsiniz
Sanal Makine Ölçek Kümesi betiğinizde birincil yönetici olarak belirtirseniz AzDevOps
, ölçek kümesi örneklerinde aracı yapılandırmalarıyla ilgili sorunlar gözlemleyebilirsiniz (kullanıcının parolası zaten varsa değiştirilir).
Aracı uzantısı betikleri kullanıcıyı AzDevOps
oluşturmaya ve parolasını değiştirmeye çalıştığından bu sorun oluşur.
Not
Kullanıcıyı oluşturmak ve ek izinler vermek sorun değildir, ancak birincil yönetici olmamalıdır ve parola değiştirileceğinden hiçbir şey parolaya bağlı olmamalıdır. Sorundan kaçınmak için ölçek kümesini AzDevOps
oluştururken birincil yönetici olarak yerine farklı bir kullanıcı seçin.
Ağ güvenliği ve güvenlik duvarı yapılandırmaları nedeniyle ölçek kümesi örneklerinde aracı uzantısı yüklemesi başarısız oluyor
Uzantı derleme aracısı dosyalarını https://vstsagentpackage.azureedge.net/agent
konumundan indirebilmeli ve derleme aracısı da Azure DevOps Services'e kaydolabilmelidir. Örnekte bu URL'nin ve Azure DevOps Services ile ilgili IP'lerle URL'lerin açık olduğundan emin olun. Güvenlik duvarında engellemenin kaldırılması gereken IP'ler ve URL'ler için bkz. İzin verilen IP adresleri ve etki alanı URL'leri.
Havuzumun boyutunu artırmak istiyorum. Neleri dikkate almalı?
Havuzunuzun boyutunu artırmadan önce, Sanal Makine Ölçek Kümeleri havuzunuz için yapılandırılan Azure Sanal Ağ tüm yeni aracılarınızı barındıracak kadar büyük bir Adres alanı aralığına sahip olduğundan emin olun. Aksi takdirde Kapasite artırılamadı hatasına benzer bir hata alabilirsiniz. Adres ön eki 12.123.45.224/28 olan azure-devops-agent-pool-fabrikam-fiber alt ağı 5 IP adresi için yeterli kapasiteye sahip değil.