Menerapkan alur kerja otomatis
Dalam unit ini, Anda akan mempelajari tentang alat alur kerja otomatis dan bagaimana mereka berintegrasi dengan Terraform dan Azure.
Tentang GitHub Actions
Sebagai pengelola infrastruktur, Anda memerlukan alur kerja membangun dan menerapkan untuk menggunakan kontrol versi yang sama dengan project Anda.
Dengan menggunakan GitHub Actions, Anda dapat menjalankan integrasi berkelanjutan dan proses pengiriman berkelanjutan (CI/CD) yang terkait dengan repositori GitHub Anda.
Dengan GitHub Actions, Anda dapat membuat, menguji, dan menerapkan kode langsung dari GitHub. Anda juga dapat menetapkan ulasan kode, mengelola cabang, dan masalah triase.
Komponen GitHub Actions
Mari kita jelaskan berbagai komponen GitHub Actions, seperti yang ditunjukkan dalam diagram berikut:
- Alur Kerja: Dipicu oleh peristiwa atau aktivitas tertentu, alur kerja adalah kumpulan pekerjaan dan langkah-langkah yang mengotomatiskan tugas siklus hidup pengembangan perangkat lunak.
- Pekerjaan: Serangkaian langkah yang dijalankan pada pelaksana.
- Langkah: Tugas yang bisa menjalankan satu atau beberapa perintah atau tindakan. Setiap langkah terdiri dari tindakan individual yang berjalan setelah peristiwa tertentu terjadi, seperti permintaan tarik.
- Tindakan: Perintah mandiri yang dapat digabungkan menjadi beberapa langkah. Beberapa langkah dapat digabungkan untuk membuat pekerjaan. Tindakan individual adalah skrip kemasan yang mengotomatiskan tugas pengembangan perangkat lunak. Untuk membuat alur kerja, Anda menambahkan tindakan ke file YAML di direktori github/workflows di repositori GitHub Anda.
Aksi Terraform GitHub
Tindakan hashicorp/setup-terraform ini mengatur Terraform CLI di alur kerja GitHub Actions Anda dengan:
- Mengunduh versi tertentu dari Terraform CLI dan menambahkannya ke
PATH. - Mengonfigurasi file konfigurasi Terraform CLI dengan nama host Terraform Cloud atau Enterprise dan token API.
- Memasang skrip pembungkus untuk membungkus
terraformpanggilan biner nanti dan mengekspos STDOUT, STDERR, dan kode keluarnya sebagai output bernamastdout,stderr, danexitcode, masing-masing.
Mengautentikasi GitHub Actions dengan Azure
Terraform mendukung beberapa opsi untuk mengautentikasi dengan Azure:
- Saat Anda menggunakan Terraform secara interaktif, kami menyarankan agar Anda mengautentikasi melalui akun Microsoft.
- Saat Anda menggunakan Terraform dari kode atau dengan otomatisasi, kami sarankan Anda mengautentikasi melalui Azure Service Principal.
Perwakilan layanan adalah identitas untuk digunakan dengan aplikasi, layanan yang dihosting, dan alat otomatis untuk mengakses sumber daya Azure.
Langkah berikutnya
Di unit berikutnya, kami akan menyiapkan proyek contoh dan menggunakan GitHub Actions dengan Terraform untuk menyebarkannya ke Azure.
Konsep utama untuk Azure Pipelines baru
Mari kita pelajari tentang komponen yang membentuk Azure Pipeline.
- Pemicu memberitahu Alur untuk dijalankan.
- Alur terdiri dari satu atau beberapa tahap. Alur dapat digunakan ke satu atau beberapa lingkungan.
- Tahapan adalah cara mengatur pekerjaan dalam alur dan setiap tahap dapat memiliki satu atau lebih pekerjaan.
- Setiap pekerjaan berjalan pada satu agen. Pekerjaan juga bisa tanpa agen.
- Setiap agen menjalankan pekerjaan yang berisi satu atau beberapa langkah.
- Langkah dapat berupa tugas atau skrip, dan merupakan blok penyusun terkecil dari alur.
- Tugas adalah skrip yang dikemas sebelumnya yang melakukan tindakan, seperti memanggil REST API atau menerbitkan artefak build.
- Artefak adalah kumpulan file atau paket yang diterbitkan oleh pelaksana.
Petunjuk / Saran
Untuk informasi lebih mendalam tentang komponen Alur yang berbeda dan cara menggunakannya, lihat Tautan yang disediakan di bagian Ringkasan.
Tugas Terraform untuk Azure Pipelines
Saat menjalankan perintah yang berinteraksi dengan Azure seperti plan, apply dan destroy, tugas akan menggunakan Azure Service Connection untuk mengotorisasi operasi terhadap langganan target.
Cara yang disarankan untuk menyambungkan ke Azure adalah mengikat Koneksi Layanan ke Perwakilan Layanan Azure. Azure Service Principal adalah identitas yang Anda buat untuk menggunakan alat otomatis untuk mengakses sumber daya Azure.
Cuplikan YAML berikut menggunakan penyedia azurermAzure Pipeline Terraform . Koneksi Layanan ditentukan melalui environmentServiceNameAzureRM input:
- task: TerraformTaskV1@0
inputs:
provider: 'azurerm'
command: 'apply'
workingDirectory: $(Build.Repository.LocalPath)/terraform
backendAzureRmContainerName: 'tfstate'
backendAzureRmKey: 'tf/terraform.tfstate'
environmentServiceNameAzureRM: $(serviceConnection)
Petunjuk / Saran
Jika Anda menggunakan azurerm sebagai penyedia Azure Pipeline Terraform, Anda juga perlu menyediakan Koneksi Layanan dan Kontainer Penyimpanan untuk digunakan dengan status backend Terraform.
Meneruskan Parameter
Ada beberapa metode untuk meneruskan parameter ke perintah terraform. Variabel memberi Anda cara yang mudah untuk mendapatkan bit kunci data ke berbagai bagian alur.
Anda dapat mengatur variabel untuk alur build dengan mengikuti langkah-langkah berikut:
- Buka halaman Alur , pilih alur yang sesuai, dan pilih Edit.
- Temukan Variabel untuk alur ini.
- Tambahkan atau perbarui variabel.
- Untuk menandai variabel sebagai rahasia, pilih Rahasiakan nilai ini.
- Simpan alurnya.
Output Terraform ke Variabel Alur
Tugas TerraformCLI mendukung menjalankan perintah output Terraform. Ketika CLI berjalan, variabel alur akan dibuat dari setiap variabel output yang terraform output dikeluarkan dari perintah .
Langkah berikutnya
Di unit berikutnya, kita akan menyiapkan proyek contoh dan menggunakan Azure Pipelines dengan Terraform untuk menyebarkannya ke Azure.