Ortamı oluşturma ve hedefleme

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

Ortam, bir işlem hattından yapılan dağıtımlarla hedefleyebileceğiniz bir kaynak koleksiyonudur. Ortam adlarının tipik örnekleri Geliştirme, Test, Soru-Cevap, Hazırlama ve Üretim'tir. Azure DevOps ortamı, işlem hattınızın yazılım dağıttığı mantıksal bir hedefi temsil eder.

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.

Avantaj Açıklama
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, bir ortamın dağıtım geçmişi değişikliklerin kaynağını belirlemek için yararlıdır.
İşlemelerin ve iş öğelerinin izlenebilirliği bir ortamı hedefleyen işlem hattı çalıştırması içindeki işleri görüntüleyin. Ayrıca, ortama yeni dağıtılan işlemeleri ve iş öğelerini de görüntüleyebilirsiniz. İzlenebilirlik, bir kod değişikliğinin (işleme) veya özellik/hata düzeltmenin (iş öğeleri) bir ortama ulaşıp ulaşmadığını izlemesine de olanak tanır.
Tanılama kaynağı durumu Uygulamanın istenen durumda çalışıp çalışmadığını doğrulayın.
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ğlayın.

Ortam bir kaynak grubu olsa da, kaynaklar gerçek dağıtım hedeflerini temsil eder. Kubernetes kaynağı ve sanal makine kaynak türleri şu anda desteklenmektedir.

BIR YAML işlem hattı yazdığınızda ve var olmayan bir ortama başvurduğunuz zaman Azure Pipelines, işlemi gerçekleştiren kullanıcı bilindiğinde ve izinler atanabildiğinde ortamı otomatik olarak oluşturur. Azure Pipelines ortamı oluşturan kullanıcı hakkında bilgi sahibi olmadığında (örneğin: dış kod düzenleyicisinden yaml güncelleştirmesi), ortam mevcut değilse işlem hattınız başarısız olur.

Önkoşullar

Ortam oluşturun

  1. Kuruluşunuzda oturum açın: https://dev.azure.com/{yourorganization} ve projenizi seçin.

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

    Environments

  3. Ortam bilgilerini girin ve Oluştur'u seçin. Kaynaklar daha sonra mevcut bir ortama eklenebilir.

    Screenshot of creating a new environment.

Ortamlar oluşturmak ve ortamlara dağıtmak için de İşlem Hattı kullanın. Daha fazla bilgi için nasıl yapılır kılavuzuna bakın.

Bahşiş

Boş bir ortam oluşturabilir ve dağıtım işlerinden buna başvurabilirsiniz. Bu, dağıtım geçmişini ortama göre kaydetmenizi sağlar.

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

Dağıtım işi, sıralı olarak çalıştırılacak adımlardan oluşan bir koleksiyondur. Dağıtım işi, aşağıdaki YAML kod parçacığında gösterildiği gibi ortamın tamamını (kaynak grubu) hedeflemek için kullanılabilir. Kaynak adı belirtildiğinden işlem hattı myVM makinesinde ç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 bir ortamdaki belirli bir kaynağı hedefleme

Dağıtım hedefinin kapsamını ortamdaki belirli bir kaynağa göre ayarlayabilirsiniz. Ardından, dağıtım geçmişini ortamdaki belirli bir kaynağa kaydedebilirsiniz. Dağıtım işinin adımları, hizmet bağlantısı ayrıntılarını dağıtım işinin hedeflediği kaynaktan otomatik olarak devralır .

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)
         # value for kubernetesServiceConnection input automatically passed down to task by environment.resource input

Çalıştırma ayrıntılarındaki ortam

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

Environments in run details

AKS özel kümesi kullanıyorsanız Ortamlar sekmesi kullanılamaz.

Onaylar

Onay denetimlerini kullanarak aşamanın ne zaman çalıştırılması gerektiğini el ile denetleyin. Üretim ortamlarına yapılan dağıtımları denetlemek için onay denetimlerini kullanın. İşlem hattındaki bir aşamanın kaynağı ne zaman tükettiği denetlemek için kaynak Sahibi tarafından denetimler kullanılabilir. Ortam gibi bir kaynağın sahibi olarak, bu kaynağı kullanan bir aşama başlamadan önce karşılanması gereken onaylar ve denetimler tanımlayabilirsiniz.

Ortamlarda el ile onay denetimlerini destekliyoruz. Daha fazla bilgi için bkz. Onaylar.

