Aracılığıyla paylaş


Öğretici: GitHub ve Azure Dağıtım Ortamlarını kullanarak CI/CD'de ortamları dağıtma

Bu öğreticide Azure Dağıtım Ortamlarını CI/CD işlem hattınızla tümleştirmeyi öğreneceksiniz. GitHub Actions, Azure Arc, GitLab veya Jenkins gibi CI/CD'yi destekleyen herhangi bir GitOps sağlayıcısını kullanabilirsiniz.

Sürekli tümleştirme ve sürekli teslim (CI/CD), ekiplerin yazılım değişikliklerini oluşturma, test etme ve dağıtma sürecini otomatikleştirmesine yardımcı olan bir yazılım geliştirme yaklaşımıdır. CI/CD, yazılım değişikliklerini daha sık ve daha güvenle yayınlamanızı sağlar.

Üç dal içeren bir iş akışı kullanırsınız: main, dev ve test.

  • Ana dal her zaman üretim olarak kabul edilir.
  • Ana daldan özellik dalları oluşturursunuz.
  • Özellik dallarını main ile birleştirmek için çekme talebi oluşturursunuz.

Bu öğreticideki iş akışı basitleştirilmiş bir örnektir. Gerçek dünya iş akışları daha karmaşık olabilir.

Bu öğreticiye başlamadan önce , Azure Dağıtım Ortamları için temel kavramları gözden geçirerek Dağıtım Ortamları bileşenleri ve kavramları hakkında bilgi edinebilirsiniz.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Geliştirme merkezi oluşturma ve yapılandırma
  • Anahtar kasası oluştur
  • GitHub deposu oluşturma ve yapılandırma
  • Kataloğu geliştirme merkezinize bağlama
  • Dağıtım kimliklerini yapılandırma
  • GitHub ortamlarını yapılandırma
  • CI/CD işlem hattını test edin

Önkoşullar

Ürün Gereksinimler
Gök mavisi - Azure aboneliği.
- Azure aboneliğinde sahip izinleri.
- Azure CLI yüklü.
Git - GitHub hesabı.
- Git yüklü.

1. Geliştirme merkezi oluşturma ve yapılandırma

Bu bölümde üç ortam türüne sahip bir Azure Dağıtım Ortamları geliştirme merkezi ve projesi oluşturacaksınız: Geliştirme, Test ve Üretim.

  • Üretim ortamı türü tek bir üretim ortamını içerir.
  • Geliştirme'de her özellik dalı için yeni bir ortam oluşturulur.
  • Her pull isteği için Test ortamında yeni bir çevre oluşturulur.

1.1 Azure CLI'yı ayarlama

Başlamak için Azure'da oturum açın. Aşağıdaki komutu çalıştırın ve kimlik doğrulama işlemini tamamlamak için istemleri izleyin:

az login

Ardından Azure CLI için Azure devcenter uzantısını yükleyin:

az extension add --name devcenter --upgrade

Geçerli uzantı yüklendikten sonra ad alanını Microsoft.DevCenter kaydedin:

az provider register --namespace Microsoft.DevCenter

Tavsiye

Bu öğretici boyunca, daha sonra kullanmak üzere çeşitli değerleri ortam değişkenleri olarak kaydedeceksiniz. Ayrıca, gerektiğinde kullanılabilir olduklarından emin olmak için bu değerleri başka bir yere kaydetmek isteyebilirsiniz.

Kullanıcı kimliğinizi alın ve daha sonra kullanmak üzere bir ortam değişkenine ayarlayın:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

Geçerli aboneliğinizin abonelik kimliğini alın:

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

Geçerli kiracınızın kiracı ID'sini elde edin:

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

Aşağıdaki ortam değişkenlerini ayarlayın:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Uyarı

Genel olarak benzersiz bir anahtar kasası adı kullanmanız gerekir. Aksi takdirde aşağıdaki hatayı alabilirsiniz:

Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 Geliştirme merkezi oluşturma

Geliştirme merkezi, benzer ayarlara sahip proje ve ortamlardan oluşan bir koleksiyondur. Geliştirme merkezleri, ortam oluşturmak için kullanılabilecek şablon ve yapıt kataloğuna erişim sağlar. Geliştirme merkezleri ayrıca ortamlara ve projelere erişimi yönetmek için bir yol sağlar.

