Latihan - Menyiapkan lingkungan Azure DevOps Anda

Selesai

Di bagian ini, Anda akan mengonfigurasi organisasi Azure DevOps untuk melanjutkan modul ini dan membuat lingkungan Azure Kubernetes Service (AKS) untuk menyebarkan aplikasi Anda.

Untuk mencapai tujuan ini, Anda akan:

  • Tambahkan pengguna ke organisasi Azure DevOps Anda.
  • Siapkan proyek Azure DevOps Anda.
  • Kelola alur kerja Anda dengan Azure Boards.
  • Membuat sumber daya Azure menggunakan Azure CLI.
  • Buat variabel alur di Azure Pipelines.
  • Buat koneksi layanan untuk mengautentikasi dengan Azure.
  • Perbarui manifes penyebaran Kubernetes Anda.

Menambahkan pengguna ke organisasi Anda

Untuk menyelesaikan modul ini, langganan Azure diperlukan. Anda dapat mulai menggunakan Azure secara gratis.

Meskipun tidak perlu bekerja dengan Azure DevOps, langganan Azure diperlukan untuk menyebarkan ke sumber daya Azure melalui Azure DevOps. Untuk membuat proses lebih mudah, gunakan akun Microsoft yang sama untuk masuk ke langganan Azure dan organisasi Azure DevOps Anda.

Jika Anda masuk ke Azure dan Azure DevOps menggunakan akun Microsoft yang berbeda, Anda masih dapat melanjutkan dengan menambahkan pengguna ke organisasi DevOps Anda di bawah akun Microsoft yang terkait dengan langganan Azure Anda. Lihat Menambahkan pengguna ke organisasi atau proyek Anda untuk detail selengkapnya. Saat menambahkan pengguna, pilih tingkat akses Dasar .

Setelah menambahkan pengguna dengan tingkat akses Dasar, keluar dari Azure DevOps dan masuk kembali menggunakan akun Microsoft yang terkait dengan langganan Azure Anda.

Dapatkan proyek Azure DevOps

Di bagian ini, Anda menjalankan templat untuk membuat proyek Anda di Azure DevOps.

Jalankan template

Jalankan templat untuk menyiapkan proyek Azure DevOps Anda untuk modul ini:

Dari portal Generator Demo Azure DevOps, ikuti langkah-langkah berikut untuk menjalankan templat:

  1. Pilih Masuk dan setujui ketentuan penggunaan.

  2. Pada halaman Buat Proyek Baru, pilih organisasi Azure DevOps Anda dan berikan nama proyek, seperti Space Game - web - Kubernetes.

    Screenshot of the Azure DevOps Demo Generator showing the process to create the project.

  3. Pilih Ya, saya ingin fork repositori ini, lalu Otorisasi. Jika jendela muncul, berikan izin untuk mengakses akun GitHub Anda.

    Penting

    Memilih opsi ini diperlukan agar templat tersambung ke repositori GitHub Anda. Silakan pilih bahkan jika Anda telah membuat fork repositori Space Game karena templat akan menggunakan fork yang ada.

  4. Pilih Buat Proyek dan tunggu templat selesai berjalan, yang mungkin memakan waktu beberapa menit.

  5. Pilih Navigasi ke proyek untuk mengakses proyek Anda di Azure DevOps.

Penting

Unit Membersihkan lingkungan Azure DevOps Anda dalam modul ini mencakup langkah-langkah penting untuk pembersihan. Disarankan untuk melakukan langkah-langkah ini untuk menghindari kehabisan menit build gratis. Bahkan jika Anda tidak menyelesaikan modul ini, penting untuk mengikuti langkah-langkah pembersihan.

Atur visibilitas proyek Anda

