Azure Kaynak grubu dağıtım görevi

Azure Pipelines

Azure kaynak gruplarını dağıtmak, başlatmak, durdurmak ve silmek için bu görevi kullanın.

YAML kod parçacığı

# Azure resource group deployment
# Deploy an Azure Resource Manager (ARM) template to a resource group and manage virtual machines
- task: AzureResourceGroupDeployment@2
  inputs:
    azureSubscription: 
    #action: 'Create Or Update Resource Group' # Options: create Or Update Resource Group, select Resource Group, start, stop, stopWithDeallocate, restart, delete, deleteRG
    resourceGroupName: 
    #location: # Required when action == Create Or Update Resource Group
    #templateLocation: 'Linked artifact' # Options: linked Artifact, uRL Of The File
    #csmFileLink: # Required when templateLocation == URL Of The File
    #csmParametersFileLink: # Optional
    #csmFile: # Required when  TemplateLocation == Linked Artifact
    #csmParametersFile: # Optional
    #overrideParameters: # Optional
    #deploymentMode: 'Incremental' # Options: Incremental, Complete, Validate
    #enableDeploymentPrerequisites: 'None' # Optional. Options: none, configureVMwithWinRM, configureVMWithDGAgent
    #teamServicesConnection: # Required when enableDeploymentPrerequisites == ConfigureVMWithDGAgent
    #teamProject: # Required when enableDeploymentPrerequisites == ConfigureVMWithDGAgent
    #deploymentGroupName: # Required when enableDeploymentPrerequisites == ConfigureVMWithDGAgent
    #copyAzureVMTags: true # Optional
    #runAgentServiceAsUser: # Optional
    #userName: # Required when enableDeploymentPrerequisites == ConfigureVMWithDGAgent && RunAgentServiceAsUser == True
    #password: # Optional
    #outputVariable: # Optional
    #deploymentName: # Optional
    #deploymentOutputs: # Optional
    #addSpnToEnvironment: false # Optional

Bağımsız değişkenler

