Bagikan melalui


Menyebarkan templat ARM dengan menggunakan Tindakan GitHub

Tindakan GitHub adalah serangkaian fitur di GitHub untuk mengotomatiskan alur kerja pengembangan perangkat lunak Anda di tempat yang sama Anda menyimpan kode dan berkolaborasi terhadap permintaan pull dan masalah.

Gunakan Tindakan Templat Deploy Azure Resource Manager untuk mengotomatisasi penggunaan templat Azure Resource Manager (templat ARM) ke Azure.

Prasyarat

Gambaran umum file alur kerja

Sebuah alur kerja ditentukan oleh file YAML (.yml) pada jalur /.github/workflows/ di dalam repositori Anda. Definisi ini berisi berbagai langkah dan parameter yang membentuk alur kerja.

File memiliki dua bagian:

Bagian Tugas
Autentikasi 1. Buat info masuk penyebaran.
Sebarkan 1. Sebarkan templat Resource Manager.

Membuat info masuk penyebaran

Untuk menggunakan tindakan Azure Login dengan OIDC, Anda perlu mengonfigurasi kredensial identitas gabungan pada aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna.

Opsi 1: Aplikasi Microsoft Entra

Opsi 2: Identitas terkelola yang ditetapkan pengguna

Mengonfigurasi rahasia GitHub

Anda perlu memberikan ID Klien, ID Direktori (penyewa) aplikasi Anda, dan ID Langganan ke tindakan masuk. Nilai ini bisa disediakan secara langsung di alur kerja atau bisa disimpan di rahasia GitHub dan direferensikan dalam alur kerja Anda. Menyimpan nilai sebagai GitHub rahasia adalah opsi yang lebih aman.

  1. Di GitHub, buka repositori Anda.

  2. Pilih > Rahasia keamanan > dan variabel.

    Cuplikan layar menambahkan rahasia

  3. Pilih Rahasia repositori baru.

    Catatan

    Untuk meningkatkan keamanan alur kerja di repositori publik, gunakan rahasia lingkungan alih-alih rahasia repositori. Jika lingkungan memerlukan persetujuan, pekerjaan tidak dapat mengakses rahasia lingkungan hingga salah satu peninjau yang diperlukan menyetujuinya.

  4. Membuat rahasia untuk AZURE_CLIENT_ID, AZURE_TENANT_ID, dan AZURE_SUBSCRIPTION_ID. Salin nilai-nilai ini dari aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna untuk rahasia GitHub Anda:

    Rahasia GitHub Aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna
    AZURE_CLIENT_ID ID klien
    AZURE_SUBSCRIPTION_ID (ID Langganan Azure) ID Langganan
    AZURE_TENANT_ID (ID Penyewa Azure) ID (tenant) direktori

    Catatan

    Untuk alasan keamanan, sebaiknya gunakan Rahasia GitHub daripada meneruskan nilai langsung ke alur kerja.

Gunakan template Resource Manager

Tambahkan templat Resource Manager ke repositori GitHub Anda. Templat ini membuat akun penyimpanan.

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

Anda dapat meletakkan file di mana saja di repositori. Sampel alur kerja di bagian berikutnya mengasumsikan file templat diberi nama azuredeploy.json, dan disimpan di akar repositori Anda.

Membuat alur kerja

File alur kerja harus disimpan di folder .github/workflows di akar repositori Anda. Ekstensi file alur kerja dapat berupa .yml atau .yaml.

  1. Dari repositori GitHub Anda, pilih Tindakan dari menu atas.
  2. Pilih Alur kerja baru.
  3. Pilih Siapkan alur kerja Anda sendiri.
  4. Ganti nama file alur kerja jika Anda lebih suka nama yang berbeda selain main.yml. Misalnya: deployStorageAccount.yml.
  5. Ganti isi file ini dengan kode berikut:
  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 }}

Catatan

Anda dapat menentukan file parameter format JSON sebagai gantinya dalam tindakan Penyebaran ARM (misalnya: .azuredeploy.parameters.json).

Bagian pertama dari file alur kerja meliputi:

  • nama: Nama alur kerja.
  • pada: Nama peristiwa GitHub yang memicu alur kerja. Alur kerja dipicu saat ada peristiwa pendorongan di cabang utama, yang memodifikasi setidaknya satu dari dua file yang ditentukan. Dua file adalah file alur kerja dan file templat.
  1. Pilih Mulai terapkan.
  2. Pilih Penerapan langsung ke cabang utama.
  3. Pilih Penerapan file baru (atau Penerapan perubahan).

Karena alur kerja dikonfigurasi untuk dipicu oleh file alur kerja atau file templat yang sedang diperbarui, alur kerja dimulai tepat setelah Anda melakukan perubahan.

Periksa status alur kerja

  1. Pilih tab Tindakan . Anda melihat alur kerja Buat deployStorageAccount.yml tercantum. Dibutuhkan 1-2 menit untuk menjalankan alur kerja.
  2. Pilih alur kerja untuk membukanya.
  3. Pilih Jalankan penyebaran ARM dari menu untuk memverifikasi penyebaran.

Membersihkan sumber daya

Saat grup sumber daya Anda tidak lagi diperlukan, hapus sumber daya yang Anda sebarkan dengan menghapus grup sumber daya dan repositori GitHub Anda.

Langkah berikutnya