Awalnya, fork repositori Space Game Anda di GitHub diatur ke publik saat proyek yang dibuat oleh templat Azure DevOps diatur ke privat. Repositori publik di GitHub dapat diakses oleh siapa saja, sementara repositori privat hanya dapat diakses oleh Anda dan orang-orang yang Anda pilih untuk membagikannya. Demikian pula, di Azure DevOps, proyek publik menyediakan akses baca-saja ke pengguna yang tidak diautentikasi, sementara proyek privat mengharuskan pengguna untuk diberikan akses dan diautentikasi untuk mengakses layanan.

Saat ini, tidak perlu memodifikasi salah satu pengaturan ini untuk tujuan modul ini. Namun, untuk proyek pribadi Anda, Anda harus menentukan visibilitas dan akses yang ingin Anda berikan kepada orang lain. Misalnya, jika proyek Anda sumber terbuka, Anda dapat memilih untuk membuat repositori GitHub dan proyek Azure DevOps Anda menjadi publik. Jika proyek Anda bersifat kepemilikan, Anda biasanya akan membuat repositori GitHub dan proyek Azure DevOps Anda privat.

Nantinya, Anda mungkin menemukan sumber daya berikut yang berguna dalam menentukan opsi mana yang terbaik untuk proyek Anda:

Memindahkan item kerja ke Melakukan

Dalam langkah ini, Anda menetapkan item kerja untuk diri Anda sendiri di Azure Boards dan memindahkannya ke status Sedang berlangsung . Dalam skenario dunia nyata, Anda dan tim Anda akan membuat item kerja di awal setiap perulangan sprint atau pekerjaan.

Menetapkan item kerja memberi Anda daftar periksa untuk bekerja dan memberikan visibilitas anggota tim lainnya ke dalam kemajuan Anda dan sisa pekerjaan Anda. Ini juga membantu memberlakukan batas work-in-progress (WIP) untuk mencegah tim mengambil terlalu banyak pekerjaan sekaligus.

  1. Navigasi ke Papan di Azure DevOps, lalu pilih Papan dari menu.

    Screenshot of Azure DevOps showing the location of the Boards menu.

  2. Tetapkan buat versi multi-kontainer situs web yang diorkestrasi dengan item kerja Kubernetes untuk diri Anda sendiri dengan memilih panah bawah yang terletak di bagian bawah kartu.

    Screenshot of Azure Boards showing the location of the down arrow.

  3. Seret dan letakkan item kerja dari kolom Tugas ke kolom Sedang Dilakukan . Anda akan memindahkan tugas ke kolom Selesai di akhir modul ini setelah menyelesaikannya.

    Screenshot of Azure Boards showing the card in the Doing column.

Membuat lingkungan Azure Kubernetes Service

Dalam langkah ini, Anda membuat sumber daya Azure Kubernetes Service yang diperlukan untuk menyebarkan versi kontainer baru situs web.

Di modul sebelumnya, Buat alur rilis dengan Azure Pipelines, Anda menggunakan portal Azure untuk membuat sumber daya Azure. Meskipun portal berguna untuk menjelajahi kemampuan Azure dan melakukan tugas dasar, membuat komponen seperti Azure Kubernetes Service dapat menjadi proses yang memakan waktu.

Dalam modul ini, Anda menggunakan Azure CLI untuk membuat sumber daya yang diperlukan untuk menyebarkan dan menjalankan aplikasi Anda di Azure Kubernetes Service. Azure CLI dapat diakses dari terminal atau melalui Visual Studio Code. Namun, dalam modul ini, Anda mengakses Azure CLI dari Azure Cloud Shell. Cloud Shell adalah pengalaman shell berbasis browser yang dihosting di cloud, yang telah dikonfigurasi sebelumnya dengan Azure CLI untuk digunakan dengan langganan Azure Anda.

Penting

Untuk menyelesaikan latihan dalam modul ini, Anda memerlukan langganan Azure Anda sendiri.

Luncurkan Cloud Shell

  1. Navigasi ke portal Azure dan masuk.

  2. Pilih opsi Cloud Shell dari menu, lalu pilih pengalaman Bash saat diminta.

    Screenshot of the Azure portal showing the location of the Cloud Shell menu item.