Bağımsız Değişken Açıklama
ConnectedServiceName
Azure aboneliği
Istenir Dağıtım için Azure Resource Manager aboneliğini seçin.
Bağımsız değişken diğer adları: azureSubscription
action
Eylem
Istenir Azure kaynaklarında veya kaynak grubunda gerçekleştirilecek eylem.
Varsayılan değer: Create Or Update Resource Group
resourceGroupName
Kaynak grubu
Istenir Kaynak grubunun adını belirtin.
location
Konum
Istenir Kaynak grubunu dağıtmaya yönelik konum. Kaynak grubu abonelikte zaten varsa, bu değer yok sayılır.
templateLocation
Şablon konumu
Istenir Bağlı yapıt ya da dosyanın URL 'sini seçin.
Varsayılan değer: Linked artifact
csmFileLink
Şablon bağlantısı
Istenir Şablon dosyasının URL 'sini belirtin.
Örnek: https://raw.githubusercontent.com/Azure/.. .
Özel bir depolama hesabında depolanan bir şablonu dağıtmak için, şablonun URL 'sindeki paylaşılan erişim imzası (SAS) belirtecini alın ve ekleyin.
Örnek: <blob_storage_url>/template.js.
Bir şablon dosyasını (veya bağlı bir şablonu) bir depolama hesabına yüklemek ve bir SAS belirteci oluşturmak için Azure dosya kopyalama görevini kullanabilir veya POWERSHELL veya Azure CLIkullanarak adımları izleyebilirsiniz.
Şablon parametrelerini bir kılavuzda görüntülemek için, şablon parametrelerini geçersiz kıl metin kutusunu açmak için .. . ileri ' ye tıklayın. Bu özellik, kaynakta CORS kurallarının etkinleştirilmesini gerektirir. Şablonlar Azure depolama blobunda ise CORS 'yi etkinleştirmek için Bu bölümüne bakın.
csmParametersFileLink
Şablon parametreleri bağlantısı
Seçim Parametre dosyasının URL 'sini belirtin.
Örnek: https://raw.githubusercontent.com/Azure/.. .
Özel bir depolama hesabında depolanan bir dosyayı kullanmak için, şablonun URL 'sindeki paylaşılan erişim imzası (SAS) belirtecini alın ve ekleyin.
Örnek: <blob_storage_url>/template.js.
Bir depolama hesabına bir parametre dosyası yüklemek ve bir SAS belirteci oluşturmak için Azure dosya kopyalama görevini kullanabilir veya PowerShell veya Azure CLı kullanarak adımları izleyebilirsiniz.
Şablon parametrelerini bir kılavuzda görüntülemek için, şablon parametrelerini geçersiz kıl metin kutusunu açmak için .. . ileri ' ye tıklayın. Bu özellik, kaynakta CORS kurallarının etkinleştirilmesini gerektirir. Şablonlar Azure depolama blobunda ise CORS 'yi etkinleştirmek için bu bölümüne bakın.
csmFile
Şablon
Istenir Azure Resource Manager şablonuna işaret eden yolu veya bir kalıbı belirtin. Şablonlar hakkında daha fazla bilgi için bkz https://aka.ms/azuretemplates .. Hemen başlamak için şablonu kullanın https://aka.ms/sampletemplate .
csmParametersFile
Şablon parametreleri
Seçim Azure Resource Manager şablonu için parametreler dosyası işaret eden yolu veya bir kalıbı belirtin.
overrideParameters
Şablon parametrelerini geçersiz kılma
Seçim Şablon parametrelerini bir kılavuzda görüntülemek için, parametreleri geçersiz kıl metin kutusunu açmak için .. . ileri ' ye tıklayın. Bu özellik, kaynakta CORS kurallarının etkinleştirilmesini gerektirir. Şablonlar Azure depolama blobunda ise CORS 'yi etkinleştirmek için bu bölümüne bakın. Veya metin kutusunda geçersiz kılmak için şablon parametrelerini yazın.
Örnek: -Storagename fabrikam-AdminUserName $ (Vmusername)-adminPassword $ (parola)-AzureKeyVaultName $ (fabrikamFibre).
Kullandığınız parametre değerinde birden çok sözcük varsa, bunları değişkenler kullanarak geçirseniz bile tırnak içine alın.
Örneğin, -Name "parametre değeri"-AD2 "$ (var)".
Nesne türü parametrelerini geçersiz kılmak için, strıngiingjson nesneleri kullanın.
Örneğin, -Seçenekler ["Seçenek1"]-Map {"KEY1": "değer1"}.
deploymentMode
Dağıtım modu
Istenir Artımlı mod, dağıtımları kaynak grubunda artımlı güncelleştirmeler olarak işler. Kaynak grubunda var olan, ancak şablonda belirtilmeyen, değiştirilmemiş kaynakları bırakır. Tam modda, şablonunuzda bulunmayan kaynaklar silinir. Doğrulama modu, gerçek kaynakları oluşturmadan önce şablonla ilgili sorunları bulmanıza olanak sağlar. Hiçbir kaynak dağıtılmasa bile bu modun her zaman bir kaynak grubu oluşturduğunu unutmayın.
Varsayılan değer: Incremental
enableDeploymentPrerequisites
Önkoşulları etkinleştir
Seçim Bu seçenekler yalnızca kaynak grubu sanal makineler içerdiğinde uygulanabilir. Dağıtım grubu seçeneğinin belirlenmesi, sanal makinelerin her birinde dağıtım grubu aracısını yapılandırır. WinRM seçeneği belirlendiğinde, bağlantı noktası 5986 üzerinde HTTPS protokolü üzerinden otomatik olarak imzalanan bir sertifika kullanarak Windows Uzaktan Yönetimi (WinRM) dinleyicisini yapılandırır. Bu yapılandırma, Azure makinelerinde dağıtım işlemi gerçekleştirmek için gereklidir. Hedef sanal makineler bir yük dengeleyici tarafından kullanılıyorsa, hedef bağlantı noktası (5986) için gelen NAT kurallarının yapılandırıldığından emin olun.
Varsayılan değer: None
deploymentGroupEndpoint
Azure Pipelines Hizmet bağlantısı
Istenir Aracı kaydı için bir Azure DevOps kuruluşuna veya koleksiyonuna bağlanmak üzere hizmet bağlantısını belirtin.

