Aracılığıyla paylaş


Azure DevOps ortamları oluşturma ve hedefleme

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

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 grubudur.

Ortam, işlem hattınızın yazılım dağıttığı mantıksal hedefi temsil eder. Yaygın ortam adları Arasında Geliştirme, Test, Soru-Cevap, Hazırlama ve Üretim yer alır.

Not

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

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

  • Dağıtım geçmişi. İşlem hattı adı ve işletim ayrıntıları, bir ortama ve kaynaklarına yapılan dağıtımlar için kaydedilmektedir. 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.

  • Komitelerin ve iş öğelerinin izlenebilirliği. İşlem hattı çalışmasında bir ortamı hedefleyen işleri görüntüleyebilirsiniz. Ayrıca, ortama yeni dağıtılan taahhütleri 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ğı sağlığı. 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

Kategori Gereksinimler
Azure DevOps - Azure DevOps projesi.
- Microsoft tarafından barındırılan ajanlarda pipeline'ları çalıştırma yeteneği. Paralel bir satın alabilir veya ücretsiz katman isteyebilirsiniz.
- YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma.
- İzinler:
     Ortam eklemek için, projenizdeki ortamlar için Oluşturucu rolü . Varsayılan olarak, Yapı Yöneticileri, Yayın Yöneticileri ve Proje Yöneticileri gruplarının üyeleri de ortamlar oluşturabilir.
Gök mavisi Bir Azure aboneliği.

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 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

Dağıtım geçmişini ortamda kaydetmek için boş bir ortam oluşturun ve dağıtım işlerinde bu ortama referans gösterin.

Ortamları program aracılığıyla oluşturmak ve yönetmek için Azure DevOps Ortamları REST API'sini kullanın.

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

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

Dağıtım işi sıralı olarak çalışan adımlar içerir. 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. İşlem hattı, kaynak adı belirtildiğinden 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 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, kubernetesServiceConnection değerinin environment.resource girişinden göreve otomatik olarak geçtiği gösterilmektedir.

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

Not

Özel AKS kümesi kullanıyorsanız, API sunucusu uç noktası genel IP adresi üzerinden sunulmadığından kümenin sanal ağına bağlı olduğunuzdan emin olun.

Azure Pipelines, kümeye ait sanal ağa erişimi olan bir sanal ağ içinde kendinden 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 dağıtımları denetlemek için el ile onay denetimlerini destekler. Bu denetimler, kaynak sahiplerinin işlem hattındaki bir aşamanın kaynağı ne zaman tükettiği denetlemesine olanak tanır. 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, ancak 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.

Koşum detayları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 gösterilen Ortamların 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, ortama dağıtılan commit ve iş öğelerinin listelerini 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 taahhüt 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: Tüm ortamların kapsamına sahip Oluşturucu, Okuyucu, Kullanıcı ve Yönetici.

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ı Ortamlar Hub'ındaki 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ı tetiklemek için gereklidir.
Okuyucu Bu role sahip üyeler 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 ortamın erişimini tüm pipeline'lara açabilir.

Önemli

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

Rol Açıklama
Yaratıcı Ortamlar Hub'ındaki 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ı tetiklemek için gereklidir.
Okuyucu Bu role sahip üyeler 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.

Boru 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 İzni kısıtla seçeneğini İşlem hattı izinlerinde seçin.

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

SSS

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

Erişim reddedildi bildirimi görüyorsanız: {User}'ın eylemi gerçekleştirmek için Oluşturma izinlerine ihtiyacı var, Paydaş rolüne sahip olup olmadığınızı denetlemek üzere Kuruluş AyarlarıKullanıcılar'a 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 Sıkça Sorulan Sorular.

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

Eğer İş XXXX: Ortam XXXX bulunamadı. Ortam mevcut olmayabilir veya kullanım için yetkilendirilmemiş olabilir ile karşılaşırsanız, hatanın çeşitli olası nedenleri olabilir.

  • 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.

    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 referansı ortama ekledikten sonra işlem hattını kaydediyorsunuz.

    Aşağıdaki durumlarda, Azure Pipelines ortamı oluşturan kullanıcı hakkında bilgi içermez, 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 referans ekliyor ve ardından bir manuel veya sürekli tümleştirme işlem hattı tetikliyorsunuz.

    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.