Utilitas 'Azure to Terraform' (az2tf) ini membaca Langganan Azure dan menghasilkan semua file konfigurasi terraform yang diperlukan (.tf) dari masing-masing Grup Sumber Daya Azure komposit. Utilitas ini juga mengimpor status terraform menggunakan
perintah "terraform import ...."
Dan akhirnya menjalankan a
"rencana terraform." memerintah
Mudah-mudahan tidak ada penambahan atau penghapusan berikutnya yang dilaporkan oleh perintah terraform plan karena semua file konfigurasi terraform yang sesuai telah dibuat secara otomatis.
Menjalankan alat di shell lokal Anda (bash) memerlukan langkah-langkah berikut:
az login
)$ docker build --rm -f "Dockerfile" -t az2tf:latest
.$ mkdir generated
)$ ./runme.sh
(akan menghargai umpan balik tentang cara menggunakan buruh pelabuhan dengan lebih baik)
Kita dapat menggunakan docker-compose untuk menyederhanakan menjalankan image buruh pelabuhan. Eksekusi sederhana docker-compose run shell bash
.
Untuk menghasilkan file terraform untuk seluruh langganan Azure:
./az2tf.sh -s <Subscription ID>
Untuk menyertakan Kebijakan Langganan Azure dan kontrol serta penugasan RBAC:
./az2tf.sh -s <Subscription ID> -p yes
Untuk menghasilkan file terraform untuk Grup Sumber Daya tertentu dalam langganan:
./az2tf.sh -s <Subscription ID> -g <Resource Group>
Untuk memasukkan rahasia dari Key Vault dalam file terraform (rahasia akan ada dalam teks biasa):
./az2tf.sh -s <Subscription ID> -g <Resource Group> -x yes
Untuk memfilter jenis sumber daya terraform: (misalnya: hanya set ketersediaan)
./az2tf.sh -s <Subscription ID> -g <Resource Group> -r azurerm_availability_set
Bersabarlah - banyak keluaran diberikan sebagai az2tf:
Jenis sumber daya terraform berikut didukung oleh alat ini saat ini:
Sumber Daya Dasar
Sumber Daya Otorisasi
Sumber Daya Direktori Aktif
Sumber Daya Layanan Aplikasi (Aplikasi Web).
Sumber Daya Otomatisasi
Sumber Daya Komputasi
Sumber Daya Kontainer
Sumber Daya CosmosDB (DocumentDB).
Sumber Daya Databricks
Sumber Daya Gudang Kunci
Sumber Daya Penyeimbang Beban
Sumber Daya Manajemen
Sumber Daya Pesan
Sumber Daya Pemantauan
Sumber Daya Jaringan
Sumber Daya Kebijakan
Sumber Daya OMS
Layanan Pemulihan
Sumber Daya Penyimpanan
(Full) = dukungan penuh untuk semua atribut terraform (Common) = dukungan untuk atribut terraform yang paling umum (Partial) = dukungan untuk beberapa atribut terraform
Cukup lambat untuk mengulang segala sesuatu dalam langganan besar, ada cara untuk mempercepat alat ini (membuat lebih sedikit panggilan perintah az cli) tetapi juga akan mempersulit proses debug, saya mungkin akan mempertimbangkan untuk melakukan ini setelah saya selesai membangun dukungan untuk lebih banyak penyedia.
Bisa gagal jika login/SPN Anda tidak memiliki akses ke KeyVault
Atribut ini selalu dilaporkan dalam rencana terraform yang disetel ke false secara default - mungkin perlu diganti secara manual
menunggu dukungan terraform untuk titik akhir layanan VNet/firewall Dapat gagal jika login/SPN Anda tidak memiliki akses KeyVault yang digunakan untuk enkripsi Bisa juga gagal karena kunci sumber daya ada di tempatnya
Jika solusi memiliki '[' & ']' di namanya, maka solusi tersebut akan diabaikan.
Tidak ada dukungan untuk peering MS (tidak ada yang perlu diuji!)
terraform tidak mendukung izin "Semua".
jika tidak ada pengaturan bgp yang ditentukan untuk VNet Gateway, terraform plan
akan melaporkan perubahan yang tidak berbahaya, lihat masalah di github
~ update in-place
Terraform will perform the following actions:
~ azurerm_virtual_network_gateway.rg-$RGNAME__vgw-$VGWNAME
bgp_settings.#: "" => <computed>