Catatan

Cloud Shell memerlukan sumber daya penyimpanan Azure untuk menyimpan file apa pun yang Anda buat di Cloud Shell. Saat pertama kali membuka Cloud Shell, Anda akan diminta untuk membuat grup sumber daya, akun penyimpanan, dan berbagi Azure Files. Penyiapan ini secara otomatis digunakan untuk semua sesi Cloud Shell di masa mendatang.

Pilih wilayah Azure

Wilayah mengacu pada satu atau beberapa pusat data Azure yang terletak di area geografis. Wilayah seperti US Timur, AS Barat, dan Eropa Utara adalah contoh area tersebut. Setiap sumber daya Azure, termasuk instans App Service, dikaitkan dengan wilayah.

Untuk menyederhanakan eksekusi perintah, mulailah dengan mengatur wilayah default. Setelah Anda mengatur wilayah default, perintah berikutnya menggunakan wilayah tersebut secara default, kecuali Anda secara eksplisit menentukan wilayah yang berbeda.

  1. Dari Cloud Shell, jalankan perintah berikut untuk mencantumkan wilayah yang tersedia di langganan Azure Anda:

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Pilih wilayah dari kolom Nama dalam output yang secara geografis dekat dengan Anda. Misalnya, Anda dapat memilih eastasia atau westus2.

  3. Jalankan perintah berikut untuk mengatur wilayah default Anda. Ganti REGION dengan nama wilayah yang Anda pilih sebelumnya.

    az configure --defaults location=<REGION>
    

    Contoh ini menetapkan westus2 sebagai wilayah default.

    az configure --defaults location=westus2
    

Membuat variabel Bash

Menggunakan variabel Bash dapat membuat proses penyiapan lebih nyaman dan kurang rawan kesalahan. Pendekatan ini membantu menghindari kesalahan ketik yang tidak disengaja dengan menentukan string teks bersama sebagai variabel yang dapat digunakan di seluruh skrip Anda.

  1. Dari Cloud Shell, buat angka acak untuk menyederhanakan pembuatan nama unik global untuk layanan tertentu di langkah berikutnya.

    resourceSuffix=$RANDOM
    
  2. Buat nama unik global untuk instans Azure Container Registry dan Azure Kubernetes Service Anda. Perhatikan bahwa perintah ini menggunakan tanda kutip ganda, yang menginstruksikan Bash untuk menginterpolasi variabel menggunakan sintaksis sebaris.

    registryName="tailspinspacegame${resourceSuffix}"
    aksName="tailspinspacegame-${resourceSuffix}"
    
  3. Buat variabel Bash lain untuk menyimpan nama grup sumber daya Anda.

    rgName='tailspin-space-game-rg'
    
  4. Temukan versi AKS terbaru.

    az aks get-versions
    

    Catat versi terbaru.

Membuat sumber daya Azure

Catatan