Kaynak grubu oluşturma:

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Geliştirme merkezi oluşturma:

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Önceki komut JSON çıkışını oluşturur. id ve identity.principalId değerlerini daha sonra kullanmak üzere ortam değişkenleri olarak kaydedin.

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 Abonelikte Geliştirici Merkezi kimlik sahibi rolünü atama

Geliştirme merkezi, ortam türleriyle ilişkili aboneliklerde rol atamak için izinlere ihtiyaç duyar.

Gereksiz karmaşıklığı azaltmak için bu öğreticide geliştirme merkezi ve tüm ortam türleri için tek bir abonelik kullanacaksınız. Uygulamada geliştirme merkezi ve hedef dağıtım abonelikleri büyük olasılıkla farklı ilkeler uygulanmış ayrı abonelikler olacaktır.

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 Ortam türlerini oluşturma

Geliştirme merkezi düzeyinde ortam türleri geliştirme ekiplerinin oluşturabileceği geliştirme, test, korumalı alan, ön üretim ve üretim gibi ortamları tanımlar.

Üç yeni ortam türü oluşturun: Geliştirme, Test ve Üretim:

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 Proje oluşturma

Proje, geliştirme ekibinin erişim noktasıdır. Her proje bir geliştirme merkeziyle ilişkilendirilir.

Proje oluşturma:

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

Önceki komut JSON çıkışını oluşturur. id Değeri daha sonra kullanmak üzere bir ortam değişkeni olarak kaydedin:

AZURE_PROJECT_ID=<id>

Projede kendinize DevCenter Proje Yöneticisi rolünü atayın:

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 Proje ortamı türleri oluşturma

Proje düzeyinde, platform mühendisleri geliştirme ekibi için hangi ortam türlerinin uygun olduğunu belirtir.

Geliştirme merkezinde oluşturduğunuz ortam türlerinin her biri için yeni bir proje ortamı türü oluşturun:

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. Anahtar kasası oluşturun

Bu bölümde yeni bir anahtar kasası oluşturacaksınız. Eğitimin ilerleyen bölümlerinde GitHub'dan kişisel erişim belirtecini kaydetmek için bu anahtar kasasını kullanacaksınız.

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

Bir kez daha, önceki komutun JSON çıkışındaki öğesini ortam değişkeni olarak kaydedin id :

AZURE_KEYVAULT_ID=<id>

Kendinize yeni anahtar kasasında Anahtar Kasası Yöneticisi rolünü verin.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

Geliştirme merkezinin kimliğine Key Vault Gizli Anahtarlar Kullanıcısı rolünü atayın.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. GitHub deposu oluşturma ve yapılandırma

Bu bölümde, kataloğu depolamak için yeni bir GitHub deposu oluşturacaksınız. Azure Dağıtım Ortamları hem GitHub hem de Azure DevOps depolarını destekler. Bu öğreticide GitHub'ı kullanacaksınız.

3.1 GitHub deposu oluşturma

Bu adımda GitHub hesabınızda önceden tanımlanmış dizin yapısı, dalları ve dosyaları olan yeni bir depo oluşturacaksınız. Bu öğeler örnek şablon deposundan oluşturulur.

  1. Örnek şablondan yeni bir GitHub deposu oluşturun:

    GitHub'ın yeni depo oluşturma sayfasını gösteren ekran görüntüsü.

  2. Ücretli bir GitHub hesabınız yoksa deponuzu Genel olarak ayarlayın.

  3. Depo oluşturseçin.

3.2 Deponun ana şubesini koruma

Dal koruma kurallarını ayarlayarak önemli dalları koruyabilirsiniz. Koruma kuralları, katılımcıların bir dalı silip silemeyeceğini veya dala zorla gönderme yapıp yapamayacağını tanımlar. Dalına yapılan gönderimler için, durum denetimlerini geçme veya doğrusal işlem geçmişini uygulama gibi gereksinimleri de ayarlarlar.

Uyarı

