Yönetilen DevOps Havuzları görüntüleri için dağıtım betiklerini yapılandırma

Yönetilen DevOps Havuzları, bir işi çalıştırmak üzere bir aracıya atanmadan önce havuzdaki bir görüntü için PowerShell betiği (Windows) veya Bash betiği (Linux) çalıştırma seçeneği sağlar. Bu özellik, Güvenilen kök CA'ları yükleme ve ortam değişkenlerini ayarlama gibi senaryoları etkinleştirir.

Important

Sağlama komut dosyaları şu anda önizlemededir. Özellik genel kullanılabilirlik öncesinde değişebilir.

Yönetilen DevOps Havuzları, Azure Blob Depolama’dan betikleri aracıya indirmek ve sorun giderme amacıyla sağlama betiği günlüklerini yüklemek için havuzunuzla ilişkilendirilmiş bir yönetilen kimlik kullanır. Sağlama betiği aracı başlatıldığında çalışır ve betik çalıştırıldıktan sonra aracıyı yeniden başlatacak şekilde yapılandırabilirsiniz.

Yönetilen DevOps Havuzu görüntüsünü sağlama betiği çalıştıracak şekilde yapılandırmak için aşağıdaki adımları gerçekleştirin:

  1. Bir Blob Depolama hesabında iki blob kapsayıcısı oluşturun: biri sağlama betikleri ve yardımcı dosyalar için, diğeri de sağlama betiği günlüklerini yüklemek için. Sağlama betiklerinizi ve tüm destekleyici dosyaları betik blob kapsayıcısına yükleyin.
  2. Yönetilen kimliği Yönetilen DevOps Havuzunuzla ilişkilendirin ve aracının sağlama betiklerini okuyabilmesi ve sağlama betiği günlüklerini yükleyebilmesi için, gerekli rolleri uygun kapsamlarda yönetilen kimliğe atayın.
  3. Görüntülerinizi istenen sağlama betiklerini kullanacak şekilde yapılandırın.

Prerequisites

Blob kapsayıcılarını oluşturun

Yönetilen DevOps Havuzları, bir Blob Depolama hesabındaki kapsayıcıda bulunan bloblardan sağlama betiklerini ve bunları destekleyen dosyaları indirir. Yönetilen DevOps Havuzları için depolama hesabında iki blob kapsayıcısı gerekir: biri sağlama betiğini ve destekleyici dosyaları indirmek için, diğeri de sağlama betiği günlüklerini karşıya yüklemek için.

Blob Depolama hesabınızda aşağıdaki iki blob kapsayıcısını oluşturun.

Blob Depolama kapsayıcısı Description
Komut Dosyaları blob kapsayıcısı. İmajınızı bir hazırlama betiğini çalıştıracak şekilde yapılandırırken, Entry point (provisioningScriptEntryPoint) bölümünde özel bir ad belirtmezseniz, varsayılan ad provisioningscript olur. Sağlama betiğini ve tüm destekleyici dosyaları içerir. Sağlama betiğinin adı, Windows görüntüleri için Setup.sh, Linux görüntüleri içinse Setup.ps1 olmalıdır.
Betik günlükleri kapsayıcısı sağleniyor. Bu kapsayıcı adını yapılandıramazsınız; olmalıdır mdpprovisioningscriptlogs.

Yönetilen DevOps Havuzları blob kapsayıcısını mdpprovisioningscriptlogs otomatik olarak oluşturabilir, ancak en az ayrıcalıklı erişim için kapsayıcıyı mdpprovisioningscriptlogs el ile oluşturmanızı öneririz. Daha fazla bilgi için bkz. Yönetilen kimliğe Azure rolleri atama.
stdout ve stderr günlüklerini, provizyon betiği tarafından oluşturulan günlükleri ve betiğin bir kopyasını içerir. Blob adları, sanal dizin olarak ajanın makine adını kullanır.

Sağlama betiğinizi ve tüm destekleyici dosyaları betikler blob kapsayıcısına yükleyin. Sağlama betiğinin adı, Windows görüntüleri için Setup.sh, Linux görüntüleri içinse Setup.ps1 olmalıdır. Bloba betikler için gerekli tüm destekleyici dosyaları ekleyebilirsiniz. Aracı başlatıldığında, bu dosyalar aracının çalışma dizinine indirilir ve sağlama betiği bu konumdan yürütülür.

Yönetilen kimliğe Azure rolleri atayın