Dalam tutorial ini, pengaturan jaringan default digunakan untuk tujuan pembelajaran. Pengaturan ini memungkinkan situs web Anda diakses dari internet. Namun, dalam praktiknya, Anda dapat memilih untuk mengonfigurasi jaringan virtual Azure yang menempatkan situs web Anda di jaringan yang tidak dapat dirutekan internet dan hanya dapat diakses oleh Anda dan tim Anda. Nantinya, Anda dapat mengonfigurasi ulang jaringan untuk membuat situs web tersedia bagi pengguna.

  1. Jalankan perintah berikut untuk membuat grup sumber daya dengan nama yang Anda tentukan sebelumnya:

    az group create --name $rgName
    
  2. Jalankan az acr create perintah untuk membuat Azure Container Registry dengan nama yang Anda tentukan sebelumnya:

    az acr create \
      --name $registryName \
      --resource-group $rgName \
      --sku Standard
    
  3. Jalankan az aks create perintah untuk membuat instans AKS dengan nama yang Anda tentukan sebelumnya. Ganti <latest-AKS-version> dengan versi yang Anda catat sebelumnya.

    az aks create \
      --name $aksName \
      --resource-group $rgName \
      --enable-addons monitoring \
      --kubernetes-version <latest-AKS-version> \
      --generate-ssh-keys
    

    Catatan

    Penyelesaian penyebaran AKS mungkin memakan waktu 10-15 menit.

  4. Buat variabel untuk menyimpan ID perwakilan layanan yang dikonfigurasi untuk instans AKS:

    clientId=$(az aks show \
      --resource-group $rgName \
      --name $aksName \
      --query "identityProfile.kubeletidentity.clientId" \
      --output tsv)
    
  5. Buat variabel untuk menyimpan ID Azure Container Registry:

    acrId=$(az acr show \
      --name $registryName \
      --resource-group $rgName \
      --query "id" \
      --output tsv)
    
  6. Jalankan az acr list perintah untuk mengambil URL server masuk untuk instans Azure Container Registry (ACR) Anda:

    az acr list \
     --resource-group $rgName \
     --query "[].{loginServer: loginServer}" \
     --output table
    

    Pastikan untuk mencatat server masuk untuk registri kontainer Anda. Anda memerlukan informasi ini nanti saat mengonfigurasi alur Anda. Berikut contohnya:

    LoginServer                      
    --------------------------------
    tailspinspacegame4692.azurecr.io
    
  7. Jalankan az role assignment create perintah untuk membuat penetapan peran untuk mengotorisasi kluster AKS untuk menyambungkan ke Azure Container Registry:

    az role assignment create \
      --assignee $clientId \
      --role AcrPull \
      --scope $acrId
    

Penting

Unit Membersihkan lingkungan Azure DevOps Anda dalam modul ini mencakup langkah-langkah penting untuk pembersihan. Disarankan untuk melakukan langkah-langkah ini untuk menghindari kehabisan menit build gratis. Bahkan jika Anda tidak menyelesaikan modul ini, penting untuk mengikuti langkah-langkah pembersihan.

Membuat grup variabel

Di bagian ini, Anda akan menambahkan variabel ke alur untuk menyimpan nama Azure Container Registry Anda. Menentukan nama instans Azure Container Registry Anda sebagai variabel dalam konfigurasi alur Anda direkomendasikan melalui hard-coding. Ini membuat konfigurasi Anda lebih dapat digunakan kembali dan jika nama instans Anda berubah, Anda dapat dengan mudah memperbarui variabel dan memicu alur Anda tanpa harus memodifikasi konfigurasi Anda.

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

  2. Pilih Alur, lalu pilih Pustaka dari panel navigasi kiri.

    Screenshot of Azure Pipelines showing the Library menu option.

  3. Pilih Grup variabel, lalu pilih + Grup variabel untuk menambahkan grup variabel baru.

  4. Di bagian Properti , masukkan Rilis untuk nama grup variabel.

  5. Di bawah bagian Variabel , pilih Tambahkan.

  6. Masukkan RegistryName untuk nama variabel, dan untuk nilainya, masukkan server masuk Azure Container Registry Anda, seperti tailspinspacegame4692.azurecr.io.

  7. Di bagian atas halaman, pilih Simpan untuk menyimpan variabel alur Anda. Ini adalah contoh tampilan grup variabel Anda

    Screenshot of Azure Pipeline showing the variable group. The group contains one variable.

Membuat koneksi layanan

Langkah selanjutnya adalah membuat koneksi layanan yang memungkinkan Azure Pipelines mengakses instans Azure Container Registry dan Azure Kubernetes Service. Dengan membuat koneksi layanan ini, Azure Pipelines dapat mendorong kontainer Anda dan menginstruksikan kluster AKS Anda untuk menariknya untuk memperbarui layanan yang disebarkan.

Penting

Pastikan Anda masuk ke portal Azure dan Azure DevOps dengan akun Microsoft yang sama.