+ Yeni' yi kullanarak bir hizmet bağlantısı oluşturabilir ve belirteç tabanlı kimlik doğrulaması' nı seçebilirsiniz. Bir hizmet bağlantısı kurmak için bir kişisel erişim belirteci (Pat) gereklidir.
Hizmet bağlantısı ayrıntılarını güncelleştirmek için Yönet ' e tıklayın.
Bağımsız değişken diğer adları: teamServicesConnection
project
Takım projesi
Istenir Üzerinde bir dağıtım grubu tanımlanmış takım projesini belirtin.
Bağımsız değişken diğer adları: teamProject
deploymentGroupName
Dağıtım grubu
Istenir Aracılarınızın kaydedileceği dağıtım grubunu belirtin. Daha fazla rehberlik için dağıtım grupları' na bakın.
copyAzureVMTags
Azure VM etiketlerini aracılara kopyalama
Seçim Azure VM üzerinde yapılandırılan etiketlerin ilgili dağıtım grubu aracısına kopyalanması gerekiyorsa seçin. Varsayılan olarak, tüm Azure etiketleri biçim anahtarı: değerini izleyerek kopyalanacak.
Örnek: bir Azure etiketi "role: Web" olduğu gibi, aracı makinesine kopyalanır. Azure kaynakları etiketinin bağlantıyanasıl başvurabileceği hakkında daha fazla bilgi için.
runAgentServiceAsUser
Aracı hizmetini kullanıcı olarak çalıştır
Seçim Aracı hizmetini varsayılandan farklı bir kullanıcı olarak çalıştırıp çalıştırmayacağınıza karar verin. Varsayılan Kullanıcı, Linux 'ta Windows ve root 'DAKI NT AUTHORITY \ \System ' dir.
userName
Kullanıcı adı
Istenir Sanal makinelerde aracı hizmetini çalıştırmak için Kullanıcı adı.
Etki alanı kullanıcıları için lütfen değerleri etkialanı \ \ KullanıcıAdı veya UserName @ Domain.com olarak girin.
Yerel kullanıcılar için lütfen yalnızca Kullanıcı adını girin.
Aynı etki alanı kullanıcısının veya aynı ada sahip bir yerel kullanıcının sırasıyla kaynak grubundaki tüm sanal makinelerde mevcut olduğu varsayılır.
password
Parola
Windows VM 'lerinde aracı hizmetini çalıştırmak için kullanıcının parolası.
Parolanın tüm VM 'lerde belirtilen kullanıcı için aynı olduğu varsayılır.
Derleme veya yayın işlem hatları $ (Passwordvariable) olarak tanımlanan değişkeni kabul edebilir. Değişkeni güvenlik altına almak için gizli olarak işaretleysiniz.
Linux VM'leri için parola gerekmez ve yoksayılır.
outputVariable
WinRM için VM ayrıntıları
(İsteğe bağlı) Kaynak grubu için değişken için bir ad girin. değişkeni, uygulamaları dağıtmak için Hedef Makinelerde PowerShell görevi gibi sonraki görevlerde kaynak grubuna başvurmak için $(variableName) olarak kullanılabilir. Yalnızca seçilen eylem Oluştur, Güncelleştir veya Seç olduğunda ve mevcut bir kaynak grubu seçildiğinde gerekli olduğunda geçerlidir.
deploymentName
Dağıtım adı
(İsteğe bağlı) Oluşturul eklenecek kaynak grubu dağıtımının adını belirtir
deploymentOutputs
Dağıtım çıkışları
(İsteğe bağlı) Dize biçiminde geçerli dağıtım nesnesinin outputs bölümünü içeren çıkış değişkeni için değişkenin adını girin. ConvertFrom-Json PowerShell cmdlet'ini kullanarak JSON nesnesini ayrıştırabilirsiniz ve tek tek çıkış değerlerine erişebilirsiniz.
addSpnToEnvironment
Geçersiz kılma parametrelerinde hizmet sorumlusu ayrıntılarına erişme
Betiğin yürütme ortamına seçtiğiniz Azure uç noktasının hizmet sorumlusu kimliğini ve anahtarını ekler. Şu değişkenleri kullanabilirsiniz: $servicePrincipalId ve $servicePrincipalKey -key $servicePrincipalKey gibi geçersiz kılma parametrelerinize $servicePrincipalKey