Korumalı dallar GitHub Free ve GitHub Free ile kuruluşlar için genel depolarda ve GitHub Pro, GitHub Team, GitHub Enterprise Cloud ve GitHub Enterprise Server ile genel ve özel depolarda kullanılabilir. Daha fazla bilgi için bkz. GitHub planları.

  1. Henüz açık değilse deponuzun ana sayfasına gidin.

  2. Pencerenin üst kısmındaki menüden Ayarlar'ı seçin:

    GitHub deposu sayfasını gösteren ekran görüntüsü. Ayarlar vurgulanır.

  3. Sol kenar çubuğunun Kod ve otomasyon bölümünde Dallar'ı seçin:

    Ayarlar sayfasını gösteren ekran görüntüsü. Dallar vurgulanır.

  4. Dal koruma kuralları'nın altında Dal kural kümesi ekle'yi seçin:

    Dal koruma kuralları sayfasını gösteren ekran görüntüsü. Dal kural kümesi eklenmiş olarak vurgulanmış.

  5. Yeni dal kural kümesi sayfasındaki Kural Kümesi Adı alanına CI-CD-tutorial-ruleset girin:

    Kural Kümesi Adı kutusunu gösteren ekran görüntüsü. Kural kümesi adı vurgulanır.

  6. Hedef dallar'ın altında Hedef ekle'yi seçin ve ardından Varsayılan dalı ekle veya Tüm dalları ekle'yi seçin:

    Hedef dallar bölümünü gösteren ekran görüntüsü. Hedef ekle seçeneği vurgulanır.

  7. Dal kuralları'nın altında Birleştirmeden önce çekme isteği iste'yi seçin:

    Dal kurallarını gösteren ekran görüntüsü. Birleştirmeden önce çekme isteği iste onay kutusu seçili ve vurgulanmış.

  8. İsteğe bağlı olarak , daha fazla koruma kuralı etkinleştirebilirsiniz.

  9. Oluştur'i seçin.

3.3 Depo değişkenlerini yapılandırma

  1. Kenar çubuğunun Güvenlik bölümünde Gizli diziler ve değişkenler'i ve ardından Eylemler'i seçin:

    Kenar çubuğunun Güvenlik bölümünü gösteren ekran görüntüsü. Eylemler vurgulanır.

  2. Değişkenler sekmesini seçin.

  3. Aşağıdaki tablodaki her öğe için:

    1. Yeni depo değişkeni'ni seçin.
    2. Ad alanına değişken adını girin.
    3. Değer alanına tabloda açıklanan değeri girin.
    4. Değişken ekle'yi seçin.
    Değişken adı Değişken değeri
    AZURE_DEVCENTER Geliştirme merkezi adınız
    AZURE_PROJECT Projenizin adı
    Azure_Katalog Ortamlar olarak ayarla
    AZURE_KATALOĞU_ÖĞESİ FunctionApp olarak ayarla
    AZURE_ABONELİK_KİMLİĞİ Azure abonelik kimliğiniz
    AZURE_TENANT_ID Azure kiracı kimliğiniz

    Değişkenler tablosunu içeren değişkenler sayfasını gösteren ekran görüntüsü.

3.4 GitHub kişisel erişim belirteci oluşturma

Ardından Azure Dağıtım Ortamları geliştirme merkezinizin deponuza bağlanmasına ve ortam kataloğunu kullanmasına olanak tanımak için ayrıntılı bir kişisel erişim belirteci oluşturun.

Uyarı

