Membuat dan menargetkan lingkungan

Layanan Azure DevOps | Azure DevOps Server 2022 | Azure DevOps Server 2020

Lingkungan adalah kumpulan sumber daya yang dapat Anda targetkan dengan penyebaran dari alur. Contoh umum nama lingkungan adalah Dev, Test, QA, Staging, dan Production. Lingkungan Azure DevOps mewakili target logis tempat alur Anda menyebarkan perangkat lunak.

Lingkungan Azure DevOps tidak tersedia di alur klasik. Untuk alur klasik, grup penyebaran menawarkan fungsionalitas serupa.

Lingkungan memberikan manfaat berikut.

Keuntungan Deskripsi
Riwayat penyebaran Nama alur dan detail eksekusi akan direkam untuk penyebaran ke lingkungan dan sumber dayanya. Dalam konteks beberapa alur yang menargetkan lingkungan atau sumber daya yang sama, riwayat penyebaran lingkungan berguna untuk mengidentifikasi sumber perubahan.
Keterlacakan penerapan dan item kerja Lihat pekerjaan dalam eksekusi alur yang menargetkan lingkungan. Anda juga dapat melihat penerapan dan item kerja yang baru disebarkan ke lingkungan. Keterlacakan juga memungkinkan seseorang untuk melacak apakah perubahan kode (penerapan) atau fitur/perbaikan bug (item kerja) mencapai lingkungan.
Kesehatan sumber daya diagnostik Validasi apakah aplikasi berfungsi pada status yang diinginkan.
Keamanan Lingkungan aman dengan menentukan pengguna dan alur mana yang diizinkan untuk menargetkan lingkungan.

Meskipun lingkungan adalah pengelompokan sumber daya, sumber daya itu sendiri mewakili target penyebaran aktual. Sumber daya Kubernetes dan jenis sumber daya komputer virtual saat ini didukung.

Saat Anda menulis alur YAML dan merujuk ke lingkungan yang tidak ada, Azure Pipelines secara otomatis membuat lingkungan saat pengguna yang melakukan operasi diketahui dan izin dapat ditetapkan. Saat Azure Pipelines tidak memiliki informasi tentang pengguna yang membuat lingkungan (misalnya: pembaruan YAML dari editor kode eksternal), alur Anda gagal jika lingkungan belum ada.

Prasyarat

Membuat lingkungan

  1. Masuk ke organisasi Anda: https://dev.azure.com/{yourorganization} dan pilih proyek Anda.

  2. Pilih Lingkungan>Alur>Buat lingkungan.

    Environments

  3. Masukkan informasi untuk lingkungan, lalu pilih Buat. Sumber daya dapat ditambahkan ke lingkungan yang ada nanti.

    Screenshot of creating a new environment.

Gunakan Alur untuk membuat dan menyebarkan ke lingkungan juga. Untuk informasi selengkapnya, lihat panduan cara penggunaan.

Tip

Anda dapat membuat lingkungan kosong dan mereferensikannya dari pekerjaan penyebaran. Ini memungkinkan Anda merekam riwayat penyebaran terhadap lingkungan.

Menargetkan lingkungan dari pekerjaan penyebaran

Pekerjaan penyebaran adalah kumpulan langkah-langkah yang akan dijalankan secara berurutan. Pekerjaan penyebaran dapat digunakan untuk menargetkan seluruh lingkungan (grup sumber daya) seperti yang ditunjukkan dalam cuplikan YAML berikut. Alur akan berjalan pada komputer myVM karena nama sumber daya ditentukan.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 
      name: 'smarthotel-dev'
      resourceName: myVM
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Menargetkan sumber daya tertentu dalam lingkungan dari pekerjaan penyebaran

Anda dapat mencakup target penyebaran ke sumber daya tertentu dalam lingkungan. Kemudian, Anda dapat merekam riwayat penyebaran pada sumber daya tertentu dalam lingkungan. Langkah-langkah pekerjaan penyebaran secara otomatis mewarisi detail koneksi layanan dari sumber daya yang ditargetkan oleh pekerjaan penyebaran.

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)
         # value for kubernetesServiceConnection input automatically passed down to task by environment.resource input

