Menggunakan Azure Export for Terraform dalam skenario tingkat lanjut
Artikel ini menjelaskan cara melakukan beberapa tugas yang lebih canggih dengan Azure Export for Terraform.
- Tambahkan sumber daya ke lingkungan Terraform yang ada.
- Mengekspor sumber daya ke lingkungan Terraform yang ada dengan status backend jarak jauh
Menambahkan ke sumber daya yang ada
Secara default, Azure Export for Terraform memastikan direktori output kosong untuk menghindari konflik dengan file pengguna yang ada. Jika Anda perlu mengimpor sumber daya ke file status yang ada, tambahkan --append
bendera .
aztfexport [command] --append <scope>
--append
Saat bendera ditentukan, Azure Export for Terraform memverifikasi apakah ada atau terraform
blok yang sudah ada provider
sebelumnya di salah satu file di direktori saat ini. Jika tidak, alat ini membuat file untuk setiap blok dan kemudian melanjutkan ekspor. Jika direktori output memiliki file status, sumber daya yang diekspor diimpor ke dalam file status.
Selain itu, file yang dihasilkan memiliki .aztfexport
akhiran sebelum ekstensi - seperti main.aztfexport.tf
- untuk menghindari potensi konflik nama file.
Jika Anda menjalankan aztfexport --append
beberapa kali, satu main.aztfexport.tf
dibuat dengan hasil ekspor ditambahkan ke file setiap kali perintah dijalankan.
Bawa konfigurasi Terraform Anda sendiri
Secara default, Azure Export for Terraform menggunakan backend lokal untuk menyimpan file status. Namun, anda juga dapat menggunakan backend jarak jauh. Azure Export for Terraform memungkinkan Anda menentukan sendiri terraform
atau provider
blok yang akan diteruskan.
Tentukan blok ini dalam file dalam .tf
direktori target Anda, ekspor dengan --append
bendera, dan ekspor konfigurasi Anda ke versi backend dan penyedia yang ditentukan (jika disediakan).
Penting
Jika versi AzureRM yang ditentukan tidak cocok dengan versi terinstal Anda saat mengekspor, perintah gagal.
Contoh Azure Storage
Contoh ini didasarkan pada artikel, status Terraform Penyimpanan di Azure Storage.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>3.0"
}
}
backend "azurerm" {
resource_group_name = "tfstate"
storage_account_name = "storageacc"
container_name = "tfstate"
key = "terraform.tfstate"
}
}
provider "azurerm" {
features {}
}
Contoh Terraform Cloud
terraform {
cloud {
organization = "aztfexport-test"
workspaces {
name = "aztfexport-playground"
}
}
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>3.0"
}
}
}
provider "azurerm" {
features {
}
}
Pengalaman sebaris
Untuk mengekspor ke backend sebaris, gunakan --backend-type
opsi dan --backend-config
. Untuk informasi selengkapnya tentang mengonfigurasi backend Terraform, lihat Konfigurasi backend Terraform.
Dengan menggunakan contoh akun penyimpanan Azure kami, Anda memerlukan yang berikut ini seperti yang didefinisikan dalam dokumentasi backend AzureRM.
- Nama grup sumber daya
- Nama akun penyimpanan
- Nama kontainer penyimpanan
Teruskan parameter ini ke dalam perintah bersama dengan jenis backend Anda:
aztfexport [subcommand] --backend-type=azurerm \
--backend-config=resource_group_name=<resource group name> \
--backend-config=storage_account_name=<account name> \
--backend-config=container_name=<container name> \
--backend-config=key=terraform.tfstate
Poin utama:
- Dalam contoh sebelumnya, saya menggunakan karakter kelanjutan baris Unix sehingga kode ditampilkan dengan baik di browser. Anda mungkin perlu mengubah karakter ini agar sesuai dengan lingkungan baris perintah Anda - seperti PowerShell - atau menggabungkan perintah ke satu baris.
- Jika status backend sudah ada, Azure Export for Terraform menggabungkan sumber daya baru dengan status yang ada secara otomatis. Anda tidak perlu menentukan opsi sebaris
--append
.
Mengekspor sumber daya Azure ke lingkungan Terraform yang sudah ada
Sekarang, mari kita satukan semuanya! Bayangkan sumber daya baru telah dibuat di luar Terraform yang perlu dipindahkan ke manajemen Terraform. Untuk menyelesaikan bagian , pastikan Anda memiliki backend yang dikonfigurasi. Tutorial ini menggunakan konfigurasi yang sama yang ditentukan dalam tutorial status jarak jauh penyimpanan Azure.
Di direktori induk tempat Anda ingin direktori sementara dibuat, jalankan perintah berikut:
aztfexport resource -o tempdir --hcl-only <resource_id>
Poin utama:
- Bendera
-o
menentukan untuk membuat direktori jika tidak ada. - Bendera
--hcl-only
menentukan untuk mengekspor sumber daya yang dikonfigurasi ke HCL
- Bendera
Setelah memeriksa bahwa sumber daya dapat ditambahkan, gunakan file pemetaan yang dihasilkan dan
--append
bendera untuk memastikan Azure Export menghormati status jarak jauh dan versi penyedia yang sudah ada sebelumnya dalam lingkungan kami yang ada:aztfexport map --append `./tempdir/aztfexportResourceMapping.json`
Jalankan init terraform.
terraform init --upgrade
Jalankan paket terraform.
Ekspor Azure untuk Terraform harus menampilkan Tidak ada perubahan yang diperlukan.
Selamat! Infrastruktur Anda dan statusnya yang sesuai telah berhasil ditambahkan ke lingkungan Terraform Anda.
Jika paket Anda mengalami masalah, lihat Konsep Azure Export for Terraform untuk memahami batasan mengenai penyebaran kode yang dihasilkan oleh --hcl-only
. Jika artikel tersebut tidak membantu Anda, buka masalah GitHub.
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk