GitHub Actions kullanarak ARM şablonlarını dağıtma

GitHub Actions , GitHub'da kod depoladığınız ve çekme istekleri ve sorunları üzerinde işbirliği yaptığınız yerde yazılım geliştirme iş akışlarınızı otomatikleştirmeye yönelik bir özellik paketidir.

Azure Resource Manager şablonunu (ARM şablonu) Azure'a dağıtma işlemini otomatikleştirmek için Azure Resource Manager Şablonu Dağıtma Eylemi'ni kullanın.

Önkoşullar

İş akışı dosyasına genel bakış

İş akışı, deponuzdaki yoldaki /.github/workflows/ bir YAML (.yml) dosyası tarafından tanımlanır. Bu tanım, iş akışını oluşturan çeşitli adımları ve parametreleri içerir.

Dosyanın iki bölümü vardır:

Section Görevler
Kimlik Doğrulaması 1. Dağıtım kimlik bilgileri oluşturun.
Dağıtma 1. Resource Manager şablonunu dağıtın.

Dağıtım kimlik bilgileri oluşturma

Azure CLI'da az ad sp create-for-rbac komutuyla bir hizmet sorumlusu oluşturun. Azure portalında veya Deneyin düğmesini seçerek bu komutu Azure Cloud Shell ile çalıştırın.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

parametresi --json-auth Azure CLI sürümlerinde >= 2.51.0 kullanılabilir. Bu --sdk-auth kullanımdan önceki sürümler kullanımdan kaldırma uyarısıyla kullanılır.

Yukarıdaki örnekte yer tutucuları abonelik kimliğiniz, kaynak grubu adınız ve uygulama adınızla değiştirin. Çıktı, Aşağıdakine benzer şekilde App Service uygulamanıza erişim sağlayan rol ataması kimlik bilgilerine sahip bir JSON nesnesidir. Bu JSON nesnesini daha sonra için kopyalayın.

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

GitHub gizli dizilerini yapılandırma

  1. GitHub'da deponuza gidin.

  2. Gezinti menüsünde Ayarlar'a gidin.

  3. Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.

    Gizli dizi ekleme ekran görüntüsü

  4. Yeni depo gizli dizisi'ni seçin.

  5. Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını AZURE_CREDENTIALSverin.

  6. Add secret (Gizli dizi ekle) öğesini seçin.

Resource Manager şablonu ekleme

GitHub deponuza bir Resource Manager şablonu ekleyin. Bu şablon bir depolama hesabı oluşturur.

https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

Dosyayı deponun herhangi bir yerine yerleştirebilirsiniz. Sonraki bölümdeki iş akışı örneği, şablon dosyasının azuredeploy.json olarak adlandırılıp deponuzun kökünde depolandığını varsayar.

İş akışı oluşturma

İş akışı dosyası, deponuzun kökündeki .github/workflows klasöründe depolanmalıdır. İş akışı dosya uzantısı .yml veya .yaml olabilir.

  1. GitHub deponuzdan üstteki menüden Eylemler'i seçin.
  2. Yeni iş akışı'ı seçin.
  3. İş akışını kendiniz ayarlayın'ı seçin.
  4. main.yml dışında farklı bir ad tercih ediyorsanız iş akışı dosyasını yeniden adlandırın. Örneğin: deployStorageAccount.yml.
  5. yml dosyasının içeriğini aşağıdakilerle değiştirin:
  on: [push]
  name: Azure ARM
  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 ARM template
      - name: Run ARM deploy
        uses: azure/arm-deploy@v1
        with:
          subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
          resourceGroupName: ${{ secrets.AZURE_RG }}
          template: ./azuredeploy.json
          parameters: storageAccountType=Standard_LRS

        # output containerName variable from template
      - run: echo ${{ steps.deploy.outputs.containerName }}

Not

ARM Dağıtımı eyleminde (örnek: .azuredeploy.parameters.json) bunun yerine bir JSON biçimi parametre dosyası belirtebilirsiniz.

İş akışı dosyasının ilk bölümü şunları içerir:

  • name: İş akışının adı.
  • tarihinde: İş akışını tetikleyen GitHub olaylarının adı. Ana dalda belirtilen iki dosyadan en az birini değiştiren bir gönderme olayı olduğunda iş akışı tetiklenir. İki dosya iş akışı dosyası ve şablon dosyasıdır.
  1. Start commit (İşlemeye başla) öğesini seçin.
  2. Doğrudan ana dala işle'yi seçin.
  3. Yeni dosya işle'yi (veya Değişiklikleri işle)'yi seçin.

İş akışı, iş akışı dosyası veya güncelleştirilmekte olan şablon dosyası tarafından tetiklenecek şekilde yapılandırıldığından, değişiklikleri kaydettikten hemen sonra iş akışı başlatılır.

İş akışı durumunu denetleme

  1. Eylemler sekmesini seçin. DeployStorageAccount.yml oluştur iş akışının listelendiğini görürsünüz. İş akışının çalıştırılması 1-2 dakika sürer.
  2. İş akışını seçerek açın.
  3. Dağıtımı doğrulamak için menüden ARM dağıtımını çalıştır'ı seçin.

Kaynakları temizleme

Kaynak grubunuz ve deponuz artık gerekli olmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.

Sonraki adımlar