Lingkungan dalam detail eksekusi

Semua lingkungan yang ditargetkan oleh pekerjaan penyebaran dari eksekusi alur tertentu dapat ditemukan di bawah tab Lingkungan dari detail eksekusi alur.

Environments in run details

Jika Anda menggunakan kluster privat AKS, tab Lingkungan tidak tersedia.

Approvals

Mengontrol secara manual kapan tahap harus berjalan menggunakan pemeriksaan persetujuan. Gunakan pemeriksaan persetujuan untuk mengontrol penyebaran ke lingkungan produksi. Pemeriksaan tersedia untuk Pemilik sumber daya untuk mengontrol kapan tahap dalam alur menggunakan sumber daya. Sebagai pemilik sumber daya, seperti lingkungan, Anda dapat menentukan persetujuan dan pemeriksaan yang harus dipenuhi sebelum tahap mengkonsumsi sumber daya tersebut dimulai.

Kami mendukung pemeriksaan persetujuan manual pada lingkungan. Untuk informasi selengkapnya, lihat Persetujuan.

Peran Pembuat, Administrator, dan pengguna dapat mengelola persetujuan dan pemeriksaan. Peran Pembaca tidak dapat mengelola persetujuan dan pemeriksaan.

Riwayat penyebaran

Tampilan riwayat penyebaran dalam lingkungan memberikan keuntungan berikut.

  • Lihat pekerjaan dari semua alur yang menargetkan lingkungan tertentu. Misalnya, dua layanan mikro, masing-masing memiliki alurnya sendiri, menyebarkan ke lingkungan yang sama. Daftar riwayat penyebaran membantu mengidentifikasi semua alur yang memengaruhi lingkungan ini dan juga membantu memvisualisasikan urutan penyebaran oleh setiap alur.

    Screenshot of deployment history listing.

  • Telusuri detail pekerjaan untuk melihat daftar penerapan dan item kerja yang disebarkan ke lingkungan. Daftar penerapan dan item kerja adalah item baru di antara penyebaran. Daftar pertama Anda menyertakan semua penerapan dan daftar berikut ini hanya akan menyertakan perubahan. Jika beberapa penerapan terkait dengan permintaan pull yang sama, Anda akan melihat beberapa hasil pada item kerja dan tab perubahan.

    Screenshot of commits under deployment history.

  • Jika beberapa item kerja terkait dengan permintaan pull yang sama, Anda akan melihat beberapa hasil pada tab item kerja.

    Screenshot of work items under deployment history.

Keamanan

Izin pengguna

Mengontrol siapa yang dapat membuat, melihat, menggunakan, dan mengelola lingkungan dengan izin pengguna. Ada empat peran - Pembuat (cakupan: semua lingkungan), Pembaca, Pengguna, dan Administrator. Di panel izin pengguna lingkungan tertentu, Anda dapat mengatur izin yang diwariskan dan Anda dapat mengambil alih peran untuk setiap lingkungan.

  1. Buka Lingkungan tertentu yang ingin Anda otorisasi.
  2. Pilih >Keamanan untuk melihat pengaturan.
  3. Pilih Izin> pengguna+Tambahkan>Pengguna atau grup, lalu pilih peran yang sesuai.
Peran Deskripsi
Pembuat Peran global, tersedia dari opsi keamanan hub lingkungan. Anggota peran ini dapat membuat lingkungan dalam proyek. Kontributor ditambahkan sebagai anggota secara default. Diperlukan untuk memicu alur YAML ketika lingkungan belum ada.
Pembaca Anggota peran ini dapat melihat lingkungan.
Pengguna Anggota peran ini dapat menggunakan lingkungan saat membuat atau mengedit alur YAML.
Administrator Anggota peran ini dapat mengelola izin, membuat, mengelola, melihat, dan menggunakan lingkungan. Untuk lingkungan tertentu, pembuatnya ditambahkan sebagai Admininistrator secara default. Administrator juga dapat membuka akses ke lingkungan ke semua alur.