Geri bildirim tartışmasında ayrıntılı kişisel erişim belirteçleri hakkında geri bildirim bırakabilirsiniz.

  1. GitHub.com herhangi bir sayfanın sağ üst köşesinde profil fotoğrafınızı ve ardından Ayarlar'ı seçin.

  2. Sol kenar çubuğunda Geliştirici ayarları'nı seçin.

  3. Sol kenar çubuğundaki Kişisel erişim belirteçleri altında İnce belirteçler'i ve ardından Yeni belirteç oluştur'u seçin:

    GitHub kişisel erişim belirteci seçeneklerini gösteren ekran görüntüsü. Ayrıntılı belirteçler ve Yeni belirteç oluştur seçenekleri vurgulanır.

  4. Yeni ayrıntılı kişisel erişim belirteci sayfasında, Belirteç adı'nın altında belirteç için bir ad girin.

  5. Süre sonu bölümünde belirteç için bir süre sonu seçin.

  6. Kaynak sahibi'nin altında GitHub kullanıcı adınızı seçin.

  7. Depo erişimi'nin altında Yalnızca depoları seçin'i seçin. Seçili depolar'ın altında, oluşturduğunuz depoyu arayın ve seçin:

    GitHub deposu erişim seçeneklerini gösteren ekran görüntüsü. Yalnızca depoları seç seçeneği vurgulanır.

  8. İzinler'in altında Depo izinleri'ni seçin ve ardından İçerikler'iSalt okunur olarak değiştirin:

    GitHub depo izinlerini gösteren ekran görüntüsü. İçindekiler bölümü vurgulanır.

  9. Belirteç oluştur'a tıklayın.

  10. Kişisel erişim belirtecinizi kopyalayın ve kaydedin. Yeniden görüntüleyemezsiniz.

3.5 Kişisel erişim belirtecinizi anahtar kasasına kaydedin

Ardından, kişisel erişim belirtecini pat adlı bir anahtar kasası sırrı olarak kaydedin.

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. Kataloğu geliştirme merkezinize bağlama

Azure Dağıtım Ortamları'nda katalog , bir dizi ortam tanımı içeren bir depodur. Katalog öğeleri, kod olarak altyapı (IaC) şablonundan ve bildirim işlevi gören bir ortam dosyasından oluşur. Şablon ortamı tanımlar ve ortam dosyası şablon hakkında meta veriler sağlar. Geliştirme ekipleri, ortam oluşturmak için katalogdaki ortam tanımlarını kullanır.

GitHub deponuzu oluşturmak için kullandığınız şablon , Ortamlar klasöründe bir katalog içerir.

Kataloğu geliştirme merkezinize ekleme

Aşağıdaki komutta < Organization/Repository > yerine GitHub kuruluşunuzun ve deponuzun ismini yazın:

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. Dağıtım kimliklerini yapılandırma

GitHub Actions ile OpenID Connect , sağlamlaştırılmış güvenlik sağlamak için kısa ömürlü belirteçler kullanan bir kimlik doğrulama yöntemidir. Azure'da GitHub Actions'ın kimliğini doğrulamak için önerilen yöntemdir.

Ayrıca bir gizli dizi kullanarak hizmet sorumlusunun kimliğini doğrudan doğrulayabilirsiniz, ancak bu öğreticinin kapsamı dışındadır.

5.1 Dağıtım kimliklerini oluşturun

  1. Üç ortam türünün her biri için Microsoft Entra uygulamalarını ve hizmet sorumlularını kaydedin.

    Microsoft Entra uygulamasını Dev için oluşturun:

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    Bu komut, Graph API ile federasyon kimlik bilgileri oluştururken kullandığınız bir id ve bir appId (ayrıca istemci kimliği olarak da adlandırılır) ile JSON çıktısı sağlar.

    Aşağıdaki ortam değişkenlerini ayarlayın:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Test için şu adımları yineleyin:

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    Prod için adımları tekrarlayın:

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. Her uygulama için bir hizmet sorumlusu oluşturun.

    Dev için yeni bir hizmet sorumlusu oluşturmak için aşağıdaki komutu çalıştırın:

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    Bu komut, sonraki adımda kullanılacak farklı id bir JSON çıkışı oluşturur.

    Aşağıdaki ortam değişkenini ayarlayın:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Test için şu adımları yineleyin:

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    Prod için adımları tekrarlayın:

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. Her Microsoft Entra uygulaması için yeni bir federasyon kimliği kimlik bilgisi oluşturmak için aşağıdaki komutları çalıştırın.

    Aşağıdaki üç komutun her birinde < Organization/Repository > öğesini kendi GitHub kuruluşunuzun ve depo adınızla değiştirin.

    Dev için federasyon kimliği kimlik bilgilerini oluşturun:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    Test için kimlik bilgilerini oluşturun:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    Prod için kimlik bilgilerini oluşturun:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 Dağıtım kimliklerine rol atama

  1. Her dağıtım kimliğine projedeki Okuyucu rolünü atayın:

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. Dağıtım Ortamları Kullanıcı rolünü her dağıtım kimliğinin ilgili ortam türüne atayın:

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. GitHub ortamlarını yapılandırma

