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.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
Bir GitHub hesabı. Hesabınız yoksa ücretsiz olarak kaydolun.
- Resource Manager şablonlarınızı ve iş akışı dosyalarınızı depolamak için bir GitHub deposu. Bir depo oluşturmak için bkz . Yeni depo oluşturma.
İş 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
Gezinti menüsünde Ayarlar'a gidin.
Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.
Yeni depo gizli dizisi'ni seçin.
Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını
AZURE_CREDENTIALS
verin.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.
- GitHub deponuzdan üstteki menüden Eylemler'i seçin.
- Yeni iş akışı'ı seçin.
- İş akışını kendiniz ayarlayın'ı seçin.
- main.yml dışında farklı bir ad tercih ediyorsanız iş akışı dosyasını yeniden adlandırın. Örneğin: deployStorageAccount.yml.
- 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.
- Start commit (İşlemeye başla) öğesini seçin.
- Doğrudan ana dala işle'yi seçin.
- 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
- 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.
- İş akışını seçerek açın.
- 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.