Latihan - Siapkan lingkungan Anda
Penting
Anda memerlukan langganan Azure Anda sendiri untuk menjalankan latihan ini, dan Anda mungkin dikenakan biaya. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
Sebelum Anda mulai mengerjakan alur kerja situs web perusahaan mainan, Anda perlu mengonfigurasi lingkungan Anda. Di pelajaran ini, Anda memastikan bahwa lingkungan Azure dan GitHub disiapkan untuk menyelesaikan sisa modul ini.
Untuk memenuhi tujuan ini, Anda akan:
- Siapkan repositori GitHub untuk modul ini.
- Kloning repositori proyek ke komputer Anda.
- Buat dua identitas beban kerja di ID Microsoft Entra.
- Buat dua grup sumber daya di Azure.
- Buat rahasia dan lingkungan di GitHub.
Mendapatkan repositori GitHub
Di sini, Anda memastikan bahwa repositori GitHub disiapkan untuk menyelesaikan sisa modul ini. Anda menyiapkannya dengan membuat repositori baru berdasarkan repositori templat. Repositori templat berisi file yang Anda butuhkan untuk memulai modul ini.
Modul-modul dalam jalur pembelajaran ini merupakan bagian dari sebuah progresi. Untuk tujuan pembelajaran, setiap modul memiliki repositori templat GitHub terkait.
Tip
Meskipun Anda telah menyelesaikan modul sebelumnya di jalur pembelajaran, harap ikuti petunjuk ini untuk membuat repositori baru dan pastikan Anda memberinya nama baru.
Mulai dari repositori templat
Jalankan templat yang menyiapkan repositori GitHub Anda.
Di situs GitHub, ikuti langkah-langkah ini untuk membuat repositori dari templat:
Pilih Gunakan templat>ini Buat repositori baru.
Pilih nama pengguna GitHub Anda dari daftar drop-down Pemilik .
Masukkan nama repositori untuk proyek baru Anda, seperti toy-website-end-to-end.
Pilih opsi Publik.
Saat membuat repositori Anda sendiri, Anda mungkin ingin menjadikannya privat. Dalam modul ini, Anda akan bekerja dengan beberapa fitur GitHub yang hanya berfungsi dengan repositori publik dan dengan akun GitHub Enterprise.
Pilih Buat repositori dari templat.
Penting
Latihan terakhir dalam modul ini berisi langkah-langkah pembersihan yang penting. Pastikan untuk mengikuti langkah-langkah pembersihan meskipun Anda tidak menyelesaikan modul ini.
Mengklon repositori
Anda sekarang memiliki salinan repositori templat di akun Anda sendiri. Sekarang, Anda akan mengklon repositori ini secara lokal sehingga dapat mulai bekerja di dalamnya.
Pilih Kode dan pilih ikon salin.
Buka Visual Studio Code.
Buka jendela terminal Visual Studio Code dengan memilih Terminal>Terminal Baru. Jendela ini biasanya terbuka di bagian bawah layar.
Arahkan di terminal ke direktori tempat Anda ingin mengkloning repositori GitHub di komputer lokal Anda. Misalnya, untuk mengkloning repositori ke folder toy-website-environments, jalankan perintah berikut:
cd toy-website-end-to-end
Ketik
git clone
lalu tempel URL yang Anda salin sebelumnya, yang terlihat seperti ini:git clone https://github.com/mygithubuser/toy-website-end-to-end.git
Buka kembali Visual Studio Code di folder repositori dengan menjalankan perintah berikut di terminal Visual Studio Code:
code -r toy-website-end-to-end
Masuk ke Azure
Untuk bekerja dengan grup sumber daya di Azure, masuk ke akun Azure Anda dari terminal Visual Studio Code. Pastikan Anda telah menginstal alat Azure CLI.
Pada menu Terminal, pilih Terminal Baru. Jendela terminal biasanya terbuka di bagian bawah layar Anda.
Shell default biasanya pwsh, seperti yang ditunjukkan di sisi kanan jendela terminal.
Pilih menu dropdown shell, lalu pilih Azure Cloud Shell (bash).
Shell baru terbuka.
Masuk ke Azure menggunakan Azure CLI
Di terminal Visual Studio Code, jalankan perintah berikut untuk masuk ke Azure:
az login
Masuk ke akun Azure Anda melalui browser yang terbuka.
Untuk bekerja dengan grup sumber daya di Azure, masuk ke akun Azure Anda dari terminal Visual Studio Code. Pastikan Anda telah menginstal Azure PowerShell.
Pada menu Terminal, pilih Terminal Baru. Jendela terminal biasanya terbuka di bagian bawah layar Anda.
Shell default biasanya pwsh, seperti yang ditunjukkan di sisi kanan jendela terminal.
Pilih menu dropdown shell, lalu pilih Azure Cloud Shell (PowerShell).
Shell baru terbuka.
Masuk ke Azure menggunakan Azure PowerShell
Di terminal Visual Studio Code, jalankan perintah berikut untuk masuk ke Azure:
Connect-AzAccount
Masuk ke akun Azure Anda melalui browser yang terbuka.
Buat dua identitas beban kerja
Selanjutnya, buat dua identitas beban kerja di ID Microsoft Entra: satu untuk lingkungan pengujian Anda dan satu lagi untuk lingkungan produksi Anda.
Jalankan kode berikut untuk menentukan variabel untuk nama pengguna GitHub dan nama repositori Anda. Pastikan Anda mengganti
mygithubuser
dengan nama pengguna GitHub Anda, yang Anda catat sebelumnya dalam latihan ini. Pastikan juga Anda menentukan nama repositori GitHub yang benar.githubOrganizationName='mygithubuser' githubRepositoryName='toy-website-end-to-end'
Buat identitas beban kerja untuk penyebaran ke lingkungan pengujian Anda. Identitas beban kerja memerlukan dua info masuk terfederasi: satu digunakan saat alur kerja menjalankan tugas validasi, karena tugas ini tidak terkait dengan lingkungan GitHub. Yang kedua digunakan saat alur kerja menjalankan tugas deploy, yang berjalan terhadap lingkungan Test GitHub.
testApplicationRegistrationDetails=$(az ad app create --display-name 'toy-website-end-to-end-test') testApplicationRegistrationObjectId=$(echo $testApplicationRegistrationDetails | jq -r '.id') testApplicationRegistrationAppId=$(echo $testApplicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $testApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-end-to-end-test\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:environment:Test\",\"audiences\":[\"api://AzureADTokenExchange\"]}" az ad app federated-credential create \ --id $testApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-end-to-end-test-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Jalankan kode berikut, yang membuat identitas beban kerja serupa dan kredensial federasi untuk lingkungan produksi:
productionApplicationRegistrationDetails=$(az ad app create --display-name 'toy-website-end-to-end-production') productionApplicationRegistrationObjectId=$(echo $productionApplicationRegistrationDetails | jq -r '.id') productionApplicationRegistrationAppId=$(echo $productionApplicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $productionApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-end-to-end-production\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:environment:Production\",\"audiences\":[\"api://AzureADTokenExchange\"]}" az ad app federated-credential create \ --id $productionApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-end-to-end-production-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Jalankan kode berikut untuk menentukan variabel untuk nama pengguna GitHub dan nama repositori Anda. Pastikan Anda mengganti
mygithubuser
dengan nama pengguna GitHub Anda, yang Anda catat sebelumnya dalam latihan ini. Pastikan juga Anda menentukan nama repositori GitHub yang benar.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-website-end-to-end'
Jalankan kode berikut, yang membuat identitas beban kerja untuk lingkungan pengujian dan mengaitkannya dengan repositori GitHub Anda:
$testApplicationRegistration = New-AzADApplication -DisplayName 'toy-website-end-to-end-test' New-AzADAppFederatedCredential ` -Name 'toy-website-end-to-end-test' ` -ApplicationObjectId $testApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):environment:Test" New-AzADAppFederatedCredential ` -Name 'toy-website-end-to-end-test-branch' ` -ApplicationObjectId $testApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Jalankan kode berikut, yang mengikuti proses serupa untuk lingkungan produksi:
$productionApplicationRegistration = New-AzADApplication -DisplayName 'toy-website-end-to-end-production' New-AzADAppFederatedCredential ` -Name 'toy-website-end-to-end-production' ` -ApplicationObjectId $productionApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):environment:Production" New-AzADAppFederatedCredential ` -Name 'toy-website-end-to-end-production-branch' ` -ApplicationObjectId $productionApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Buat dua grup sumber daya di Azure dan berikan akses identitas beban kerja
Selanjutnya, buat grup sumber daya untuk setiap lingkungan. Proses ini juga memberikan identitas beban kerja masing-masing peran Kontributor pada grup sumber daya, yang memungkinkan alur kerja Anda disebarkan ke grup sumber daya.
Untuk membuat grup sumber daya lingkungan pengujian dan memberikan akses identitas beban kerja ke dalamnya, jalankan perintah Azure CLI berikut ini di terminal Visual Studio Code:
testResourceGroupResourceId=$(az group create --name ToyWebsiteTest --location westus3 --query id --output tsv) az ad sp create --id $testApplicationRegistrationObjectId az role assignment create \ --assignee $testApplicationRegistrationAppId \ --role Contributor \ --scope $testResourceGroupResourceId
Jalankan proses serupa untuk membuat grup sumber daya lingkungan produksi:
productionResourceGroupResourceId=$(az group create --name ToyWebsiteProduction --location westus3 --query id --output tsv) az ad sp create --id $productionApplicationRegistrationObjectId az role assignment create \ --assignee $productionApplicationRegistrationAppId \ --role Contributor \ --scope $productionResourceGroupResourceId
Untuk membuat grup sumber daya lingkungan pengujian dan memberikan akses identitas beban kerja ke dalamnya, jalankan perintah Azure PowerShell berikut ini di terminal Visual Studio Code:
$testResourceGroup = New-AzResourceGroup -Name ToyWebsiteTest -Location westus3 New-AzADServicePrincipal -AppId $($testApplicationRegistration.AppId) New-AzRoleAssignment ` -ApplicationId $($testApplicationRegistration.AppId) ` -RoleDefinitionName Contributor ` -Scope $($testResourceGroup.ResourceId)
Jalankan proses serupa untuk membuat grup sumber daya lingkungan produksi:
$productionResourceGroup = New-AzResourceGroup -Name ToyWebsiteProduction -Location westus3 New-AzADServicePrincipal -AppId $($productionApplicationRegistration.AppId) New-AzRoleAssignment ` -ApplicationId $($productionApplicationRegistration.AppId) ` -RoleDefinitionName Contributor ` -Scope $($productionResourceGroup.ResourceId)
Siapkan rahasia GitHub
Jalankan kode berikut untuk menghasilkan nilai yang perlu Anda buat sebagai rahasia GitHub:
echo "AZURE_CLIENT_ID_TEST: $testApplicationRegistrationAppId"
echo "AZURE_CLIENT_ID_PRODUCTION: $productionApplicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID_TEST: $($testApplicationRegistration.AppId)"
Write-Host "AZURE_CLIENT_ID_PRODUCTION: $($productionApplicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
Membuat rahasia GitHub
Anda telah membuat dua identitas beban kerja, dan grup sumber daya yang dapat mereka sebarkan. Selanjutnya, buat rahasia di Tindakan GitHub.
Di browser Anda, navigasikan ke repositori GitHub Anda.
Pilih Setelan>Rahasia>Tindakan.
Pilih Rahasia repositori baru.
Beri nama rahasia AZURE_CLIENT_ID_TEST.
Di bidang Nilai, tempel GUID dari baris pertama keluaran terminal. Jangan sertakan
AZURE_CLIENT_ID_TEST
, titik dua, atau spasi apa pun dalam nilai.Pilih Tambahkan rahasia.
Ulangi proses untuk membuat rahasia untuk AZURE_CLIENT_ID_PRODUCTION, AZURE_TENANT_ID, dan AZURE_SUBSCRIPTION_ID, menyalin nilai dari bidang yang sesuai di keluaran terminal.
Verifikasi bahwa daftar rahasia Anda sekarang menunjukkan keempat rahasia.
Membuat lingkungan di GitHub
Di browser Anda, buka Pengaturan>Lingkungan.
Pilih Lingkungan baru.
Masukkan Pengujian sebagai nama lingkungan.
Pilih Konfigurasikan lingkungan.
Pilih Lingkungan untuk kembali ke daftar lingkungan.
Ulangi proses untuk membuat lingkungan lain bernama Produksi.
Catatan
Dalam modul sebelumnya di jalur pembelajaran ini, Anda menambahkan aturan perlindungan ke lingkungan produksi Anda. Dalam modul ini, untuk mempermudah, Anda melewatkan aturan perlindungan. Namun, Anda dapat menambahkan aturan perlindungan sendiri jika mau.