Alıştırma - GitHub iş akışlarıyla Bicep dosyası dağıtma

Tamamlandı

GitHub Actions , doğası gereği Azure Pipelines'a benzer. Yazılım geliştirme ve dağıtımları otomatikleştirmek için bir yol sağlar. Bu alıştırmada GitHub Action kullanarak bicep dosyasını dağıtmayı öğreneceksiniz.

Önkoşullar

  • Burada ücretsiz olarak oluşturabileceğiniz bir GitHub hesabına ihtiyacınız olacaktır.
  • Daha önce Alıştırma - Bicep şablonları oluşturma bölümünde oluşturulan Bicep dosyanızı ve iş akışlarınızı depolamak için bir GitHub deposu da gereklidir. GitHub deponuzu oluşturduktan sonra, Bicep dosyasını bu depoya gönderin.
  • Azure'a dağıtım için, burada ücretsiz olarak oluşturulabilen bir Azure aboneliğine erişim gerekir.

Azure'da hizmet sorumlusu oluşturma

Kaynaklarınızı Azure'a dağıtmak için GitHub'ın kullanabileceği bir hizmet sorumlusu oluşturmanız gerekir. Azure portalında bir terminal açın veya Cloud Shell'i kullanın ve aşağıdaki komutları yazın:

az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth

Not

Unutmayın, {subscription-id}'yi gerçek abonelik kimliğiniz ile değiştirin.

Komutu anlama

  • az ad sp create-for-rbac: Rol bazlı erişim kontrolü için bir hizmet ilkesi oluşturur.
  • --ad: Hizmet sorumlusunun adı.
  • --rol:contributor rolünü atar ve kaynakların tam olarak yönetilmesine olanak tanır.
  • --Kapsam: Erişimi belirli bir kaynak grubuyla sınırlar.
  • --sdk-auth: Kimlik bilgilerini SDK kimlik doğrulamasına uygun bir biçimde çıkışlar.

İşlem başarılı olduğunda, JSON nesnesi, tenantId, subscriptionId, clientId ve clientSecret gibi birkaç ek özelliği içermelidir.

{
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
}

GitHub gizli dizilerinize eklemeniz gerekeceğinden bu nesneyi not alın.

GitHub gizli anahtar oluşturma

GitHub deponuzda Ayarlar>Gizli>Actions adımlarına gidin. adlı AZURE_CREDENTIALS yeni bir gizli dizi oluşturun ve önceki adımda aldığınız JSON nesnesinin tamamını yapıştırın.

Kaynak grubu adı için ad AZURE_RG ve abonelik kimliği adı AZURE_SUBSCRIPTION olan bir gizli veri oluşturun.

GitHub gizli dizileri oluşturma ve yönetme sayfasının ekran görüntüsü.

Gizli bilgiler neden kullanılır?

GitHub gizli bilgiler hassas bilgileri güvenli bir şekilde depolar. Bunlar şunlardır:

  • Şifrelenmiş:GitHub'da güvenli bir şekilde depolanır.
  • Günlüklerde görünmez: İş akışı çalıştırma günlüklerinde maskelenmiş.
  • İş akışlarında erişilebilir: İş akışı yürütme sırasında ortam değişkenleri olarak kullanılabilir.

GitHub eylemi oluşturma

Yeni iş akışı oluşturma

  1. İlk olarak deponuza gidin ve Eylemler menüsünü seçin. Ardından, deponuzda boş bir iş akışı oluşturmak için bir iş akışı ayarlayın. İsterseniz dosyayı farklı bir adla yeniden adlandırabilirsiniz.

    GitHub yeni dosya oluşturma, düzenleme ve önizleme ekran görüntüsü.

İş akışını tanımlama

  1. Dosyanın içeriğini aşağıdaki kod parçacığıyla değiştirin:

    on: [push]
    name: Azure Resource Manager
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
          # Checkout code
          - uses: actions/checkout@main
    
            # Log into Azure
          - uses: azure/login@v1
            with:
              creds: ${{ secrets.AZURE_CREDENTIALS }}
    
            # Deploy Bicep file
          - name: deploy
            uses: azure/arm-deploy@v1
            with:
              subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
              resourceGroupName: ${{ secrets.AZURE_RG }}
              template: ./main.bicep
              parameters: storagePrefix=stg
              failOnStdErr: false
    

    Parametre değerini storagePrefix kendinizinkiyle değiştirebilirsiniz.

İş akışını anlama

Bu GitHub Action iş akışı aşağıdakileri gerçekleştirir:

  • Tetiklemek: Kod depoya (on: [push] ) gönderildiğinde otomatik olarak çalışır.

  • İş:build-and-deploy adlı bir işi, Ubuntu çalıştırıcısı üzerinde çalışacak şekilde tanımlar.

  • Steps:

    • Çıkış kodu: Depo kodunu dışa aktarmak için actions/checkout@main kullanır.
    • Azure'da oturum açın: Gizli anahtarı kullanarak azure/login@v1 Azure'da kimliğinizi doğrularAZURE_CREDENTIALS.
    • Bicep dosyasını dağıtma:azure/arm-deploy@v1 kullanarak Bicep şablonunu dağıtın:
      • subscriptionId: Azure abonelik kimliği gizli bilgilerden.
      • resourceGroupName: Gizli bilgilerden kaynak grubu adı.
      • template: Bicep dosyasının yolu.
      • parameters: Bicep şablonuna geçirilen parametreler.
      • failOnStdErr: Standart hata çıktısında başarısız olmamak için false ayarlayın.

    Not

    İş akışının ilk bölümü tetikleyiciyi ve adını tanımlar. Gerisi bir iş tanımlar ve kodu kullanıma almak, Azure'da oturum açmak ve Bicep dosyasını dağıtmak için birkaç görev kullanır.

İş akışını işleme

  1. İşlemeyi başlat'ı seçin ve açılan iletişim kutusuna bir başlık ve açıklama girin. Ardından Doğrudan ana dala işle'yi ve ardından Yeni dosya işle'yi seçin.

    GitHub'ın ana dala yeni bir dosya işlemesinin ekran görüntüsü.

İş akışını izleme

  1. Eylemler sekmesine gidin ve çalışması gereken yeni oluşturulan eylemi seçin.

    Çalıştırılan ve dağıtılan GitHub eyleminin ekran görüntüsü.

Dağıtımı doğrulayın

  1. Durumu izleyin ve iş tamamlandığında depolama hesabının oluşturulup oluşturulmadığını görmek için Azure portalını denetleyin.

    GitHub eylemi başarıyla yürütülen işin ekran görüntüsü.