Menyebarkan ke azure Stack Hub App Service menggunakan Azure Pipelines

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Artikel ini memancang Anda menyiapkan alur CI/CD untuk menyebarkan aplikasi ke layanan aplikasi dalam instans Azure Stack Hub menggunakan Azure Pipelines.

Dalam artikel ini Anda dapat mempelajari cara membuat atau memvalidasi:

  • Kredensial perwakilan layanan (SPN) Azure Stack Hub untuk alur.
  • Aplikasi web di instans Azure Stack Hub Anda.
  • Koneksi layanan ke instans Azure Stack Hub Anda.
  • Repositori dengan kode aplikasi Anda untuk disebarkan ke aplikasi Anda

Prasyarat

Membuat atau memvalidasi SPN Anda

SPN menyediakan info masuk berbasis peran sehingga proses di luar Azure dapat tersambung ke dan berinteraksi dengan sumber daya. Anda akan memerlukan SPN dengan akses kontributor dan atribut yang ditentukan dalam instruksi ini untuk digunakan dengan alur Azure DevOps Anda.

Sebagai pengguna Azure Stack Hub, Anda tidak memiliki izin untuk membuat SPN. Anda harus meminta perwakilan ini dari operator cloud Anda. Instruksi diberikan di sini sehingga Anda dapat membuat SPN jika Anda adalah operator cloud, atau Anda dapat memvalidasi SPN jika Anda adalah pengembang menggunakan SPN di alur kerja yang disediakan oleh operator cloud.

Operator cloud harus membuat SPN menggunakan Azure CLI.

Cuplikan kode berikut ditulis untuk komputer Windows menggunakan prompt PowerShell dengan Azure CLI untuk Azure Stack Hub. Jika Anda menggunakan CLI pada komputer Linux dan bash, hapus ekstensi baris atau ganti dengan \.

  1. Siapkan nilai parameter berikut yang digunakan untuk membuat SPN:

    Parameter Contoh Deskripsi
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Titik akhir pengelolaan sumber daya.
    suffix-storage-endpoint "orlando.azurestack.corp.microsoft.com" Akhiran titik akhir untuk akun penyimpanan.
    suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Akhiran dns layanan Key Vault.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" ID sumber daya Active Directory.
    endpoint-sql-management https://notsupported Titik akhir pengelolaan server sql. Atur titik akhir ini ke https://notsupported
    profil 2019-03-01-hybrid Profil untuk digunakan untuk cloud ini.
  2. Buka alat baris perintah Anda seperti PowerShell Windows atau Bash dan masuk. Gunakan perintah berikut:

    az login
    
  3. register Gunakan perintah untuk lingkungan baru atau update perintah jika Anda menggunakan lingkungan yang sudah ada. Gunakan perintah berikut.

    az cloud register `
        -n "AzureStackUser" `
        --endpoint-resource-manager "https://management.<local>.<FQDN>" `
        --suffix-storage-endpoint ".<local>.<FQDN>" `
        --suffix-keyvault-dns ".vault.<local>.<FQDN>" `
        --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" `
        --endpoint-sql-management https://notsupported  `
        --profile 2019-03-01-hybrid
    
  4. Dapatkan ID langganan dan grup sumber daya yang ingin Anda gunakan untuk SPN.

  5. Buat SPN dengan perintah berikut dengan ID langganan dan grup sumber daya:

    az ad sp create-for-rbac --name "myApp" --role contributor `
        --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} `
        --sdk-auth
    

    Jika Anda tidak memiliki hak istimewa operator cloud, Anda juga dapat masuk dengan SPN yang disediakan oleh operator cloud Anda. Anda akan memerlukan ID klien, rahasia, dan ID penyewa Anda. Dengan nilai-nilai ini, Anda dapat menggunakan perintah Azure CLI berikut untuk membuat objek JSON yang berisi nilai yang Anda perlukan untuk membuat koneksi layanan Anda.

    az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions
    az account show
    
  6. Periksa objek JSON yang dihasilkan. Anda akan menggunakan objek JSON untuk membuat koneksi layanan Anda. Objek JSON harus memiliki atribut berikut:

    {
      "environmentName": "<Environment name>",
      "homeTenantId": "<Tenant ID for the SPN>",
      "id": "<Application ID for the SPN>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<Tenant name>",
      "state": "Enabled",
      "tenantId": "<Tenant ID for the SPN>",
      "user": {
        "name": "<User email address>",
        "type": "user"
      }
    }
    