GitHub ortamlarıyla, koruma kuralları ve gizlilerle ortamları yapılandırabilirsiniz. Bir ortamı referans alan iş akışı görevi, ortamın gizli bilgilerini çalıştırmadan önce veya erişmeden önce ortam için herhangi bir koruma kuralına uymalıdır.

Azure Dağıtım Ortamları projesindeki ortam türlerine eşlenen Geliştirme, Test ve Üretim ortamları oluşturun.

Uyarı

Ortamlar, ortam sırları ve ortam koruma ölçütleri tüm ürünler için genel depolarda bulunmaktadır. Özel veya iç depolardaki ortamlara, ortam gizli dizilerine ve dağıtım dallarına erişmek için GitHub Pro, GitHub Team veya GitHub Enterprise kullanmanız gerekir. Özel veya iç depolardaki diğer ortam koruma kurallarına erişmek için GitHub Enterprise'ı kullanmanız gerekir. Daha fazla bilgi için bkz. GitHub planları.

6.1 Geliştirme ortamını oluşturma

  1. GitHub'da deponuzun ana sayfasına gidin.

  2. Deponuzun adının altında Ayarlar'ı seçin. Ayarlar sekmesini göremiyorsanız... açılan menüsünü ve ardından Ayarlar'ı seçin.

  3. Sol kenar çubuğunda Ortamlar'ı seçin.

  4. Yeni ortam'ı seçin, ortam adı olarak Dev yazın ve ardından Ortamı yapılandır'ı seçin:

    Ortam Ekleme / bölmesini gösteren ekran görüntüsü. Ortam adı Dev'dir ve Ortamı yapılandır düğmesi vurgulanır.

  5. Ortam gizli anahtarları altında Ortam gizli anahtarı ekle'yi seçin ve Ad kutusuna AZURE_CLIENT_ID girin.

    Ortam / Geliştirmeyi Yapılandır penceresini gösteren ekran görüntüsü. Ortam gizliliği ekle vurgulanmış.

  6. Değer kutusuna, daha önce oluşturduğunuz appId Microsoft Entra uygulamasının istemci kimliğini () girin (ortam değişkeni olarak $DEV_AZURE_CLIENT_ID kaydedilir):

    Gizli dizi ekle kutusunun ekran görüntüsü. Ad AZURE client ID olarak ayarlanır, değer bir kimlik numarasına ayarlanır ve Gizli dizi ekle düğmesi vurgulanır.

  7. Gizli eklemek içinseçin.

6.2 Test ortamını oluşturma

Sol kenar çubuğunda Ortamlar'ı seçerek ana ortamlar sayfasına dönün.

  1. Yeni ortam'ı seçin, ortam adı için Test yazın ve ardından Ortamı yapılandır'ı seçin.

  2. Ortam gizli anahtarları altında Ortam gizli anahtarı ekle'yi seçin ve Ad kutusuna AZURE_CLIENT_ID girin.

  3. Değer kutusuna, daha önce oluşturduğunuz appId Microsoft Entra uygulamasının istemci kimliğini () girin (ortam değişkeni olarak $TEST_AZURE_CLIENT_ID kaydedilir).

  4. Gizli eklemek içinseçin.

6.3 Prod ortamını oluşturma

Bir kez daha sol kenar çubuğunda Ortamlar'ı seçerek ana ortamlar sayfasına dönün.

  1. Yeni ortam'ı seçin, ortam adı olarak Prod yazın ve ardından Ortamı yapılandır'ı seçin.

  2. Ortam gizli anahtarları altında Ortam gizli anahtarı ekle'yi seçin ve Ad kutusuna AZURE_CLIENT_ID girin.

  3. Değer kutusuna, daha önce oluşturduğunuz appId Microsoft Entra uygulamasının istemci kimliğini () girin (ortam değişkeni olarak $PROD_AZURE_CLIENT_ID kaydedilir).

  4. Gizli eklemek içinseçin.

