Ortam oluşturma ve hedefleme

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Bu makalede Azure Pipelines ortamlarının nasıl oluşturulacağı ve hedeflerinin nasıl oluşturulacağı açıklanmaktadır. Ortam, bir işlem hattından yapılan dağıtımlarla hedefleyebileceğiniz bir kaynak koleksiyonudur.

Ortam, işlem hattınızın yazılım dağıttığı mantıksal hedefi temsil eder. Tipik ortam adları Geliştirme, Test, Soru-Cevap, Hazırlama ve Üretim'tir.

Not

Azure DevOps ortamları Klasik işlem hatlarında kullanılamaz. Klasik işlem hatları için dağıtım grupları benzer işlevler sunar.

Ortamlar aşağıdaki avantajları sağlar:

  • Dağıtım geçmişi. İşlem hattı adı ve çalıştırma ayrıntıları, bir ortama ve kaynaklarına yapılan dağıtımlar için kaydedilir. Aynı ortamı veya kaynağı hedefleyen birden çok işlem hattı bağlamında, değişikliklerin kaynağını belirlemek için bir ortamın dağıtım geçmişini kullanabilirsiniz.

  • İşlemelerin ve iş öğelerinin izlenebilirliği. İşlem hattı çalıştırması içinde ortamı hedefleyen işleri görüntüleyebilirsiniz. Ayrıca, ortama yeni dağıtılan işlemeleri ve iş öğelerini de görüntüleyebilirsiniz. İzlenebilirlik ayrıca bir kod değişikliği işleme veya özellik/hata düzeltme iş öğesinin bir ortama ulaşıp ulaşmadığını izlemenize de olanak tanır.

  • Tanılama kaynağı durumu. Uygulamanın istenen durumda çalışıp çalışmadığını doğrulayabilirsiniz.

  • Güvenlik. Bir ortamı hedeflemek için hangi kullanıcıların ve işlem hatlarının izin verileceğini belirterek ortamların güvenliğini sağlayabilirsiniz.

Ortam, kaynakların gerçek dağıtım hedeflerini temsil ettiği bir kaynak grubudur. Azure Pipelines ortamları şu anda Kubernetes ve sanal makine kaynak türlerini desteklemektedir.

YAML işlem hattı mevcut olmayan bir ortama başvuruyorsa:

  • İşlemi gerçekleştiren kullanıcı biliniyorsa ve izinler atanabiliyorsa, Azure Pipelines ortamı otomatik olarak oluşturur.

  • Azure Pipelines, işlemi gerçekleştiren kullanıcı hakkında bilgi sahibi olmadığında (örneğin, dış kod düzenleyicisinden bir YAML güncelleştirmesinde), işlem hattı başarısız olur.

Önkoşullar

Ortam eklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

Ortam oluşturun

İlk ortamınızı oluşturmak için:

  1. adresinden Azure DevOps kuruluşunuzda https://dev.azure.com/{yourorganization} oturum açın ve projenizi açın.

  2. İşlem Hatları Ortamları>>Ortam oluştur'u seçin.

    Ortamları gösteren ekran görüntüsü.

  3. Ortam bilgilerini girin ve Oluştur'u seçin. Daha sonra mevcut bir ortama kaynak ekleyebilirsiniz.

    Yeni ortam oluşturma işleminin ekran görüntüsü.

İpucu

Boş bir ortam oluşturabilir ve dağıtım işlerinden buna başvurarak ortama dağıtım geçmişini kaydedebilirsiniz.

Azure Pipelines'ı kullanarak ortamlara dağıtabilirsiniz. Daha fazla bilgi için bkz . Azure Pipelines ile Azure Kubernetes Service'i derleme ve dağıtma.

Dağıtım işinden bir ortamı hedefleme

Dağıtım işi, sırayla çalışan adımlardan oluşan bir koleksiyondur. Aşağıdaki örnek YAML kod parçacığında gösterildiği gibi, bir dağıtım işini kullanarak bir kaynak grubunun tamamını hedefleyebilirsiniz. Kaynak adı belirtildiğinden myVM işlem hattı makinede çalışır.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 
      name: 'smarthotel-dev'
      resourceName: myVM
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Dağıtım işinden belirli bir ortam kaynağını hedefleme

Dağıtım hedefini ortamdaki belirli bir kaynağın kapsamına alabilir, böylece dağıtım geçmişini belirli bir kaynağa kaydedebilirsiniz. Dağıtım işinin adımları, dağıtım işinin hedefledığı kaynaktan hizmet bağlantısı ayrıntılarını otomatik olarak devralır.

Aşağıdaki örnekte, değerinin değeri kubernetesServiceConnection girişten environment.resource göreve otomatik olarak geçer.

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)

Not