Oluşturucu, Yönetici istrator ve kullanıcı rolleri onayları ve denetimleri yönetebilir. Okuyucu rolü onayları ve denetimleri yönetemez.

Dağıtım geçmişi

Ortamlar içindeki dağıtım geçmişi görünümü aşağıdaki avantajları sağlar.

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

    Screenshot of deployment history listing.

  • Ortama dağıtılan işlemelerin ve iş öğelerinin listesini görmek için iş ayrıntılarına gidin. İşlemelerin ve iş öğelerinin listesi, dağıtımlar arasındaki yeni öğelerdir. İlk listelemeniz tüm işlemeleri içerir ve aşağıdaki listelerde yalnızca değişiklikler yer alır. Aynı çekme isteğine birden çok işleme bağlıysa, iş öğelerinde birden çok sonuç görürsünüz ve sekmeleri değiştirir.

    Screenshot of commits under deployment history.

  • Aynı çekme isteğine birden çok iş öğesi bağlıysa, iş öğeleri sekmesinde birden çok sonuç görürsünüz.

    Screenshot of work items under deployment history.

Güvenlik

Kullanıcı izinleri

Kullanıcı izinleriyle ortamları kimlerin oluşturabileceğini, görüntüleyebileceğini, kullanabileceğini ve yönetebileceğini denetleyin. Dört rol vardır: Oluşturucu (kapsam: tüm ortamlar), Okuyucu, Kullanıcı ve Yönetici istrator. Belirli bir ortamın kullanıcı izinleri panelinde devralınan izinleri ayarlayabilir ve her ortam için rolleri geçersiz kılabilirsiniz.

  1. Yetkilendirmek istediğiniz belirli bir Ortama gidin.
  2. Ayarları görüntülemek için Güvenlik'i seçin>.
  3. Kullanıcı izinleri>+Kullanıcı veya grup ekle'yi>seçin ve ardından uygun bir rol seçin.
Rol Açıklama
Yaratıcısı 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 inistrator olarak eklenir. Yönetici istrator'lar 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ısı 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 işlem hattı izinlerini kullanın.

  • Ortamda veya kaynakta Açık erişimi kaldırmak için İşlem hattı izinlerinde İzni kısıtla'yı seçin.
  • Belirli işlem hatlarının bir ortama veya belirli bir kaynağa dağıtılmasına izin vermek için işlem + hatları listesinden seçim yapın.

Sonraki adımlar

Onaylar ve denetimleri tanımlama

SSS

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

Y: "Erişim reddedildi: {User} eylemi gerçekleştirmek için Oluşturma izinleri gerekiyor" iletisini görürseniz, kuruluş düzeyinde izinlerinizi denetleyin. Kuruluş Ayarları>Kullanıcılar’a gidin ve paydaş rolüne sahip olup olmadığınızı denetleyin. Paydaş rolü ortam oluşturamaz. 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.

S: Neden "İş XXXX: Ortam XXXX bulunamadı. Ortam yok veya kullanım için yetkilendirilmemiş” hatası alıyorum?

Y: Hatanın olası nedenlerinden bazıları şunlardır:

  • BIR YAML işlem hattı yazdığınızda ve YAML dosyasında mevcut olmayan bir ortama başvurduğunuz zaman, Azure Pipelines bazı durumlarda ortamı otomatik olarak oluşturur:

    • Azure Pipelines web deneyiminde YAML işlem hattı oluşturma sihirbazını kullanır ve henüz oluşturulmamış bir ortama başvurursunuz.
    • Azure Pipelines web düzenleyicisini kullanarak YAML dosyasını güncelleştiriyor ve mevcut olmayan bir ortama başvuru ekledikten sonra işlem hattını kaydediyorsunuz.
  • Aşağıdaki akışlarda, Azure Pipelines ortamı oluşturan kullanıcı hakkında bilgi içermez: YAML dosyasını başka bir dış kod düzenleyicisi kullanarak güncelleştirirsiniz, var olmayan bir ortama başvuru eklersiniz ve ardından el ile veya sürekli tümleştirme işlem hattının tetiklenmesine neden olursunuz. Bu durumda Azure Pipelines kullanıcıdan haberdar olmaz. Daha önce bu durumu, projeye tüm katkıda bulunanları ortamın yönetici rolüne ekleyerek ele almıştık. Bundan sonra projenin her üyesi bu izinleri değiştirebilir ve diğerlerinin ortama erişmesini engelleyebilir.

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

  • Paydaş erişim düzeyine sahip bir kullanıcı, paydaşların depoya erişimi olmadığından ortamı oluşturamaz.