Yönetilen DevOps Havuzları, sağlama betikleri ve sağlama betiği günlükleri için Blob kapsayıcılarına erişmek üzere yönetilen bir kimlik kullanır. Yönetilen kimliği Yönetilen DevOps Havuzunuzla ilişkilendirmeniz ve bu bölümde açıklanan kapsamlarda belirtilen rolleri yönetilen kimliğe atamanız gerekir. Yönetilen DevOps Havuzunuzun yönetilen kimliği yoksa, Yönetilen DevOps Havuzunuz için yönetilen kimlik yapılandırma bölümünde yer alan adımları izleyerek bir kimlik oluşturun.

  • Yönetilen DevOps Havuzunuzun ilişkili tek bir yönetilen kimliği varsa, bu kimlik sağlama betiğine ve sağlama betiği günlükleri kapsayıcılarına erişmek için kullanılır.
  • Yönetilen DevOps Havuzunuzun birden fazla ilişkili yönetilen kimliği varsa, imajınızı bir sağlama komut dosyası kullanacak şekilde yapılandırırken Yönetilen kimlik istemci kimliği (provisioningScriptManagedIdentityResourceId) özelliğini belirterek sağlama komut dosyalarında kullanılacak belirli bir yönetilen kimliği belirtin.

Aracının betikleri indirmesini ve sağlama betik günlüklerini karşıya yüklemesini sağlamak için aşağıdaki tabloda yer alan rolleri belirtilen kapsamlarda Yönetilen DevOps Havuzu'nun ilişkili yönetilen kimliğine atayın. Azure rolleri atama hakkında daha fazla bilgi için bkz. Azure rolü atama adımları.

Rolü Scope
Storage Blob Veri Okuyucusu Betik blob kapsayıcısı kapsamı. Görüntünüzü sağlama betiğini çalıştıracak şekilde yapılandırırken Giriş noktasında (provisioningScriptEntryPoint) bir ad belirtmezseniz, varsayılan ad olur provisioningscript.
Depolama Blobu Verilerine Katkıda Bulunan En düşük ayrıcalıklı erişim için sağlama betiği günlükleri kapsayıcısını (mdpprovisioningscriptlogs) el ile oluşturun ve rolü yönetilen kimliğe bu blob kapsayıcısı kapsamında atayın.

Yönetilen DevOps Havuzlarının kapsayıcıyı oluşturmasını istiyorsanız, rolü depolama hesabı kapsamında yönetilen kimliğe atayın. Depolama hesabı kapsamında Depolama Blobu Verisi Katkıda Bulunanı rolünü atarsanız, betik kapsayıcısı düzeyinde Depolama Blobu Verisi Okuyucusu rolünü atamanız gerekmez.

Görüntünüzü sağlama betiğini kullanacak şekilde yapılandırma

Bir görüntü için sağlama komut dosyası kullanmak üzere aşağıdaki görüntü özelliklerini yapılandırın.

Property Description
Depolama hesabı kaynak kimliği
provisioningScriptStorageAccountResourceId
Zorunlu. Betik kapsayıcısını (varsayılan adı provisioningscript olan) ve mdpprovisioningscriptlogs kapsayıcısını içeren depolama hesabının kaynak kimliği.
Giriş noktası
provisioningScriptEntryPoint
Sağlama betiğini ve destekleyici dosyaları içeren blob kapsayıcısının adı. Bir değer belirtmezseniz, varsayılan değer olur provisioningscript.
Yönetilen kimlik istemci kimliği
provisioningScriptManagedIdentityClientId
Gereklidir, havuzunuz birden fazla yönetilen kimlikle ilişkilendirilmişse. Betikteki bloblara ve sağlama betiği günlük kapsayıcılarındaki bloblara erişmek için kullanılacak yönetilen kimliğin istemci kimliği. Yönetilen DevOps Havuzunuzda birden fazla ilişkili yönetilen kimlik varsa, hangisinin kullanılacağını burada belirtmeniz gerekir. Havuzunuzda yalnızca bir kimlik varsa, bu özellik isteğe bağlıdır.
Komut dosyası yürütüldükten sonra yeniden başlat
provisioningScriptShouldRestart
Sağlama betiğini çalıştırdıktan sonra ve aracıya iş göndermeden önce aracının yeniden başlatılması gerekip gerekmediği. Bir değer belirtmezseniz, varsayılan değer olur false.

