Cara Kerja Azure Export for Terraform

Artikel ini memperkenalkan Anda ke alur kerja Azure Export for Terraform . Dalam artikel ini, Anda mempelajari tentang panduan praktik terbaik alat, batasan saat ini, dan cara mengurangi batasan tersebut.

Mode interaktif

Secara default, Azure Export for Terraform berjalan dalam mode interaktif. Saat Anda berjalan dalam mode interaktif, pintasan keyboard yang tersedia tercantum di bagian bawah tampilan.

Task Pintasan keyboard
Navigasi
Pilih item sebelumnya di daftar sumber daya. ↑ -atau- k
Pilih item berikutnya di daftar sumber daya. ↓ -atau- j
Pindah ke halaman sebelumnya di daftar sumber daya. ← -atau- h -atau- Page Up
Pindah ke halaman berikutnya dalam daftar sumber daya. → -atau- l -atau- Halaman Bawah
Lompat ke awal daftar sumber daya. g -atau- Beranda
Lompat ke akhir daftar sumber daya. G -atau- Akhir
Memilih sumber daya untuk dilewati
Lewati sumber daya (atau batalkan skip jika ditandai sebagai "Lewati") Hapus
Operasi filter
Tentukan filter menurut teks pada daftar sumber daya. /
Menghapus filter saat ini Esc
Simpan operasi
Simpan file pemetaan daftar sumber daya. File output dipengaruhi oleh melompati (tetapi tidak memfilter). s
Ekspor sumber daya ke status (jika --hcl-only tidak ditentukan) dan hasilkan konfigurasi. W
Pengalaman pengguna
Tampilkan rekomendasi untuk sumber daya saat ini. R
Tampilkan kesalahan ekspor sumber daya (jika ada). e
Tampilkan bantuan. ?
Berhenti
Keluar dari mode interaktif. T

Untuk setiap sumber daya, Azure Export for Terraform mencoba mengenali jenis sumber daya Terraform yang sesuai. Jika menemukan kecocokan, garis ditandai dengan indikator berikut: 💡.

Jika sumber daya tidak dapat diselesaikan, Anda perlu memasukkan alamat sumber daya Terraform dalam formulir berikut: <resource type>.<resource name>. Misalnya, azurerm_linux_virtual_machine.test mengacu pada jenis sumber daya Terraform dari azurerm_linux_virtual_machine sementara test mengacu pada nama untuk komputer virtual yang digunakan dalam file konfigurasi.

Untuk melihat jenis sumber daya yang tersedia untuk sumber daya yang dipilih, tekan r.

Dalam beberapa kasus, ada sumber daya Azure yang tidak memiliki sumber daya Terraform yang sesuai, seperti jika sumber daya tidak memiliki dukungan Terraform. Beberapa sumber daya mungkin juga dibuat sebagai efek samping dari penyediaan sumber daya lain - seperti sumber daya Disk OS yang dibuat saat menyediakan komputer virtual. Dalam kasus ini, Anda dapat melewati sumber daya tanpa menetapkan apa pun.

Setelah melalui semua sumber daya yang akan diimpor, tekan w untuk mulai menghasilkan konfigurasi Terraform dan (jika --hcl-only tidak dipilih) mengimpor ke status Terraform.

Mode non-interaktif

Secara default, Azure Export for Terraform berjalan dalam mode interaktif. Untuk menentukan bahwa alat harus berjalan dalam mode non-interaktif, tentukan --non-interactive bendera .

aztfexport [command] --non-interactive <scope>

Penting

Jika direktori tempat Anda menjalankan Azure Export for Terraform tidak kosong, Anda harus menambahkan --overwrite bendera untuk menggunakan --hcl-only bendera.

Praktik terbaik pada alur kerja inti

Pada tingkat mendasar, setiap pengguna Azure Export menghadapi keputusan antara dua opsi:

Subbagian berikut memberikan panduan tentang opsi mana yang harus diambil berdasarkan skenario.

Mengelola infrastruktur

Anda mungkin tidak perlu mengekspor ke status jika Anda belum memverifikasi sumber daya yang dikonfigurasi berperilaku dalam lingkungan Anda dengan cara yang diinginkan.

Jika Anda yakin ingin mengelola sekumpulan sumber daya di Terraform dengan terraform init plan apply alur kerja, mengekspor ke status sangat penting.