Membuat koneksi layanan Docker Registry

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

  2. Pilih Pengaturan proyek dari sudut bawah halaman.

  3. Pilih Koneksi layanan di bawah bagian Alur .

  4. Pilih Koneksi layanan baru, kemudian pilih Docker Registry, kemudian pilih Berikutnya.

  5. Di dekat bagian atas halaman, pilih Azure Container Registry, lalu pilih Perwakilan Layanan untuk jenis autentikasi.

  6. Masukkan nilai berikut untuk setiap pengaturan:

    Pengaturan Nilai
    Langganan Langganan Azure Anda
    Azure Container Registry Pilih yang Anda buat sebelumnya
    Nama koneksi layanan Koneksi Container Registry
  7. Pastikan bahwa kotak centang untuk Memberikan izin akses ke semua alur dipilih.

  8. Pilih Simpan saat Anda selesai.

Membuat koneksi layanan ARM

Sekarang Anda akan membuat koneksi layanan Azure Resource Manager untuk mengautentikasi dengan kluster AKS Anda. Kami menggunakan koneksi layanan ARM alih-alih Kubernetes karena token berumur panjang tidak lagi dibuat secara default sejak Kubernetes 1.24. Lihat posting blog DevOps ini untuk detail selengkapnya: Panduan layanan Koneksi ion untuk pelanggan AKS menggunakan tugas Kubernetes.

  1. Pilih Koneksi layanan baru, pilih Azure Resource Manager, lalu pilih Berikutnya.

  2. Pilih Perwakilan Layanan (otomatis), lalu pilih Berikutnya.

  3. Pilih Langganan untuk tingkat cakupan.

  4. Masukkan nilai berikut untuk setiap pengaturan.

    Pengaturan Nilai
    Langganan Langganan Azure Anda
    Grup sumber daya Pilih yang Anda buat sebelumnya
    Nama koneksi layanan Koneksi Kluster Kubernetes
  5. Pastikan bahwa kotak centang untuk Memberikan izin akses ke semua alur dipilih.

  6. Pilih Simpan saat Anda selesai.

Membuat lingkungan alur

  1. Pilih Alur, lalu pilih Lingkungan.

    Screenshot of Azure Pipelines showing the Environments menu option.

  2. Pilih Buat lingkungan untuk membuat lingkungan baru.

  3. Di bidang Nama, masukkan Dev.

  4. Pilih Tidak Ada dari bagian Sumber Daya , lalu pilih Buat untuk membuat lingkungan alur Anda.

Memperbarui manifes penyebaran Kubernetes

Di bagian ini, Anda akan memperbarui manifes Kubernetes deployment.yml untuk menunjuk ke registri kontainer yang Anda buat sebelumnya.

  1. Navigasikan ke akun GitHub Anda dan pilih repositori yang Anda fork untuk modul ini: mslearn-tailspin-spacegame-web-kubernetes.

  2. Buka file manifes/deployment.yml dalam mode edit.

    Screenshot of GitHub showing the location of the edit mode icon.

  3. Ubah referensi gambar kontainer untuk menggunakan server masuk ACR Anda. Manifes berikut menggunakan tailspinspacegame2439.azurecr.io sebagai contoh.

    apiVersion : apps/v1
    kind: Deployment
    metadata:
      name: web
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: web
      template:
        metadata:
          labels:
            app: web
        spec:
          containers:
            - name: web
              image: tailspinspacegame4692.azurecr.io/web
              ports:
              - containerPort: 80
    
    apiVersion : apps/v1
    kind: Deployment
    metadata:
      name: leaderboard
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: leaderboard
      template:
        metadata:
          labels:
            app: leaderboard
        spec:
          containers:
            - name: leaderboard
              image: tailspinspacegame4692.azurecr.io/leaderboard
              ports:
              - containerPort: 80
    
  4. Terapkan perubahan pada cabang Anda main .