Betik yürütüldükten sonra yeniden başlatma, sağlama süresini artırır ve yalnızca sağlama betiği, yapılan değişikliklerin etkili olması için yeniden başlatma gerektiriyorsa gerçekleştirilmelidir.

Note

Sağlama betikleri, API sürümü 2026-06-02 veya sonraki sürümlerde kullanılabilir.

Sağlama betiklerini yapılandırdıktan sonra havuzunuzu önceki bir API sürümünü kullanarak güncelleştirirseniz, sağlama betiği ayarları korunmaz.

Bir görüntü için sağlama betiği ayarlarını yapılandırmak üzere havuz ayarlarının Resimler bölümüne gidin ve ...>Sağlama betiğini yapılandırın seçeneğini belirleyin.

Sağlama betiğini yapılandır menü seçeneğini gösteren ekran görüntüsü.

Görüntü için sağlama betiği ayarlarını ekleyin veya güncelleştirin ve Kaydet'i seçin.

Sağlama betiği ayarlarını yapılandır'ı gösteren ekran görüntüsü.

Sağlama hataları

Aşağıdaki tabloda sağlama betiği hata kodları ve açıklamaları listelenmektedir.

Hata kodu Description
ProvisioningScriptDownloadFailed Sağlama betiği sağlama sırasında makineye indirilemedi.
ProvisioningScriptAccessFailed Tedarik işlemi tedarik betiğine erişemedi. Bu hata genellikle betik alınırken karşılaşılan bir erişim veya izin sorunu nedeniyle oluşur.
ProvisioningScriptExecutionFailed Sağlama betiği indirildi ancak makinede çalıştırılırken başarısız oldu.
ProvisioningScriptLogUploadFailed Sağlama işlemi, sağlama betiğine ait günlükleri oluşturdu, ancak bunları karşıya yükleyemedi.

Tedarik betiği günlükleri

Sağlama komut dosyası günlükleri, komut dosyası tarafından üretilen standart çıktıyı (stdout) ve standart hatayı (stderr) içerir. Yönetilen DevOps Havuzları bu günlükleri, belirttiğiniz depolama hesabı içindeki mdpprovisioningscriptlogs blob kapsayıcısına yazar. Bloblar, adında biçimini mdp-{poolName}-{agentMachineName}kullanan bir sanal dizin altında düzenlenir. Bu sanal dizin, stderr.log ve output dosyalarını içeren bir stdout.log sanal dizini ve çalıştırılan betiğin bir kopyasını içeren bir script sanal dizini içerir.

Yönetilen DevOps Havuzları bu günlükleri yönetmez, bu nedenle Azure Blob Depolama yaşam döngüsü yönetimi ilkelerini kullanarak depolama hesabınızdaki saklamalarını yönetmeniz gerekir. Adlı DeleteOldMDPLogs aşağıdaki örnek ilke, günlük bloblarını son değiştirilmelerinden üç gün sonra siler.

{
  "rules": [
    {
      "enabled": true,
      "name": "DeleteOldMDPLogs",
      "type": "Lifecycle",
      "definition": {
        "actions": {
          "baseBlob": {
            "delete": {
              "daysAfterModificationGreaterThan": 3
            }
          }
        },
        "filters": {
          "blobTypes": [
            "blockBlob"
          ],
          "prefixMatch": [
            "mdpprovisioningscriptlogs/"
          ]
        }
      }
    }
  ]
}

Azure Blob Depolama yaşam döngüsü yönetimi ilkeleri oluşturmak için GitHub Copilot yapay zeka yardımı alabilirsiniz. Azure Blob Depolama yaşam döngüsü yönetimi ilkeleri oluşturmak için aşağıdaki istemi özelleştirin.

Build an Azure Blob Storage lifecycle management policy named DeleteOldMDPLogs that deletes logs after three days.

Copilot tarafından oluşturulan ilke hakkında daha fazla bilgi edinmek için, Copilot isteminizde oluşturulan ilkenin açıklamasını sağlamasını isteyebilirsiniz.

Copilot yapay zeka ile desteklendiğinden sürprizler ve hatalar mümkündür. Daha fazla bilgi için Copilot genel kullanım hakkında sıkça sorulan sorular bölümüne bakın.

Daha fazla bilgi için bkz. Azure Blob Depolama yaşam döngüsü yönetimi ilkeleri ve Yaşam döngüsü yönetimi ilkesi yapılandırma.

Ayrıca bakınız