Azure dosya kopyalama görevi

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015,3

dosyaları Microsoft Azure depolama bloblarına veya sanal makinelere (vm) kopyalamak için bu görevi kullanın.

Not

bu görev PowerShell 'e yazılır ve bu nedenle yalnızca Windows aracılarında çalışır. işlem hatlarınız Linux aracıları gerektiriyorsa ve dosyaları bir azure Depolama hesabına kopyalamanız gerekiyorsa, az storage blob azure clı görevindeki komutları alternatif olarak çalıştırmayı göz önünde bulundurun.

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerinde derleme ve yayın işlem hatları tanımlar, çalıştırmalar derlemeler, hizmet bağlantıları hizmet uç noktaları, aşamalar ortamlar ve işler olarak adlandırılan aşamalar olarak adlandırılan bir uygulamadır.

Görev, uygulamayı yüklemek için gerekli olan uygulama dosyalarını ve diğer yapıları kopyalamak için kullanılır; PowerShell betikleri, PowerShell-DSC modülleri ve daha fazlası gibi.

Not

Azure dosya kopyalama görevi sürüm 3 veya sonraki bir sürümü kullanıyorsanız bkz. Azure dosya kopyası sürüm 3 veya daha öncekibir sürümü.

Hedef Azure VM 'leriniz olduğunda, dosyalar önce otomatik olarak oluşturulan bir Azure Blob kapsayıcısına kopyalanır ve ardından sanal makinelere indirilir. Dosyalar sanal makinelere başarıyla kopyalandıktan sonra kapsayıcı silinir.

Bu görev, Azure depolama hesaplarına ve ' den veri kopyalama için oluşturulan AzCopy, komut satırı yardımcı programını kullanır. Azure dosya kopyalama görevinin 4. sürümü AzCopy ile v10 arasındakikullanır.

Sanal makineler içeren Azure kaynak gruplarını dinamik olarak dağıtmak için, Azure Kaynak grubu dağıtım görevini kullanın. Bu görevde, sanal makinelerde WinRM HTTPS protokolünü kurmak için gerekli işlemleri gerçekleştirebilen bir örnek şablon bulunur, güvenlik duvarında 5986 bağlantı noktasını açabilir ve test sertifikasını yükleyebilirsiniz.

Not

Blob depolamada bir kapsayıcı olarak Azure statik Web siteleri 'ne dağıtım yapıyorsanız, $Web kapsayıcı adını korumak Için görevin sürüm 2 veya üstünü kullanmanız gerekir.

Görev, Azure Active Directory göre kimlik doğrulamasını destekler. Hizmet sorumlusu ve yönetilen kimlik kullanarak kimlik doğrulaması kullanılabilir. Yönetilen kimlikler için yalnızca sistem genelinde yönetilen kimlik desteklenir.

Not

Yetkilendirme için güvenlik sorumlusuna erişim sağlamanız gerekir. Gerekli yetkilendirme düzeyi buradabelirtilebilir.

YAML kod parçacığı

# Azure file copy
# Copy files to Azure Blob Storage or virtual machines
- task: AzureFileCopy@4
  inputs:
    sourcePath: 
    azureSubscription: 
    destination: # Options: azureBlob, azureVMs
    storage: 
    #containerName: # Required when destination == AzureBlob
    #blobPrefix: # Optional
    #resourceGroup: # Required when destination == AzureVMs
    #resourceFilteringMethod: 'machineNames' # Optional. Options: machineNames, tags
    #machineNames: # Optional
    #vmsAdminUserName: # Required when destination == AzureVMs
    #vmsAdminPassword: # Required when destination == AzureVMs
    #targetPath: # Required when destination == AzureVMs
    #additionalArgumentsForBlobCopy: # Optional
    #additionalArgumentsForVMCopy: # Optional
    #enableCopyPrerequisites: false # Optional
    #copyFilesInParallel: true # Optional
    #cleanTargetBeforeCopy: false # Optional
    #skipCACheck: true # Optional
    #sasTokenTimeOutInMinutes: # Optional

Bağımsız değişkenler