Ardından, bu ortam için kendinizi zorunlu değerlendirici olarak ayarlayın. Prod'a dağıtma girişiminde bulunulduğunda GitHub Actions başlamadan önce onay bekler. Onay bekleyen bir işin durumu Bekliyor olur. Bir iş 30 gün içinde onaylanmamışsa otomatik olarak başarısız olur.

Ortamlar ve gerekli onaylar hakkında daha fazla bilgi için bkz. Dağıtım için ortamları kullanma.

  1. Gerekli gözden geçirenler'i seçin.

  2. GitHub kullanıcı adınızı arayın ve seçin. En fazla altı kişi veya ekip girebilirsiniz. Devam etmesi için gerekli gözden geçirenlerden yalnızca birinin işi onaylaması gerekir.

  3. Koruma kurallarını kaydet seçin.

Son olarak, dağıtım dalı olarak yapılandırın main :

  1. Dağıtım dalları ve etiketler listesinde Seçili dallar ve etiketler'i seçin.

  2. Dağıtım dalı veya etiket kuralı ekle seçeneğini seçin, Başvuru türü: Dal'ın seçili olduğundan emin olun ve Ad deseni kutusuna main girin.

  3. Kural ekle'yi seçin.

7. CI/CD işlem hattını test edin

Bu bölümde, depoda bazı değişiklikler yapın ve CI/CD işlem hattını test edin.

7.1 Depoyu kopyalama

  1. Git Bash'te deponuzu yerel olarak kopyalamak istediğiniz klasöre geçmek için kullanın cd .

  2. Depoyu kopyalayın. Aşağıdaki komutta < Organization/Repository > değerini GitHub kuruluşunuzun ve deponuzun adıyla değiştirmeyi unutmayın.

    git clone https://github.com/< Organization/Repository >.git
    
  3. Kopyalanan dizine gidin:

    cd <repository>
    
  4. Yeni bir dal oluşturun ve uzaktan yayımlayın:

    git checkout -b feature1
    
    git push -u origin feature1
    

    Bu dala özgü yeni bir ortam Azure'da oluşturulur.

  5. GitHub'da yeni oluşturduğunuz deponuzun ana sayfasına gidin.

  6. Deponuzun adının altında Eylemler'i seçin:

    Yeni bir Ortam Oluştur iş akışının çalıştığını görmeniz gerekir.

7.2 Kodda değişiklik yapma

  1. Yerel olarak kopyalanan depoyu Visual Studio Code'da açın.

  2. ADE.Tutorial klasöründe bir dosyayı değiştirin.

  3. Değişikliğinizi kaydedin.

7.3 Ortamı güncellemek için değişikliklerinizi gönderin

  1. Değişikliklerinizi sahneleyin ve feature1 dalına gönderin.

    git add .
    git commit -m '<commit message>'
    git push
    
  2. Deponuzun Eylemler sayfasında yeni bir Güncelleştirme Ortamı iş akışının çalıştığını görürsünüz.

7.4 Çekme isteği oluşturma

  1. GitHub çekme isteği main <- feature1oluşturun.

  2. Deponuzun Eylemler sayfasında, çekme isteğine özgü bir ortam oluşturmak için yeni bir iş akışının başlatıldığını görürsünüz. Test ortamı türü kullanılır.

7.5 Çekme isteğini birleştirme

  1. GitHub'da oluşturduğunuz pull request'e gidin.

  2. Pull isteğini birleştirin.

    Değişiklikleriniz üretim ortamında yayımlanır ve dal ve çekme isteği ortamları silinir.

Kaynakları temizleme

Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, daha fazla ücret ödememek için bunları silin. Örnek uygulamayı farklı bir kaynak grubuna dağıttıysanız aşağıdaki adımları tekrarlamak isteyebilirsiniz.

Azure portalını kullanarak kaynakları silmek için:

  1. Sol üst köşedeki menü düğmesini ve ardından Kaynak grupları'nı seçin.

  2. Listeden, oluşturduğunuz kaynak grubunu seçin.

  3. Kaynak grubunu sil'i seçin.

  4. Kaynak grubu adını girin. Ardından Sil'i seçin.

Azure CLI kullanarak kaynakları silmek için aşağıdaki komutu girin:

az group delete --name <my-dev-center-rg>

Kaynak grubunu sildiğinizde içindeki tüm kaynakların silineceği unutmayın.