Jika Anda belum yakin ingin mengelola sumber daya, meneruskan --hcl-only bendera disarankan.

Infrastruktur yang ada

Dalam skenario di mana Anda mengekspor ke lingkungan Terraform yang ada, mungkin berguna untuk dianggap --hcl-only sebagai rencana terraform yang setara, terutama sebelum menambahkan ke lingkungan yang ada.

Perintah terraform apply ini sama dengan mengekspor sumber daya - di mana konfigurasinya terikat ke status yang sudah ada sebelumnya. Dalam skenario ini, menggunakan file pemetaan menghemat waktu proses untuk mencantumkan dan memetakan sumber daya.

Menemukan infrastruktur

Jika Anda tidak yakin sumber daya apa yang ada dalam lingkungan, Anda dapat memverifikasi dengan menentukan --generate-mapping-file bendera. Untuk informasi selengkapnya tentang subjek ini, lihat Menjelajahi pemilihan dan penamaan sumber daya yang dikustomisasi menggunakan Azure Export for Terraform.

Pembatasan

Azure Export for Terraform adalah alat kompleks yang mencoba mengonversi infrastruktur Azure menjadi kode dan status Terraform. Batasan yang diketahui saat ini dijelaskan dalam sub-bagian berikut.

Properti tulis-saja

Properti tertentu dalam AzureRM hanya menulis dan tidak disertakan dalam kode yang dihasilkan yang dibuat Azure Export for Terraform. Masalah ini diatasi dengan mendefinisikan properti setelah mengekspor ke kode HCL.

Batasan lintas properti

Penyedia AzureRM dapat mengatur dua properti yang bertentangan satu sama lain. Saat Azure Export for Terraform membaca properti yang bertentangan, azure Export for Terraform dapat mengatur kedua properti ke nilai yang sama meskipun pengguna hanya mengonfigurasi properti tersebut. Komplikasi lebih lanjut muncul ketika beberapa batasan lintas properti ada dalam konfigurasi yang dihasilkan yang sama. Anda harus mengetahui di mana konflik lintas properti ada dalam konfigurasi Anda untuk mengurangi masalah ini.

Infrastruktur di luar cakupan sumber daya

Saat Anda menggunakan Azure Export for Terraform untuk menargetkan cakupan sumber daya, sumber daya yang diperlukan untuk konfigurasi mungkin ada di luar cakupan yang ditentukan. Salah satu contohnya adalah penetapan peran. Pengguna perlu mengidentifikasi sumber daya yang berada di luar cakupan.

Properti tulis-saja

Azure Export tidak dapat menghasilkan properti tulis-saja (seperti kata sandi) dalam konfigurasinya. Anda perlu tahu tentang properti tulis-saja dan menentukannya dalam konfigurasi untuk membuat set sumber daya baru.

Memodifikasi kode agar sesuai dengan standar pengodean

Ada beberapa operasi yang diperlukan jika pengguna ingin memodifikasi kode mereka untuk mematuhi standar pengkodean. Langkah-langkah ini hanya akan diperlukan jika pengguna berencana untuk menggunakan kode di lingkungan nonsandbox.

Sumber daya yang ditentukan properti

Sumber daya tertentu di Azure dapat didefinisikan sebagai properti dalam sumber daya Terraform induk atau sumber daya Terraform individual. Salah satu contohnya adalah subnet. Azure Export for Terraform mendefinisikan sumber daya sebagai sumber daya individual, tetapi praktik terbaiknya adalah mencocokkan konfigurasi pengodean yang ada.

Dependensi eksplisit

Ekspor Azure untuk Terraform saat ini hanya dapat menyatakan dependensi eksplisit. Anda harus mengetahui pemetaan hubungan antara sumber daya untuk merefaktor kode untuk menyertakan dependensi implisit yang diperlukan.

Nilai yang dikodekan secara permanen

Ekspor Azure untuk Terraform saat ini menghasilkan string yang dikodekan secara permanen. Sebagai praktik terbaik, Anda harus merefaktor nilai-nilai ini ke variabel. Selain itu --full-properties , ketika Anda menggunakan bendera untuk mengekspos semua properti, beberapa informasi sensitif (seperti rahasia) dapat dilihat dalam konfigurasi yang dihasilkan. Gunakan praktik yang direkomendasikan untuk melindungi visibilitas kode ini.

Langkah berikutnya