Özel bir AKS kümesi kullanıyorsanız, API sunucusu uç noktası genel IP adresi aracılığıyla gösterilmediğinden kümenin sanal ağına bağlı olduğunuzdan emin olun.

Azure Pipelines, kümenin sanal ağına erişimi olan bir sanal ağ içinde şirket içinde barındırılan bir aracı ayarlamanızı önerir. Ayrıntılar için bkz . Özel kümeye bağlanma seçenekleri.

El ile onay denetimlerini kullanma

Azure Pipelines, üretim ortamlarına yapılan dağıtımları denetlemek için ortamlarda el ile onay denetimlerini destekler. Onay denetimleri, işlem hattındaki bir aşamanın kaynağı ne zaman tükettiği denetlemek için kaynak sahipleri tarafından kullanılabilir. Kaynak sahipleri, kaynağı kullanan bir aşamanın başlayabilmesi için karşılanması gereken onayları ve denetimleri tanımlayabilir.

Ortam Oluşturucusu, Yönetici ve Kullanıcı rolleri, okuyucu rolü değil, onayları ve denetimleri yönetebilir. Ortam sahibi olarak, onay denetimlerini kullanarak bir aşamanın ne zaman çalıştırılması gerektiğini el ile denetleyebilirsiniz. Daha fazla bilgi için bkz . Onayları ve denetimleri tanımlama.

Çalıştırma ayrıntılarında ortamlara bakın

İşlem hattı çalıştırma ayrıntılarının Ortamlar sekmesinde, bir işlem hattı çalıştırmasının dağıtım işleri tarafından hedeflenen tüm ortamları görebilirsiniz.

Çalıştırma ayrıntılarında Ortamları gösteren ekran görüntüsü.

Not

Azure Kubernetes Service (AKS) özel kümesi kullanıyorsanız Ortamlar sekmesi kullanılamaz.

Dağıtım geçmişini görüntüleme

Dağıtım geçmişini görüntülemek için Azure Pipelines Ortamları bölümünde Dağıtımlar sekmesini seçebilirsiniz.

  • Belirli bir ortamı hedefleyen tüm işlem hatlarından işleri görüntüleyin. Örneğin, her birinin kendi işlem hattı olan iki mikro hizmet aynı ortama dağıtılabilir. Dağıtım geçmişi, ortamı etkileyen tüm işlem hatlarının tanımlanmasına yardımcı olur ve ayrıca her işlem hattına göre dağıtım sırasını görselleştirmeye yardımcı olur.

    Dağıtım geçmişi listesini gösteren ekran görüntüsü.

  • İş ayrıntılarında detaya gitmek için dağıtım sayfasındaki Değişiklikler ve İş öğeleri sekmelerini seçin. Sekmeler, işlemelerin ve ortama dağıtılan iş öğelerinin listesini gösterir. Her liste öğesi, bu dağıtımdaki yeni öğeleri temsil eder.

    Değişiklikler sekmesinde, ilk liste o noktaya yönelik tüm işlemeleri içerir ve aşağıdaki listelerde yalnızca o iş için yapılan değişiklikler yer alır. Aynı işe birden çok işleme bağlıysa, Değişiklikler sekmesinde birden çok sonuç vardır.

    Dağıtım geçmişi altındaki işlemelerin ekran görüntüsü.

  • Aynı işe birden çok iş öğesi bağlıysa, İş öğeleri sekmesinde birden çok sonuç vardır.

    Dağıtım geçmişi altındaki iş öğelerinin ekran görüntüsü.

Güvenlik

Kullanıcı izinlerini ve işlem hattı izinlerini ayarlayarak ortamlarınızın güvenliğini sağlayabilirsiniz.

Kullanıcı izinleri

Kullanıcı izinleriyle ortamları kimlerin oluşturabileceğini, görüntüleyebileceğini, kullanabileceğini ve yönetebileceğini denetleyebilirsiniz. Dört rol vardır: Okuyucu, Kullanıcı ve Yönetici olmak üzere tüm ortamların kapsamına sahip oluşturucu.

Bir ortamın Kullanıcı izinleri panelini kullanarak kullanıcı eklemek için yetkilendirmek istediğiniz ortama gidin, Diğer eylemler simgesini seçin ve Güvenlik'i seçin.

Güvenlik sayfasının Kullanıcı izinleri panelinde Ekle'yi seçin ve ardından bir Kullanıcı veya grup ve uygun rol seçin.

Kullanıcı izinleri panelinde, devralınan izinleri ayarlayabilir ve ortamınız için rolleri geçersiz kılabilirsiniz.