Sorun giderme

Hata: İç Sunucu Hatası

Bu sorunlar genellikle geçicidir. Bunun birden çok nedeni olabilir:

  • Dağıtmaya çalıştığınız Azure hizmetlerinden biri, dağıtmaya çalıştığınız bölgede bakımdan geçirmeyi dener. Azure Hizmetlerinin kapalı kalma https://status.azure.com/ sürelerini denetlemeye dikkat edin.
  • Azure Pipelines bakımdan geçiyor. Kapalı kalma sürelerini https://status.dev.azure.com/ takip etmek için göz atabilirsiniz.

Bununla birlikte, bunun ARM şablonunda bir hatadan kaynaklandır olduğu bazı örnekler gördük. Örneğin, dağıtmaya çalıştığınız Azure hizmeti kaynak için seçtiğiniz bölgeyi desteklemez.

Hata: Zaman aşımı

Zaman aşımı sorunları iki farklı yerde olabilir:

  • Azure Pipelines Aracısı
  • Portal Dağıtımı

Görev günlüklerinde yer alan portal dağıtım bağlantısını kontrol ederek zaman aşımının portaldan mı olduğunu tanımlayabilirsiniz. Bağlantı yoksa bunun nedeni büyük olasılıkla Azure Pipelines. Bir bağlantı varsa, portal dağıtımında bir zaman aşımı olup ola bir zaman aşımı olup bu bağlantının ardından bakın.

Hata: Parametreler geçersiz kılınırken etkinleştirilen CORS kuralları

Şablon dosyası bir BLOB'dan başvurulmuşsa, işlem hattında parametreleri geçersiz kılınırken aşağıdaki uyarı iletisini alabilirsiniz:

Warning: Failed to download the file from template path.

Bu özellik, kaynakta CORS kurallarının etkinleştirilmesi gerekir. Şablonlar Azure depolama blob'larında ise CORS'yi etkinleştirmek için çıkış noktası arası kaynak paylaşımı desteğine bakın.

CORS'u etkinleştirmenin yanı sıra, şablon bağlantısında belirtilen SAS belirtecin "srt-sco" olduğundan emin olur. Bu belirteç, dosyayı indirip devam etmek için gereklidir.

Azure Pipelines Aracısı

Sorun bir aracıdan geliyorsa Azure Pipelines YAML'de anahtar olarak timeoutInMinutes ayarını 0 olarak ayarerek zaman aşımını artırabilirsiniz. Daha fazla bilgi için bkz. İşlem hattında işleri belirtme.

Portal Dağıtımı

Hatanın Azure portal'den geldiğini belirleme hakkında bu belgeye göz Azure portal: dağıtım geçmişini Azure Resource Manager.

Portal dağıtımı durumunda ARM şablonunda "timeoutInMinutes" ayarını "0" olarak ayarlamayı deneyin. Belirtilmezse, 60 dakika olduğu varsayılır. 0, dağıtımın başarılı olduğu sürece çalıştırılamayacak şekilde emin olur.

Sistemde geçici sorunlar nedeniyle de bu durum yaşanıyor olabilir. Hizmette kapalı https://status.dev.azure.com/ kalma süresi olup Azure Pipelines.

Hata: Azure Resource Manager (ARM) şablonu doğrulama başarısız oldu

Bu sorun çoğunlukla ARM şablonunda desteklenmeyen bir SKU veya bölge gibi geçersiz bir parametreden dolayı gerçekleşir. Doğrulama başarısız olursa hata iletisini kontrol edin. Sizi geçersiz olan kaynağa ve parametreye işaret etmek gerekir.

Bu sorun çok satırlı dizeler nedeniyle de oluşabilir. Şu anda Azure Kaynak Grubu Dağıtımı görevi ARM şablonunda veya parametre JSON dosyasında çok satırlı dizeleri desteklemez.

Ayrıca ARM Şablonlarının yapısı ve söz dizimi ile ilgili bu makaleye bakın: ARM şablonlarının yapısını ve söz dizimlerini anlama.

Açık kaynak

Bu görev GitHub'da açık kaynaktır. Geri bildirim ve katkılar açıktır.