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
- Akses ke instans Azure Stack Hub dengan App Service RP diaktifkan.
- Solusi Azure DevOps yang terkait dengan penyewa Azure Stack Hub Anda.
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 \
.
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. Buka alat baris perintah Anda seperti PowerShell Windows atau Bash dan masuk. Gunakan perintah berikut:
az login
register
Gunakan perintah untuk lingkungan baru atauupdate
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
Dapatkan ID langganan dan grup sumber daya yang ingin Anda gunakan untuk SPN.
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
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
- Masuk ke portal Azure Stack Hub Anda.
- Pilih Buat sumber daya>Web + Ponsel>Aplikasi Web.
- Pilih Langganan Anda.
- Buat atau pilih Grup Sumber Daya.
- Ketik Nama aplikasi Anda. Nama aplikasi akan muncul di URL untuk aplikasi Anda, misalnya,
yourappname.appservice.<region>.<FQDN>
- Pilih Tumpukan runtime untuk aplikasi Anda. Runtime harus cocok dengan kode yang Anda rencanakan untuk digunakan untuk aplikasi web Anda.
- Pilih Sistem Operasi (OS) yang akan menghosting runtime dan aplikasi Anda.
- Pilih atau ketik Wilayah untuk instans Azure Stack Hub Anda.
- Pilih paket berdasarkan pada instans Azure Stack Hub, wilayah, dan OS aplikasi Anda.
- Pilih Tinjau + Buat.
- Tinjau aplikasi web Anda. Pilih Buat.
- Pilih Buka sumber daya.
- 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.
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Pengaturan proyek, lalu pilih Koneksi layanan.
Pilih Koneksi layanan>Koneksi layanan baru.
Pilih Azure Resource Manager, lalu pilih Berikutnya.
Pilih Perwakilan layanan (manual).
Pilih Azure Stack dari Lingkungan.
Isi formulir, lalu pilih Verifikasi dan simpan.
Beri nama koneksi layanan Anda. (Anda akan memerlukan nama koneksi layanan untuk membuat alur yaml Anda).
Buat repositori Anda dan tambahkan alur
Jika Anda belum menambahkan kode aplikasi web ke repositori, tambahkan sekarang.
Buka repositori. Pilih repositori dan pilih Telusuri.
Pilih Alur
Pilih Pipa baru.
Pilih Git Repositori Azure.
Pilih repositori Anda.
Anda dapat memilih Alur pemula.
Navigasi kembali ke repositori dan buka
azure-pipelines.yml
.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 nilaitrue
dalam alur build atau rilis, seperti dalam contoh ini.azureSubscription
Perbarui nilai dengan nama koneksi layanan Anda.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:
- Azure PowerShell
- Salinan File Azure
- Penyebaran Grup Sumber Daya Azure
- Azure App Service Sebarkan
- Azure App Service Kelola
- Azure SQL Penyebaran Database