Azure giriş bölgeleri Terraform modülü
Azure, Azure giriş bölgelerinizi oluşturmak için yerel hizmetler sağlar. Diğer araçlar da bu çalışmada yardımcı olabilir. Müşterilerin ve iş ortaklarının giriş bölgelerini dağıtmak için sıklıkla kullandığı araçlardan biri aracıdır.
Kaynakların uygulama giriş bölgelerine dağıtımı modülün kapsamı dışındadır. Dağıtım yöntemi ve araçlarıyla ilgili kararlar, uygulamadan sorumlu ekip içindir.
Azure giriş bölgeleri Terraform modülü, ihtiyacınız olan platform kaynaklarının hızlı bir şekilde uygulanmasını sağlar. Terraform kullanarak büyük ölçekte Azure giriş bölgeleri. Modül, bağlantı ve yönetim aboneliklerindeki yönetim grubu hiyerarşisinin, ilkelerinin ve kaynaklarının dağıtımını basitleştirmek için tasarlanmıştır.
Önkoşullar
Terraform'u yeni kullanmaya yeniyseniz ve yükleme ve kullanma hakkında bilgi edinmek istiyorsanız bkz Terraform öğreticisini HashiCorp Learn'e yükleyin.
Terraform sağlayıcısını ayarlama ve Azure ile kimlik doğrulaması yapma hakkında bilgi için bkz Terraform web sitesinde AzureRM sağlayıcısı kılavuzları . Sağlayıcıyı birden çok abonelikte dağıtmak üzere ayarlamayı öğrenmek için Sağlayıcı Yapılandırması wiki sayfası.
Standart modülleri kullanmanın önemi
Bileşenlerin yeniden kullanılması kod olarak altyapının temel ilkesidir. Modüller, ortamlar içinde ve ortamlar arasında kaynak dağıtımında standartları ve tutarlılığı tanımlamada yardımcı olur.
Azure giriş bölgeleri Terraform modülü, yayımlanır.Terraform Registry ve HashiCorp tarafından doğrulanır.
Terraform Kayıt Defteri'nden modülü dağıtmak aşağıdakileri sağlar:
- Ortamınızdaki Azure giriş bölgelerinin hızlandırılmış teslimi.
- Katı sürüm denetimiyle birlikte modülün en son sürümüne test edilmiş bir yükseltme yolu.
Modülü kullanmanın avantajları
Azure giriş bölgeleri Terraform modülünü kullanmanın avantajları şunlardır:
- Yönetim grupları aracılığıyla abonelik organizasyonu için yönetilen ve genişletilebilir bir çekirdek kaynak hiyerarşisi.
- Azure kimlik ve erişim yönetimi (IAM) denetimleri aracılığıyla ölçeklenebilir güvenlik idaresi ve uyumluluğu ve atanmaya hazır kapsamlı bir özel tanım kitaplığı.
- Yönetim grubu devralma yoluyla abonelikler arasında ilkenin uygulanması.
- Yönetim ve bağlantı giriş bölgeleri için yönetilen kaynaklar. Bu kaynaklar şunları sağlar:
- Modül tarafından yönetilen kaynakların sıkı tümleştirmesi ve buna karşılık gelen ilke atamaları aracılığıyla ilke uyumluluğunu güvence altına alın.
- Yönetim yükünü azaltmak ve Azure Özel DNS için sanal ağ bağlantılarının otomatik olarak oluşturulması gibi gelişmiş bir kullanıcı deneyimi sağlamak için kaynaklar arasında tümleştirme.
İpucu
Şablon kitaplığı program aracılığıyla güncelleştirilir.Azure/Enterprise-Scale GitHub deposu. En son archetype yapılandırması, ilkeleri ve rolleri ile güncel kalmak için modülün en son sürümünü kullandığınızdan emin olun.
Kaynak dağıtımı
Modülü, Azure giriş bölgelerinde aşağıdaki kritik tasarım alanlarıyla uyumlu kaynak kümeleri dağıtacak şekilde yapılandırabilirsiniz. Kuruluşunuzun gereksinimlerini karşılamak için bu kaynakları özelleştirin.
Kaynak kategorisi | Kritik tasarım alanı |
---|---|
Temel kaynaklar | Bulut Benimseme ÇerçevesiAzure giriş bölgeleri için kaynak kuruluşu Bulut Benimseme Çerçevesi Azure giriş bölgeleri için Güvenlik Yönetim |
Yönetim kaynakları | Yönetim ve izleme |
Bağlantı kaynakları | Ağ topolojisi ve bağlantı |
Kimlik kaynakları | Kimlik ve erişim yönetimi |
Bu özellikleri tek bir Terraform modülünde paketlemek, büyük ölçekte çalışırken Azure platformunda tutarlılık oluşturmayı ve zorlamayı kolaylaştırır.
Bu kaynaklar Azure giriş bölgeleri kavramsal mimarisiyle uyumlu:
kullanarak bu kaynakları yeteneklere göre birden çok abonelikte dağıtabilirsiniz. Modül bloğunda Sağlayıcı Yapılandırması.
Aşağıdaki bölümlerde kaynak türleri ve yapılandırma seçenekleri özetlenmiştir.
Temel kaynaklar
Bu modülün temel özelliği temellerini dağıtır.Bulut Benimseme Çerçevesi Azure giriş kavramsal mimari.kaynak kuruluşu.
Çekirdek kaynakların dağıtımını etkinleştirdiğinizde (varsayılan olarak etkin), modül aşağıdaki kaynak türlerini dağıtır ve yönetir:
Kaynak | Azure kaynak türü | Terraform kaynak türü |
---|---|---|
Yönetim grupları | Microsoft.Management/managementGroups |
azurerm_management_group |
Yönetim grubu abonelikleri | Microsoft.Management/managementGroups/subscriptions |
azurerm_management_group |
İlke atamaları | Microsoft.Authorization/policyAssignments |
azurerm_management_group_policy_assignment |
İlke tanımları | Microsoft.Authorization/policyDefinitions |
azurerm_policy_definition |
İlke kümesi tanımları | Microsoft.Authorization/policySetDefinitions |
azurerm_policy_set_definition |
Rol atamaları | Microsoft.Authorization/roleAssignments |
azurerm_role_assignment |
Rol tanımları | Microsoft.Authorization/roleDefinitions |
azurerm_role_definition |
Modülün oluşturduğu kaynakların tam sayısı modül yapılandırmasına bağlıdır. Varsayılan yapılandırma için modülün yaklaşık 180
kaynak oluşturmasını bekleyebilirsiniz.
İpucu
Bu kaynakların hiçbiri abonelik kapsamında dağıtılmaz, ancak Terraform'un Azure ile kimliği doğrulanmış bir oturum oluşturmak için bir aboneliğe ihtiyacı vardır. Azure ile kimlik doğrulaması hakkında daha fazla bilgi için bkz Azure Sağlayıcısı: Azure belgelerinde kimlik doğrulaması .
Yönetim kaynakları
Modül, etkinleştirme seçeneği sağlar. yönetim ve izleme kaynakları. açıklandığı gibi Belirtilen aboneliğe Azure giriş bölgeleri için kavramsal mimari.Sağlayıcı Yapılandırması wiki sayfası. Modül ayrıca belirtilen aboneliğin doğru yönetim grubuna yerleştirilmesini de sağlar.
Yönetim kaynaklarının dağıtımını etkinleştirdiğinizde, modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):
Kaynak | Azure kaynak türü | Terraform kaynak türü |
---|---|---|
Kaynak grupları | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Log Analytics çalışma alanı | Microsoft.OperationalInsights/workspaces |
azurerm_log_analytics_workspace |
Log Analytics çözümleri | Microsoft.OperationsManagement/solutions |
azurerm_log_analytics_solution |
Otomasyon hesabı | Microsoft.Automation/automationAccounts |
azurerm_automation_account |
Log Analytics bağlı hizmeti | Microsoft.OperationalInsights/workspaces /linkedServices |
azurerm_log_analytics_linked_service |
Yukarıdaki kaynakları dağıtmaya ek olarak modül, tam ilke uyumluluğu sağlamak için ilgili ilke atamalarıyla yerel tümleştirme sağlar.
Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için wiki sayfasına bakın.
Bağlantı kaynakları
Modül, etkinleştirme seçeneği sağlar. ağ topolojisi ve bağlantı kaynakları.Geçerli abonelik bağlamı içine Azure giriş bölgeleri için kavramsal mimari. Ayrıca belirtilen aboneliğin doğru yönetim grubuna yerleştirilmesini de sağlar.
Bu özellik, geleneksel Azure ağ topolojisi (merkez ve uç) ile Sanal WAN ağ topolojisinin (Microsoft tarafından yönetilen) herhangi bir bileşimine dayalı olarak birden çok merkez ağı dağıtımına olanak tanır.
Modül ayrıca DDoS Ağ Koruması oluşturup Sanal Ağlara bağlayabilir ve merkezi genel ve özel DNS bölgelerini yönetebilir.
Not
Şu anda Azure Giriş Bölgelerinde DDoS IP Koruması önermiyoruz ve bu seçeneğin belirli durumlarda kullanılmasını önermiyoruz. Azure DDoS Koruması SKU Karşılaştırması hakkında ürün belgelerini gözden geçirin
Geleneksel Azure ağ topolojisi (merkez-uç)
Modül isteğe bağlı olarak geleneksel Azure ağ topolojisini (merkez ve uç) temel alan bir veya daha fazla merkez ağı dağıtabilir.
Not
Modül şu anda bağlantı aboneliği için yalnızca ağ hub'ını ve bağımlı kaynakları yapılandırıyor. Merkezden uca giden sanal ağ eşlemesini etkinleştirme seçeneği olsa da, kullanıcıların yine de uçtan merkeze eşleme başlatması gerekir. Bunun nedeni, AzureRM sağlayıcısının dağıtım için belirli bir aboneliği hedeflemesiyle ilgili sınırlamalardır.
Kaynakları geleneksel bir Azure ağ topolojisine (merkez-uç) göre dağıttığınızda modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):
Kaynak | Azure kaynak türü | Terraform kaynak türü |
---|---|---|
Kaynak grupları | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Sanal ağlar | Microsoft.Network/virtualNetworks |
azurerm_virtual_network |
Alt ağlar | Microsoft.Network/virtualNetworks/subnets |
azurerm_subnet |
Sanal ağ geçitleri | Microsoft.Network/virtualNetworkGateways |
azurerm_virtual_network_gateway |
Azure güvenlik duvarları | Microsoft.Network/azureFirewalls |
azurerm_firewall |
Genel IP adresleri | Microsoft.Network/publicIPAddresses |
azurerm_public_ip |
Sanal ağ eşlemeleri | Microsoft.Network/virtualNetworks/virtualNetworkPeerings |
azurerm_virtual_network_peering |
Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için wiki sayfasına bakın.
Sanal WAN ağ topolojisi (Microsoft tarafından yönetilen)
Modül isteğe bağlı olarak Sanal WAN ağ topolojisine (Microsoft tarafından yönetilen) bağlı olarak bir veya daha fazla merkez ağı dağıtabilir.
Not
Sanal WAN ağ kaynaklarının gelenekselden farklı özellikleri nedeniyle, bu özellik kullanılırken Sanal WAN uçlar için eşleme çift yönlüdür.
Kaynakları bir Sanal WAN ağ topolojisine (Microsoft tarafından yönetilen) göre dağıttığınızda modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):
Kaynak | Azure kaynak türü | Terraform kaynak türü |
---|---|---|
Kaynak Grupları | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Sanal WAN'lar | Microsoft.Network/virtualWans |
azurerm_virtual_wan |
Sanal Hub’lar | Microsoft.Network/virtualHubs |
azurerm_virtual_hub |
Express Route Ağ Geçidi | Microsoft.Network/expressRouteGateways |
azurerm_express_route_gateway |
VPN Ağ Geçitleri | Microsoft.Network/vpnGateways |
azurerm_vpn_gateway |
Azure Güvenlik Duvarları | Microsoft.Network/azureFirewalls |
azurerm_firewall |
Azure Güvenlik Duvarı İlkeleri | Microsoft.Network/firewallPolicies |
azurerm_firewall_policy |
Sanal Merkez Bağlantıları | Microsoft.Network/virtualHubs/hubVirtualNetworkConnections |
azurerm_virtual_hub_connection |
Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için Sanal WAN Kaynakları Dağıtma wiki sayfası.
DDoS Koruma planı
Modül isteğe bağlı olarak DDoS Ağ Koruması dağıtabilir ve gerekirse Sanal Ağları plana bağlayabilir.
Not
Platform sınırlamaları nedeniyle DDoS Koruması planları yalnızca geleneksel sanal ağlar için etkinleştirilebilir. Sanal Merkez desteği şu anda kullanılamıyor.
Önemli
Azure giriş bölgeleri kılavuzu, Azure platformunuzun korumasını artırmak için DDoS Ağ Koruması'nın etkinleştirilmesini önerir. Üretim dışı ve MVP dağıtımlarında beklenmeyen maliyetleri önlemek için bu özellik, bu kaynakla ilişkili maliyet nedeniyle Azure giriş bölgeleri Terraform modülünde devre dışı bırakılır.
Üretim ortamları için bu özelliği etkinleştirmenizi kesinlikle öneririz.
DDoS Koruma planı kaynaklarının dağıtımını etkinleştirdiğinizde modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):
Kaynak | Azure kaynak türü | Terraform kaynak türü |
---|---|---|
Kaynak grupları | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
DDoS Koruması planları | Microsoft.Network/ddosProtectionPlans |
azurerm_network_ddos_protection_plan |
DNS
Modül, özel uç noktaları desteklemek ve bunları merkez ve/veya uç Sanal Ağlara bağlamak için isteğe bağlı olarak Özel DNS bölgeleri dağıtabilir. Kullanıcı tarafından belirtilen genel ve özel DNS bölgeleri de gerektiğinde dağıtılabilir ve bağlanabilir.
DNS kaynaklarının dağıtımını etkinleştirdiğinizde modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):
Kaynak | Azure kaynak türü | Terraform kaynak türü |
---|---|---|
Kaynak Grupları | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
DNS Bölgeleri | Microsoft.Network/dnsZones |
azurerm_dns_zone |
Özel DNS Bölgeleri | Microsoft.Network/privateDnsZones |
azurerm_private_dns_zone |
Özel DNS Bölge Sanal Ağ Bağlantısı | Microsoft.Network/privatednszones/virtualnetworklinks |
azurerm_private_dns_zone_virtual_network_link |
Kimlik kaynakları
Modül, ilgili ilkeleri yapılandırma seçeneği sağlar.kimlik ve erişim yönetimi giriş bölgesi. Ayrıca belirtilen aboneliğin doğru yönetim grubuna yerleştirilmesini de sağlar.
Not
Bu özellik herhangi bir kaynak dağıtmaz. Kimlik yönetimi grubuyla ilgili ilke ayarlarını güncelleştirmek istiyorsanız giriş değişkenini configure_identity_resources
kullanın.
Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için wiki sayfasına bakın.
Başlarken
Modülü kullanmaya başlama gereksinimleri sayfasında belgelenmiştir.
Kullanmaya başlamayı basitleştirmek için modül Terraform Kayıt Defteri. Bu makalenin sonraki bölümlerindeki basit örnekte gösterildiği gibi doğrudan kodunuzun içinde başvurabilirsiniz. komutunu çalıştırdığınızda terraform init
modül ve tüm bağımlılıklar otomatik olarak indirilir.
Terraform Kayıt Defteri'ndeki Bağımlılıklar sekmesi.
Önemli
Bazı Terraform ve AzureRM sağlayıcısı sürüm birleşimleriyle ilgili bilinen sorunlar vardır. Bilinen bazı sorunları en son Terraform ve AzureRM sağlayıcı sürümlerine yükselterek çözebilirsiniz. Bilinen diğer sorunlar, genellikle dağıtımınızı yeniden çalıştırarak düzeltebileceğiniz geçici hatalardır.
Genellikle belirli sürümlere sabitlemenizi ve yükseltmeden önce kapsamlı bir şekilde test yapmanızı öneririz.
Değişiklik gerektiğinde modülün yeni sürümlerini yayımlayacağız. Yeni sürümler, en son Terraform ve AzureRM sağlayıcı sürümleriyle uyumluluğu güvence altına alır. Daha fazla bilgi için lütfen Modül sürümleri kılavuzumuza bakın.
En son özellikleri almak için modül sürümünün en son sürüme ayarlandığından emin olun. Modülün sonraki bir sürümüne yükseltiyorsanız komutunu çalıştırın terraform init -upgrade
.
Basit örnek
Bu örnek kod, kurumsal ölçekli başvuru mimarisinden önerilen en düşük yönetim grubunu ve abonelik kuruluşunu dağıtır. Bu basit örneği çalıştırdıktan sonra dağıtımınızı özelleştirmeye başlayabilirsiniz.
İpucu
Modülün tek zorunlu değişkeni olsa root_parent_id
da ayarını root_id
da öneririz. Değerin root_id
değiştirilmesi, aşağı akış bağımlılıkları dahil olmak üzere modülün yönettiği tüm kaynakların tam yeniden dağıtımını başlatır.
Aşağıdaki kod, kök modülünüz main.tf
için basit bir başlangıç yapılandırmasıdır:
# 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
}
Sonraki adımlar
Bulut Benimseme Çerçevesi Enterprise ölçeği için Terraform modülü, kurumsal ölçekli giriş bölgelerinizi oluşturmak için hızlandırılmış bir yol sağlar. Ayrıca, her giriş bölgesinin yapılandırmasını yönetmek için basitleştirilmiş bir yaklaşım sürdürürken dağıtımınızı genişletme ve özelleştirme esnekliği de sağlar.
Daha fazla bilgi edinmek için Terraform Kayıt Defteri'nde modülü gözden geçirin ve GitHub'da modül belgeleri . Belgelerde, dağıtımınızı özelleştirme hakkında daha fazla örnek ve öğretici bulabilirsiniz.
HashiCorp Learn aracılığıyla Azure giriş bölgeleri Terraform modülünü dağıtın. Buradan modülün bazı bölümlerinin nasıl çalıştığını da keşfedebilirsiniz.