Penting

Saat Anda membuat lingkungan, hanya pembuat yang memiliki peran administrator.

Peran Deskripsi
Pembuat Peran global, tersedia dari opsi keamanan hub lingkungan. Anggota peran ini dapat membuat lingkungan dalam proyek. Kontributor ditambahkan sebagai anggota secara default. Diperlukan untuk memicu alur YAML ketika lingkungan belum ada.
Pembaca Anggota peran ini dapat melihat lingkungan.
Pengguna Anggota peran ini dapat menggunakan lingkungan saat membuat atau mengedit alur YAML.
Administrator Selain menggunakan lingkungan, anggota peran ini dapat mengelola keanggotaan semua peran lain untuk lingkungan. Pembuat ditambahkan sebagai anggota secara default.

Izin alur

Gunakan izin alur untuk mengotorisasi semua atau alur yang dipilih untuk penyebaran ke lingkungan.

  • Untuk menghapus Akses terbuka pada lingkungan atau sumber daya, pilih Batasi izin di Izin alur.
  • Untuk mengizinkan alur tertentu disebarkan ke lingkungan atau sumber daya tertentu, pilih + dan pilih dari daftar alur.

Langkah berikutnya

Menentukan persetujuan dan pemeriksaan

FAQ

T: Mengapa saya mendapatkan pesan kesalahan saat mencoba membuat lingkungan?

A: Jika Anda melihat pesan "Akses ditolak: {User} memerlukan Izin Buat untuk melakukan tindakan", periksa izin tingkat organisasi Anda. Buka Pengaturan Organisasi>Pengguna dan periksa apakah Anda memiliki peran pemangku kepentingan. Peran pemangku kepentingan tidak dapat membuat lingkungan. Ubah tingkat akses Anda, lalu periksa untuk melihat apakah Anda dapat membuat lingkungan. Untuk informasi selengkapnya, lihat Tanya Jawab Umum tentang manajemen pengguna dan izin.

T: Mengapa saya mendapatkan kesalahan "Job XXXX: Environment XXXX tidak dapat ditemukan. Lingkungan tidak ada atau mungkin belum diotorisasi untuk digunakan"?

A: Ini adalah beberapa kemungkinan alasan kegagalan:

  • Saat Anda menulis alur YAML dan merujuk ke lingkungan yang tidak ada dalam file YAML, Azure Pipelines secara otomatis membuat lingkungan dalam beberapa kasus:

    • Anda menggunakan wizard pembuatan alur YAML di pengalaman web Azure Pipelines dan merujuk ke lingkungan yang belum dibuat.
    • Anda memperbarui file YAML menggunakan editor web Azure Pipelines dan menyimpan alur setelah menambahkan referensi ke lingkungan yang tidak ada.
  • Dalam alur berikut, Azure Pipelines tidak memiliki informasi tentang pengguna yang membuat lingkungan: Anda memperbarui file YAML menggunakan editor kode eksternal lain, menambahkan referensi ke lingkungan yang tidak ada, lalu menyebabkan alur integrasi manual atau berkelanjutan dipicu. Dalam hal ini, Azure Pipelines tidak tahu tentang pengguna. Sebelumnya, kami menangani kasus ini dengan menambahkan semua kontributor proyek ke peran administrator lingkungan. Setiap anggota proyek kemudian dapat mengubah izin ini dan mencegah orang lain mengakses lingkungan.

  • Anda dapat menggunakan variabel untuk membuat lingkungan atau menggunakan templateContext untuk meneruskan properti ke templat. Parameter runtime tidak akan berfungsi saat membuat lingkungan karena diperluas pada waktu proses.

  • Pengguna dengan tingkat akses pemangku kepentingan tidak dapat membuat lingkungan karena pemangku kepentingan tidak memiliki akses ke repositori.