Membuat target aplikasi web

  1. Masuk ke portal Azure Stack Hub Anda.
  2. Pilih Buat sumber daya>Web + Ponsel>Aplikasi Web.
  3. Pilih Langganan Anda.
  4. Buat atau pilih Grup Sumber Daya.
  5. Ketik Nama aplikasi Anda. Nama aplikasi akan muncul di URL untuk aplikasi Anda, misalnya, yourappname.appservice.<region>.<FQDN>
  6. Pilih Tumpukan runtime untuk aplikasi Anda. Runtime harus cocok dengan kode yang Anda rencanakan untuk digunakan untuk aplikasi web Anda.
  7. Pilih Sistem Operasi (OS) yang akan menghosting runtime dan aplikasi Anda.
  8. Pilih atau ketik Wilayah untuk instans Azure Stack Hub Anda.
  9. Pilih paket berdasarkan pada instans Azure Stack Hub, wilayah, dan OS aplikasi Anda.
  10. Pilih Tinjau + Buat.
  11. Tinjau aplikasi web Anda. Pilih Buat.
  12. Pilih Buka sumber daya.
  13. Catat nama aplikasi Anda. Anda akan menambahkan nama ke dokumen yml yang menentukan alur Anda di repositori Anda.

Membuat koneksi layanan

Membuat koneksi layanan. Anda akan memerlukan nilai dari SPN dan nama langganan Azure Stack Hub Anda.

  1. Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.

  2. Pilih Pengaturan proyek, lalu pilih Koneksi layanan.

  3. Pilih Koneksi layanan>Koneksi layanan baru.

  4. Pilih Azure Resource Manager, lalu pilih Berikutnya.

  5. Pilih Perwakilan layanan (manual).

  6. Pilih Azure Stack dari Lingkungan.

  7. Isi formulir, lalu pilih Verifikasi dan simpan.

  8. Beri nama koneksi layanan Anda. (Anda akan memerlukan nama koneksi layanan untuk membuat alur yaml Anda).

    Membuat koneksi layanan untuk Azure Stack Hub

Buat repositori Anda dan tambahkan alur

  1. Jika Anda belum menambahkan kode aplikasi web ke repositori, tambahkan sekarang.

  2. Buka repositori. Pilih repositori dan pilih Telusuri.

  3. Pilih Alur

  4. Pilih Pipa baru.

  5. Pilih Git Repositori Azure.

  6. Pilih repositori Anda.

  7. Anda dapat memilih Alur pemula.

  8. Navigasi kembali ke repositori dan buka azure-pipelines.yml.

  9. Tambahkan yaml berikut:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger:
    - main
    variables:
      azureSubscription: '<your connection name>'
      VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
    steps:
    - task: AzureWebApp@1
      displayName: Azure Web App Deploy
      inputs:
        azureSubscription: $(azureSubscription)
        appName: <your-app-name>
        package: '$(System.DefaultWorkingDirectory)'
    

    Catatan

    Untuk mengabaikan kesalahan SSL, atur variabel bernama VSTS_ARM_REST_IGNORE_SSL_ERRORS ke nilai true dalam alur build atau rilis, seperti dalam contoh ini.

  10. azureSubscription Perbarui nilai dengan nama koneksi layanan Anda.

  11. appName Perbarui dengan nama aplikasi Anda. Kini Anda siap menerapkan.

Catatan tentang menggunakan tugas Azure dengan Azure Stack Hub

Tugas Azure berikut divalidasi dengan Azure Stack Hub:

Langkah berikutnya