Bağımsız Değişken Description
sourcePath - Kaynaktaki Gereklidir. Kopyalanacak dosyaların kaynağı. yaml Pipelines ve klasik sürüm, derleme. Repository. localpath gibi önceden tanımlanmış sistem değişkenlerini de destekler. Yayın değişkenleri yalnızca klasik sürümlerde desteklenir. Joker karakter simgesi ( * ), dosya yolu veya dosya adı içinde herhangi bir yerde desteklenir.
connectedServiceNameARMveya azureSubscription - Azure aboneliği Gereklidir. Hedef Azure hizmeti, sanal makine veya depolama hesabının bulunduğu abonelik için yapılandırılmış bir Azure Resource Manager hizmet bağlantısının adı. Daha fazla ayrıntı için Azure Resource Manager genel bakış bölümüne bakın.
destination - Hedef türü Gereklidir. Dosyalar için hedef hedefin türü. Azure Blob veya Azure VM 'leri seçin.
storageAccountRMya da storage - RM Depolama hesabı Gereklidir. Azure aboneliğindeki mevcut bir depolama hesabının adı.
containerName - Kapsayıcı adı Hedef tür parametresi Için Azure Blob ' u seçerseniz gereklidir. Dosyaların kopyalanacağı kapsayıcının adı. Bu ada sahip bir kapsayıcı yoksa, yeni bir tane oluşturulur.
blobPrefix - Blob ön eki Hedef tür parametresi Için Azure Blob ' u seçerseniz isteğe bağlıdır. Blobları filtrelemek için kullanılabilen blob adları için bir ön ek. Örneğin, yapı numarasını kullanmak aynı yapı numarasına sahip tüm Blobları indirirken kolay filtreleme imkanı sunar.
environmentNameRMveya resourceGroup - kaynak grubu Azure bağlantı türü parametresi için Azure Resource Manager ve hedef tür parametresi için Azure VM 'ler ' i seçerseniz gereklidir. Sanal makinelerin çalıştırıldığı Azure Kaynak grubunun adı.
resourceFilteringMethod - Makineleri seçin Filtre ölçütü parametresini kullanırken gruptaki makineleri nasıl belirtmek istediğinize bağlı olarak, makine adları veya Etiketler' i seçin.
machineNames - Filtre ölçütü İsteğe bağlı. Görevin hedeflenecek makineleri tanımlayan makine adları veya etiket adları listesi. Filtre ölçütü şu olabilir:
-Bir Azure Kaynak grubununadı.
-Önceki bir görevden çıkış değişkeni.
-Etiket adlarının veya makine adlarının virgülle ayrılmış listesi.
Makine adlarının kullanıldığı zaman biçimi, makine FQDN 'lerinin veya IP adreslerinin virgülle ayrılmış listesidir.
{TagName}:{Value} örneği olarak bir filtrenin etiket adlarını belirtin: Role:DB;OS:Win8.1
vmsAdminUserName - Yönetici oturumu açma Hedef tür parametresi Için Azure VM 'leri seçerseniz gereklidir. Tüm hedef VM 'Ler için yönetici izinlerine sahip olan bir hesabın Kullanıcı adı.
- UserName, *etkialanı * kullanıcıadı, Machine-Name\Username ve .\username gibi biçimler desteklenir.
-Gibi UPN biçimleri username@domain.com ve NT AUTHORITY\SYSTEM gibi yerleşik sistem hesapları desteklenmez.
vmsAdminPassword - Parolayı Hedef tür parametresi Için Azure VM 'leri seçerseniz gereklidir. Yönetici oturum açma parametresi olarak belirtilen hesabın parolası. Değeri korumak için değişkenler sekmesinde tanımlanan bir değişken için asma kilit simgesini kullanın ve değişken adını buraya ekleyin.
targetPath - Hedef klasör Hedef tür parametresi Için Azure VM 'leri seçerseniz gereklidir. Azure VM 'lerinde dosyaların kopyalanacağı klasör. Ve gibi ortam değişkenleri $env:windir $env:systemroot desteklenir. Örnekler: $env:windir\FabrikamFiber\Web ve c:\FabrikamFiber
additionalArgumentsForBlobCopy - İsteğe bağlı bağımsız değişkenler (dosyaları bloba yüklemek için) İsteğe bağlı. Blob 'a yükleme ve VM 'lere indirme sırasında kullanmak üzere AzCopy.exe programına geçirmek istediğiniz bağımsız değişkenler. Daha fazla bilgi için bkz. AzCopy Command-Line yardımcı programıyla veri aktarma . yalnızca Azure sayfa bloblarını destekleyen Premium depolama hesabı kullanıyorsanız, '--blob-type = pageblob ' öğesini ek bir bağımsız değişken olarak geçirin. Varsayılan bağımsız değişkenler--log-Level = ıNFO (default) ve--özyinelemeli (yalnızca kapsayıcı adı $root).
additionalArgumentsForVMCopy - İsteğe bağlı bağımsız değişkenler (dosyaları VM 'ye indirmek için) İsteğe bağlı. Gibi sanal makineye indirme sırasında uygulanacak bağımsız değişkenleri AzCopy.exe --check-length=true . Burada isteğe bağlı bağımsız değişkenler belirtilmemişse, varsayılan olarak aşağıdaki isteğe bağlı bağımsız değişkenler eklenir: --log-level=INFO (işlem hattı hata ayıklama modu kümesinde çalışıyorsa --log-level=DEBUG ), --recursive
enableCopyPrerequisites - Önkoşulları kopyalamayı etkinleştir Azure bağlantı türü parametresi için Azure Resource Manager ve hedef tür parametresi için Azure VM 'ler ' i seçerseniz kullanılabilir. bu seçeneğin ayarlanması, 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 sanal makinelerinde kopyalama işleminin gerçekleştirilmesi için gereklidir.
-Hedef sanal makinelere bir yük dengeleyici üzerinden erişiliyorsa, gelen NAT kuralının bağlantı noktası 5986 ' de erişime izin verecek şekilde yapılandırıldığından emin olun.
-Hedef sanal makineler bir ağ güvenlik grubu (NSG) ile ilişkiliyse, 5986 numaralı bağlantı noktasında erişime izin vermek için bir gelen güvenlik kuralı yapılandırın.
copyFilesInParallel - Paralel olarak Kopyala Hedef tür parametresi Için Azure VM 'leri seçerseniz kullanılabilir. Bu seçeneğin ayarlanması, kopyalanan dosyalar için işlemin paralel olarak yürütülmesine neden olur. Bu, alınan toplam süreyi önemli ölçüde azaltabilir.
cleanTargetBeforeCopy - Temizleme hedefi Hedef tür parametresi Için Azure VM 'leri seçerseniz kullanılabilir. Bu seçeneğin ayarlanması, kopyalama işlemi başlamadan önce hedef klasördeki tüm dosyaların silinmesine neden olur.
skipCACheck - Sınama sertifikası Hedef tür parametresi Için Azure VM 'leri seçerseniz kullanılabilir. WinRM, ara depolama blobundan Azure VM 'lerine dosya kopyalarken HTTPS aktarımı için bir sertifika gerektirir. Otomatik olarak imzalanan sertifika kullan ' ı ayarlarsanız, işlemin sertifikayı bir güvenilen sertifika yetkilisi (CA) ile doğrulanmasını engellemek için bu seçeneği ayarlayın.
sasTokenTimeOutInMinutes - SAS belirteci süre sonu süresi (dakika) İsteğe bağlı. SAS belirtecinin süresinin dolacağı süreyi dakika olarak belirtin. Yalnızca seçili hedef Azure blobu olduğunda geçerlidir. Varsayılan değer 4 saat olmalıdır.
Denetim seçenekleri Bkz. Denetim seçenekleri

SSS

bu görevi kullanmak için Azure PowerShell önkoşulları nelerdir?

görevin, otomasyon aracısı 'nı çalıştıran makinede Azure PowerShell yüklü olması gerekir. Önerilen sürüm 1.0.2 ' dir, ancak görev 0.9.8 ve daha yüksek bir sürümle çalışır. bunu elde etmek için Azure PowerShell ınstaller v 1.0.2 kullanabilirsiniz.

Bu görev için WinRM önkoşulları nelerdir?

görev, dosyaları depolama blobu kapsayıcısından Azure vm 'lerine kopyalamak için Windows Uzaktan Yönetimi (WinRM) HTTPS protokolünü kullanır. Bu, WinRM HTTPS hizmetinin VM 'lerde yapılandırılmasını ve uygun bir sertifikanın yüklü olmasını gerektirir. Sanal makine oluşturulduktan sonra WinRM 'yi yapılandırma

VM 'Ler WinRM HTTPS bağlantı noktaları açılmadan oluşturulduysa, şu adımları izleyin:

  1. Her VM 'nin 5986 numaralı bağlantı noktasında HTTPS 'ye izin vermek için bir gelen erişim kuralı yapılandırın.
  2. UAC uzak kısıtlamalarınıdevre dışı bırakın.
  3. Bir etki alanı bölümü olmadan basit form Kullanıcı adında yönetici düzeyinde bir oturum açma kullanarak VM 'lere erişmek için görevin kimlik bilgilerini belirtin.
  4. Otomasyon aracısını çalıştıran makineye bir sertifika yükler.
  5. Otomatik olarak imzalanan bir sertifika kullanıyorsanız, görevin test sertifikası parametresini ayarlayın.

Ne tür bir hizmet bağlantısı seçmem gerekir?

  • Azure Resource Manager depolama hesapları ve Azure Resource Manager VM 'Ler için bir Azure Resource Manager hizmet bağlantı türü kullanın. Hizmet sorumlusu kullanarak Azure Kaynak grubu dağıtımını otomatikleştirmehakkında daha fazla ayrıntı görüntüleyin.

  • Azure Resource Manager hizmet bağlantı türü kullanılırken, görev otomatik olarak yeni Azure Resource Manager depolama hesaplarına ve diğer alanlara filtre uygular. Örneğin, kaynak grubu veya bulut hizmeti ve sanal makineler.

Bu görevle kullanılmak üzere bir okul veya iş hesabı mı Nasıl yaparım??

Uygun bir hesap, bir hizmet bağlantısında kullanılmak üzere kolayca oluşturulabilir:

  1. Azure Active Directory yeni bir kullanıcı hesabı oluşturmak için Azure portal kullanın.
  2. Azure Active Directory kullanıcı hesabını Azure aboneliğinizdeki ortak yöneticiler grubuna ekleyin.
  3. Azure portal bu kullanıcı hesabıyla oturum açın ve parolayı değiştirin.
  4. Hizmet bağlantısında bu hesabın kullanıcı adını ve parolasını kullanın. Dağıtımlar bu hesap kullanılarak işlenecek.

Görev başarısız olursa, kopyalama işlemi sürdürülecek mi?

AzCopy V10 günlük dosyalarını desteklemediği için görev kopyalama işlemine devam edemiyor. Tüm dosyaları kopyalamak için görevi yeniden çalıştırmanız gerekir.

Günlük dosyaları ve kopyalama sonrasında temizlenen dosyalar temizlensin mi?

Günlük ve plan dosyaları görev tarafından silinmiyor. Dosyaları açıkça temizlemek için bu komutu kullanarak iş akışına bir CLI adımı ekleyebilirsiniz.

Bir aracıya ihtiyacım var mı?

Yapınızı veya sürümünüzü çalıştırmak için en az bir aracınız olması gerekir.

Sorun yaşıyorum. Sorunları nasıl giderebilirim?

Bkz. derleme ve yayın sorunlarını giderme.

Varsayılan bir aracı havuzu seçemiyorum ve derleme veya yayınımı sıraya alamıyorum. Bu Nasıl yaparım? düzeltilsin mi?

Bkz. Aracı havuzları.

NuGet gönderme görevi şu hata ile başarısız oluyor: "hata: yerel veren sertifikası alınamıyor". Bunu nasıl giderebilirim?

Bu, güvenilen kök sertifika eklenerek düzeltilebilir. NODE_EXTRA_CA_CERTS=fileOrtam değişkenini yapı aracıya ekleyebilir veya NODE.EXTRA.CA.CERTS=file görev değişkenini işlem hattınızda ekleyebilirsiniz. Bu değişken hakkında daha fazla bilgi için bkz. Node.js belgeleri . İşlem hattınızda değişken ayarlamaya ilişkin yönergeler için bkz. işlem hattındaki değişkenleri ayarlama .

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

bu özelliklerden bazıları yalnızca Azure Pipelines kullanılabilir ve şirket içinde henüz kullanılabilir değil. TFS 'nin en son sürümüne yükselttiysenizbazı özellikler şirket içinde kullanılabilir.

Nasıl yaparım? bir dosyayı genel IP adresine sahip olmayan bir Azure sanal makinesine kopyalamak için Azure dosya kopyalama görevini kullanın.

Azure dosya kopyalama görevinin 4. sürümünü kullandığınızdan emin olun. Görev başarısız olursa, azcopy cp "source-file-path" "destination-file-path" kaynak ve hedef değerlerini değiştirmek için komutu yürütmek üzere bir yapı adımı ekleyebilirsiniz.

Yasak hata: Azure dosya kopyalama görevi kullanılırken ' AzCopy.exe, dosyaları blob depolamaya yüklerken sıfır olmayan çıkış kodu ile çıkıldı

Barındırılan aracılar, derleme her tetiklendiğinde rastgele atanır ve bu nedenle Aracı IP adresleri her çalıştırmada farklı olur. bu ıp adresleri izin verilen ıp 'lerde değilse, Azure DevOps ve depolama hesabı arasındaki iletişim başarısız olur. Bu tür senaryolarda, aşağıdaki adımları izleyin:

  1. çalışma zamanında Microsoft tarafından barındırılan derleme aracısının ıp 'sini tanımlayacak azure clı kullanarak bir derleme adımı ekleyin ve ıp adresini azure Depolama hesabındaki ağ kuralına ekler.
  2. Azure Depolama hesabınız için derleme adımını yürütün.
  3. azure clı kullanarak başka bir derleme adımı ekleyin, bu, daha önce eklenen azure Depolama hesabı ağ kuralından derleme aracısının ıp adresini kaldırır.

Açık kaynak

Bu görev GitHubaçık kaynağıdır. Geribildirim ve katılımlar hoş geldiniz.