Rol Açıklama
Yaratıcı Ortam hub'ı güvenlik seçeneğinden kullanılabilen genel rol. Bu rolün üyeleri projede ortam oluşturabilir. Katkıda bulunanlar varsayılan olarak üye olarak eklenir. Ortam henüz mevcut olmadığında yaml işlem hattını tetikleme için gereklidir.
Okuyucu Bu rolün üyeleri ortamı görüntüleyebilir.
Kullanıcı Bu rolün üyeleri YAML işlem hatlarını oluştururken veya düzenlerken ortamı kullanabilir.
Yönetici Bu rolün üyeleri izinleri yönetebilir, ortamları oluşturabilir, yönetebilir, görüntüleyebilir ve kullanabilir. Belirli bir ortam için, oluşturucusu varsayılan olarak Yönetici olarak eklenir. Yöneticiler bir ortama erişimi tüm işlem hatlarına da açabilir.

Önemli

Bir ortam oluşturduğunuzda, yönetici rolü yalnızca oluşturucuya aittir.

Rol Açıklama
Yaratıcı Ortam hub'ı güvenlik seçeneğinden kullanılabilen genel rol. Bu rolün üyeleri projede ortam oluşturabilir. Katkıda bulunanlar varsayılan olarak üye olarak eklenir. Ortam henüz mevcut olmadığında yaml işlem hattını tetikleme için gereklidir.
Okuyucu Bu rolün üyeleri ortamı görüntüleyebilir.
Kullanıcı Bu rolün üyeleri YAML işlem hatlarını oluştururken veya düzenlerken ortamı kullanabilir.
Yönetici Ortamı kullanmaya ek olarak, bu rolün üyeleri ortam için diğer tüm rollerin üyeliğini yönetebilir. Oluşturucular varsayılan olarak üye olarak eklenir.

İşlem hattı izinleri

Ortama dağıtım için tüm veya seçili işlem hatlarını yetkilendirmek için Güvenlik sayfasının İşlem Hattı izinleri panelini kullanın.

  • Ortamda veya kaynakta açık erişimi kaldırmak için İşlem hattı izinlerinde İzni kısıtla'yı seçin.

  • İzinler kısıtlandığında, belirli işlem hatlarının ortama veya belirli bir kaynağa dağıtılmasına izin verilmektedir. + İzin vermek için işlem hatları listesinden seçim yapın.

SSS

Ortam oluşturmaya çalıştığımda neden bir hata iletisi alıyorum?

Erişim reddedildi iletisini görüyorsanız: {User} eylemi gerçekleştirmek için Oluşturma izinlerine sahip, Paydaş rolüne sahip olup olmadığınızı denetlemek için Kuruluş Ayarları>Kullanıcıları'na gidin. Paydaşların depoya erişimi olmadığından Paydaş rolü ortam oluşturamıyor.

Erişim düzeyinizi değiştirin ve ortam oluşturup oluşturamadığını kontrol edin. Daha fazla bilgi için, bkz. Kullanıcı ve izin yönetimi hakkında SSS.

Neden bir ortamın bulunamadığına dair bir hata alıyorum?

İş XXXX: Ortam XXXX bulunamadı iletisini görürseniz. Ortam yok veya kullanım için yetkilendirilmemiş. Hatanın çeşitli olası nedenleri vardır.

  • Parametreler yalnızca çalışma zamanında genişletildiğinden çalışma zamanı parametreleri ortam oluştururken çalışmaz. Ortam oluşturmak için değişkenleri veya şablonların özelliklerini geçirmek için templateContext'i kullanabilirsiniz.

  • Azure Pipelines, ortamı oluşturan kullanıcı hakkında bilgi sahibi olmayabilir.

    Bir YAML işlem hattı dosyasında mevcut olmayan bir ortama başvurduğunuzda, Azure Pipelines aşağıdaki durumlarda ortamı otomatik olarak oluşturur:

    • Azure Pipelines web deneyiminde YAML işlem hattı oluşturma sihirbazını kullanıyor ve henüz oluşturulmamış bir ortama başvuruyorsunuz.
    • Azure Pipelines web düzenleyicisini kullanarak YAML dosyasını güncelleştiriyor ve başvuruyu ortama ekledikten sonra işlem hattını kaydedin.

    Aşağıdaki durumlarda Azure Pipelines, ortamı oluşturan kullanıcı hakkında bilgi içermez ve bu nedenle işlem hattı başarısız olur.

    • YAML dosyasını başka bir dış kod düzenleyicisi kullanarak güncelleştirirsiniz.
    • Mevcut olmayan bir ortama başvuru ekliyor ve ardından manuel olarak veya sürekli tümleştirme işlem hattının tetiklenmiş olmasına neden oluyorsunuz.

    Daha önce Azure Pipelines, bu durumları tüm proje katılımcılarını ortamın yönetici rolüne ekleyerek ele alıyordu. Bundan sonra projenin her üyesi bu izinleri değiştirebilir ve diğerlerinin ortama erişmesini engelleyebilir. Bu sonucu önlemek için Azure Pipelines artık bu işleri yerine getirmiyor.