Modul Terraform zona arahan Azure
Azure menyediakan layanan asli untuk membangun zona pendaratan Azure Anda. Alat lain juga dapat membantu upaya ini. Salah satu alat yang sering digunakan pelanggan dan mitra untuk menyebarkan zona pendaratan adalah Terraform by HashiCorp.
Penyebaran sumber daya ke zona pendaratan aplikasi berada di luar cakupan modul. Keputusan tentang metode penyebaran dan alat adalah untuk tim yang bertanggung jawab atas aplikasi.
Modul Terraform zona pendaratan Azure menyediakan implementasi cepat sumber daya platform yang Anda butuhkan untuk mengelola zona pendaratan Azure dalam skala besar dengan menggunakan Terraform. Modul ini dirancang untuk menyederhanakan penyebaran hierarki, kebijakan, dan sumber daya grup manajemen dalam langganan konektivitas dan manajemen.
Prasyarat
Jika Anda baru menggunakan Terraform dan ingin informasi tentang menginstal dan menggunakannya, lihat tutorial Instal Terraform di HashiCorp Learn.
Untuk informasi tentang cara menyiapkan penyedia Terraform dan mengautentikasi dengan Azure, lihat panduan penyedia AzureRM di situs web Terraform. Untuk mempelajari cara menyiapkan penyedia untuk penyebaran di beberapa langganan, lihat halaman wiki Konfigurasi Penyedia.
Pentingnya menggunakan modul standar
Penggunaan kembali komponen adalah prinsip dasar infrastruktur sebagai kode. Modul berperan penting dalam menentukan standar dan konsistensi di seluruh penyebaran sumber daya di dalam dan di seluruh lingkungan.
Modul Terraform zona pendaratan Azure diterbitkan ke Terraform Registry resmi dan diverifikasi oleh HashiCorp.
Menyebarkan modul dari Terraform Registry menyediakan:
- Pengiriman zona pendaratan Azure yang dipercepat di lingkungan Anda.
- Jalur peningkatan yang diuji ke versi terbaru modul, bersama dengan kontrol versi yang ketat.
Manfaat menggunakan modul
Manfaat menggunakan modul Terraform zona pendaratan Azure meliputi:
- Hierarki sumber daya inti terkelola dan dapat diperluas untuk organisasi langganan melalui grup manajemen.
- Tata kelola dan kepatuhan keamanan yang dapat diskalakan melalui kontrol manajemen identitas dan akses (IAM) Azure, dengan pustaka definisi kustom yang luas siap ditetapkan.
- Penerapan kebijakan di seluruh langganan melalui pewarisan grup manajemen.
- Sumber daya terkelola untuk zona pendaratan manajemen dan konektivitas. Sumber daya ini menyediakan:
- Kepatuhan kebijakan yang terjamin melalui integrasi ketat sumber daya yang dikelola oleh modul dan penetapan kebijakan terkait.
- Integrasi antara sumber daya untuk mengurangi overhead manajemen dan memberikan pengalaman pengguna yang ditingkatkan, seperti pembuatan tautan jaringan virtual otomatis untuk Azure Private DNS.
Tip
Pustaka templat diperbarui secara terprogram dari repositori GitHub Skala Azure/Enterprise. Untuk tetap mengetahui konfigurasi, kebijakan, dan peran pola dasar terbaru, pastikan Anda menggunakan modul versi terbaru.
Penyebaran sumber daya
Anda dapat mengonfigurasi modul untuk menyebarkan set sumber daya yang selaras dengan area desain penting berikut di zona pendaratan Azure. Sesuaikan sumber daya ini untuk memenuhi persyaratan organisasi Anda.
Kategori sumber daya | Area desain kritis |
---|---|
Sumber daya inti | Tata Kelola Keamanan organisasi sumber daya |
Sumber daya manajemen | Manajemen dan pemantauan |
Sumber daya konektivitas | Topologi dan konektivitas jaringan |
Sumber daya identitas | Pengelolaan identitas dan akses |
Mengemas kemampuan ini ke dalam satu modul Terraform memudahkan untuk membangun dan menerapkan konsistensi di seluruh platform Azure saat Anda beroperasi dalam skala besar.
Sumber daya ini selaras dengan arsitektur konseptual zona pendaratan Azure:
Anda dapat menyebarkan sumber daya ini, berdasarkan kemampuan, di beberapa langganan dengan menggunakan Konfigurasi Penyedia pada blok modul.
Bagian berikut menguraikan jenis sumber daya dan opsi konfigurasi.
Sumber daya inti
Kemampuan inti modul ini menyebarkan fondasi arsitektur konseptual untuk zona pendaratan Azure, dengan fokus pada organisasi sumber daya pusat.
Saat Anda mengaktifkan penyebaran sumber daya inti (diaktifkan secara default), modul menyebarkan dan mengelola jenis sumber daya berikut:
Sumber daya | Jenis sumber daya Azure | Jenis sumber daya Terraform |
---|---|---|
Grup pengelolaan | Microsoft.Management/managementGroups |
azurerm_management_group |
Langganan grup manajemen | Microsoft.Management/managementGroups/subscriptions |
azurerm_management_group |
Penetapan kebijakan | Microsoft.Authorization/policyAssignments |
azurerm_management_group_policy_assignment |
Definisi kebijakan | Microsoft.Authorization/policyDefinitions |
azurerm_policy_definition |
Definisi kumpulan kebijakan | Microsoft.Authorization/policySetDefinitions |
azurerm_policy_set_definition |
Penetapan peran | Microsoft.Authorization/roleAssignments |
azurerm_role_assignment |
Definisi peran | Microsoft.Authorization/roleDefinitions |
azurerm_role_definition |
Jumlah sumber daya yang tepat yang dibuat modul tergantung pada konfigurasi modul. Untuk konfigurasi default, Anda dapat mengharapkan modul untuk membuat sekitar 180
sumber daya.
Tip
Tidak ada sumber daya ini yang disebarkan di cakupan langganan, tetapi Terraform masih memerlukan langganan untuk membuat sesi terautentikasi dengan Azure. Untuk informasi selengkapnya tentang mengautentikasi dengan Azure, lihat dokumentasi Penyedia Azure: Mengautentikasi ke Azure .
Sumber daya manajemen
Modul ini menyediakan opsi untuk mengaktifkan penyebaran sumber daya manajemen dan pemantauan dari arsitektur konseptual untuk zona pendaratan Azure ke dalam langganan yang ditentukan, seperti yang dijelaskan di halaman wiki Konfigurasi Penyedia. Modul ini juga memastikan bahwa langganan yang ditentukan ditempatkan di grup manajemen yang tepat.
Saat Anda mengaktifkan penyebaran sumber daya manajemen, modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):
Sumber daya | Jenis sumber daya Azure | Jenis sumber daya Terraform |
---|---|---|
Kelompok Sumber Daya | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Ruang kerja Analitik Log | Microsoft.OperationalInsights/workspaces |
azurerm_log_analytics_workspace |
Solusi Analitik Log | Microsoft.OperationsManagement/solutions |
azurerm_log_analytics_solution |
Akun Automation | Microsoft.Automation/automationAccounts |
azurerm_automation_account |
Layanan tertaut Analitik Log | Microsoft.OperationalInsights/workspaces /linkedServices |
azurerm_log_analytics_linked_service |
Selain menyebarkan sumber daya di atas, modul menyediakan integrasi asli ke dalam penetapan kebijakan yang sesuai untuk memastikan kepatuhan kebijakan penuh.
Untuk informasi selengkapnya tentang cara menggunakan kemampuan ini, lihat halaman wiki Sumber Daya Manajemen Penyebaran.
Sumber daya konektivitas
Modul ini menyediakan opsi untuk mengaktifkan penyebaran topologi jaringan dan sumber daya konektivitas dari arsitektur konseptual untuk zona pendaratan Azure ke dalam konteks langganan saat ini. Ini juga memastikan bahwa langganan yang ditentukan ditempatkan di grup manajemen yang tepat.
Kemampuan ini memungkinkan penyebaran beberapa jaringan hub berdasarkan kombinasi topologi jaringan Azure tradisional (hub dan spoke), dan topologi jaringan Virtual WAN (dikelola Microsoft).
Modul ini juga dapat membuat dan menautkan DDoS Network Protection ke Virtual Network, dan mengelola zona DNS publik dan privat terpusat.
Catatan
Saat ini kami tidak merekomendasikan Perlindungan IP DDoS di Zona Pendaratan Azure dan merekomendasikan penggunaan opsi ini dalam keadaan tertentu. Tinjau dokumentasi produk Tentang Perbandingan SKU Azure DDoS Protection
Topologi jaringan Azure tradisional (hub dan spoke)
Modul ini dapat secara opsional menyebarkan satu atau beberapa jaringan hub berdasarkan topologi jaringan Azure tradisional (hub dan spoke).
Catatan
Modul saat ini hanya mengonfigurasi hub jaringan dan sumber daya dependen untuk langganan konektivitas. Meskipun ada opsi untuk mengaktifkan peering jaringan virtual keluar dari hub ke spoke, pengguna masih perlu memulai peering dari spoke ke hub. Hal ini disebabkan oleh keterbatasan cara penyedia AzureRM menargetkan langganan tertentu untuk penyebaran.
Saat Anda menyebarkan sumber daya berdasarkan topologi jaringan Azure tradisional (hub dan spoke), modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):
Sumber daya | Jenis sumber daya Azure | Jenis sumber daya Terraform |
---|---|---|
Kelompok Sumber Daya | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Jaringan virtual | Microsoft.Network/virtualNetworks |
azurerm_virtual_network |
Subnet | Microsoft.Network/virtualNetworks/subnets |
azurerm_subnet |
Gateway jaringan virtual | Microsoft.Network/virtualNetworkGateways |
azurerm_virtual_network_gateway |
Firewall Azure | Microsoft.Network/azureFirewalls |
azurerm_firewall |
Alamat IP publik | Microsoft.Network/publicIPAddresses |
azurerm_public_ip |
Peering jaringan virtual | Microsoft.Network/virtualNetworks/virtualNetworkPeerings |
azurerm_virtual_network_peering |
Untuk informasi selengkapnya tentang cara menggunakan kemampuan ini, lihat halaman wiki Sebarkan Sumber Daya Konektivitas.
Topologi jaringan Virtual WAN (dikelola Microsoft)
Modul ini dapat secara opsional menyebarkan satu atau beberapa jaringan hub berdasarkan topologi jaringan Virtual WAN (dikelola Microsoft).
Catatan
Karena kemampuan sumber daya jaringan Virtual WAN yang berbeda melalui spoke tradisional, peering untuk virtual WAN bersifat dua arah saat menggunakan kemampuan ini.
Saat Anda menyebarkan sumber daya berdasarkan topologi jaringan Virtual WAN (dikelola Microsoft), modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):
Sumber daya | Jenis sumber daya Azure | Jenis sumber daya Terraform |
---|---|---|
Grup Sumber Daya | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Virtual WAN | Microsoft.Network/virtualWans |
azurerm_virtual_wan |
Hub Virtual | Microsoft.Network/virtualHubs |
azurerm_virtual_hub |
Gateway Rute Ekspres | Microsoft.Network/expressRouteGateways |
azurerm_express_route_gateway |
VPN Gateway | Microsoft.Network/vpnGateways |
azurerm_vpn_gateway |
Azure Firewall | Microsoft.Network/azureFirewalls |
azurerm_firewall |
Kebijakan Azure Firewall | Microsoft.Network/firewallPolicies |
azurerm_firewall_policy |
Koneksi Hub Virtual | Microsoft.Network/virtualHubs/hubVirtualNetworkConnections |
azurerm_virtual_hub_connection |
Untuk informasi selengkapnya tentang cara menggunakan kemampuan ini, lihat halaman wiki Sebarkan Sumber Daya Virtual WAN.
Paket DDoS Protection
Modul ini dapat secara opsional menyebarkan DDoS Network Protection, dan menautkan Virtual Network ke paket jika diperlukan.
Catatan
Karena keterbatasan platform, paket DDoS Protection hanya dapat diaktifkan untuk jaringan virtual tradisional. Dukungan Hub Virtual saat ini tidak tersedia.
Penting
Panduan zona pendaratan Azure merekomendasikan untuk mengaktifkan DDoS Network Protection untuk meningkatkan perlindungan platform Azure Anda. Untuk mencegah biaya tak terduga dalam penyebaran non-produksi dan MVP, kemampuan ini dinonaktifkan di modul Terraform zona pendaratan Azure karena biaya yang terkait dengan sumber daya ini.
Untuk lingkungan produksi, sebaiknya aktifkan kemampuan ini.
Saat Anda mengaktifkan penyebaran penyebaran sumber daya paket DDoS Protection, modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):
Sumber daya | Jenis sumber daya Azure | Jenis sumber daya Terraform |
---|---|---|
Kelompok Sumber Daya | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Paket DDoS Protection | Microsoft.Network/ddosProtectionPlans |
azurerm_network_ddos_protection_plan |
DNS
Modul ini dapat secara opsional menyebarkan zona DNS Privat untuk mendukung Titik Akhir Privat dan menautkannya ke Jaringan Virtual hub dan/atau spoke. Zona DNS publik dan privat yang ditentukan pengguna juga dapat disebarkan dan ditautkan sesuai kebutuhan.
Saat Anda mengaktifkan penyebaran penyebaran sumber daya DNS, modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):
Sumber daya | Jenis sumber daya Azure | Jenis sumber daya Terraform |
---|---|---|
Grup Sumber Daya | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Zona DNS | Microsoft.Network/dnsZones |
azurerm_dns_zone |
Zona DNS Privat | Microsoft.Network/privateDnsZones |
azurerm_private_dns_zone |
Tautan Jaringan Virtual Zona DNS Privat | Microsoft.Network/privatednszones/virtualnetworklinks |
azurerm_private_dns_zone_virtual_network_link |
Sumber daya identitas
Modul ini menyediakan opsi untuk mengonfigurasi kebijakan yang berkaitan dengan zona pendaratan manajemen identitas dan akses. Ini juga memastikan bahwa langganan yang ditentukan ditempatkan di grup manajemen yang tepat.
Catatan
Kemampuan ini tidak menyebarkan sumber daya apa pun. Jika Anda ingin memperbarui pengaturan kebijakan yang terkait dengan grup manajemen identitas, gunakan configure_identity_resources
variabel input.
Untuk informasi selengkapnya tentang cara menggunakan kemampuan ini, lihat halaman wiki Sebarkan Sumber Daya Identitas.
Memulai
Persyaratan untuk memulai modul didokumenkan di halaman Wiki Memulai .
Untuk menyederhanakan memulai, modul telah diterbitkan ke Terraform Registry. Anda dapat mereferensikannya langsung dalam kode Anda, seperti yang ditunjukkan dalam contoh sederhana nanti di artikel ini. Menjalankan terraform init
akan secara otomatis mengunduh modul dan semua dependensi.
Anda dapat melihat dependensi modul dan penyedia terbaru pada tab Dependensi di Terraform Registry.
Penting
Ada masalah umum dengan beberapa kombinasi versi penyedia Terraform dan AzureRM. Anda dapat mengatasi beberapa masalah umum dengan meningkatkan ke versi penyedia Terraform dan AzureRM terbaru. Masalah lain yang diketahui adalah kesalahan sementara yang biasanya dapat Anda perbaiki dengan menjalankan ulang penyebaran Anda.
Kami biasanya merekomendasikan menyematkan ke versi tertentu, dan menguji secara menyeluruh sebelum meningkatkan.
Kami akan merilis versi baru modul saat perubahan diperlukan. Rilis baru akan memastikan kompatibilitas dengan versi penyedia Terraform dan AzureRM terbaru. Silakan merujuk ke panduan rilis Modul kami untuk informasi lebih lanjut.
Untuk mendapatkan fitur terbaru, pastikan versi modul diatur ke versi terbaru. Jika Anda meningkatkan ke versi modul yang lebih baru, jalankan terraform init -upgrade
.
Contoh sederhana
Contoh kode ini menyebarkan grup manajemen minimum yang direkomendasikan dan organisasi langganan dari arsitektur referensi skala perusahaan. Setelah Anda memiliki contoh sederhana ini dan berjalan, Anda dapat mulai menyesuaikan penyebaran Anda.
Tip
Meskipun root_parent_id
adalah satu-satunya variabel wajib modul, kami juga menyarankan pengaturan root_id
. Mengubah root_id
nilai akan memulai penyebaran ulang penuh dari semua sumber daya yang dikelola modul, termasuk dependensi hilir.
Kode berikut adalah konfigurasi awal yang sederhana untuk modul root main.tf
Anda:
# Configure Terraform to set the required AzureRM provider
# version and features{} block.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 2.77.0"
}
}
}
provider "azurerm" {
features {}
}
# Get the current client configuration from the AzureRM provider.
# This configuration is used to populate the root_parent_id variable with the
# current tenant ID used as the ID for the "Tenant Root Group"
# management group.
data "azurerm_client_config" "core" {}
# Use variables to customize the deployment
variable "root_id" {
type = string
default = "es"
}
variable "root_name" {
type = string
default = "Enterprise-Scale"
}
# Declare the Terraform Module for Cloud Adoption Framework
# Enterprise-scale and provide a base configuration.
module "enterprise_scale" {
source = "Azure/caf-enterprise-scale/azurerm"
version = ">= 1.0.0"
providers = {
azurerm = azurerm
azurerm.connectivity = azurerm
azurerm.management = azurerm
}
root_parent_id = data.azurerm_client_config.core.tenant_id
root_id = var.root_id
root_name = var.root_name
}
Langkah berikutnya
Modul Terraform untuk skala Perusahaan Cloud Adoption Framework menyediakan jalur yang dipercepat untuk membangun zona pendaratan skala perusahaan Anda. Ini juga memberikan fleksibilitas untuk memperluas dan menyesuaikan penyebaran Anda sambil mempertahankan pendekatan yang sederhana untuk mengelola konfigurasi setiap zona arahan.
Untuk mengetahui lebih lanjut, tinjau modul di Terraform Registry dan jelajahi dokumentasi modul di GitHub. Dalam dokumentasi, Anda menemukan lebih banyak contoh dan tutorial tentang cara menyesuaikan penyebaran Anda.
Pelajari cara menyebarkan modul Terraform zona pendaratan Azure melalui HashiCorp Learn. Dari sana, Anda juga dapat menemukan cara kerja beberapa bagian modul.
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