Rychlý start: Nasazení služby Azure Bastion pomocí Terraformu
V tomto rychlém startu se dozvíte, jak pomocí Terraformu nasadit Azure Bastion automaticky na webu Azure Portal. Uděláte to tak, že vytvoříte hostitele Služby Azure Bastion a odpovídající prostředky Azure, mezi které patří skupina prostředků, virtuální síť, podsíť Služby Azure Bastion a veřejná IP adresa. Toto nastavení zajišťuje zabezpečené prostředí privátní sítě pro vaše služby Azure. Následující diagram obsahuje přehled nasazení služby Azure Bastion:
Nasazení služby Azure Bastion umožňuje používat protokol RDP a SSH pro přístup k virtuálním počítačům na webu Azure Portal. Tato služba je zřízená přímo ve vaší virtuální síti a podporuje všechny virtuální počítače, což snižuje riziko vystavení veřejným síťovým připojením. Když bastion nasadíte automaticky, bastion se nasadí se skladovou jednotkou Standard. Pokud chcete místo toho nasadit SKU pro vývojáře, projděte si rychlý start: Nasazení služby Azure Bastion – skladová položka pro vývojáře. Další informace o přizpůsobení nasazení služby Azure Bastion najdete v doprovodných materiálech k nasazení služby Azure Bastion.
Terraform umožňuje definici, verzi Preview a nasazení cloudové infrastruktury. Pomocí Terraformu vytvoříte konfigurační soubory pomocí syntaxe HCL. Syntaxe seznamu HCL umožňuje zadat poskytovatele cloudu , například Azure, a prvky, které tvoří vaši cloudovou infrastrukturu. Po vytvoření konfiguračních souborů vytvoříte plán provádění, který vám umožní zobrazit náhled změn infrastruktury před jejich nasazením. Jakmile ověříte změny, použijete plán provádění k nasazení infrastruktury.
- Vytvořte skupinu prostředků Azure s jedinečným názvem.
- Vytvořte virtuální síť se zadaným názvem a adresou.
- Nastavte podsíť speciálně pro Azure Bastion v rámci vytvořené virtuální sítě.
- Přidělte statickou standardní veřejnou IP adresu pro Azure Bastion v rámci skupiny prostředků.
- Vytvořte hostitele Služby Azure Bastion se zadanou konfigurací PROTOKOLU IP v rámci skupiny prostředků.
- Vypíše názvy a IP adresu skupiny prostředků a hostitele Služby Azure Bastion.
Vytvořte účet Azure s aktivním předplatným. Účet si můžete vytvořit zdarma.
Nainstalujte a konfigurujte Terraform.
Poznámka
Vzorový kód pro tento článek se nachází v úložišti GitHubu Azure Terraformu. Můžete zobrazit soubor protokolu obsahující výsledky testu z aktuálních a předchozích verzí Terraformu.
Podívejte se na další články a ukázkový kód ukazující, jak používat Terraform ke správě prostředků Azure.
Vytvořte adresář, ve kterém chcete otestovat a spustit ukázkový kód Terraformu a nastavit ho jako aktuální adresář.
Vytvořte soubor s názvem
main.tf
a vložte následující kód:# Create Resource Group resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { location = var.resource_group_location name = random_pet.rg_name.id } # Create Virtual Network resource "azurerm_virtual_network" "vnet" { name = "example-network" address_space = ["10.0.0.0/16"] location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name } # Create Subnet for Azure Bastion resource "azurerm_subnet" "bastion_subnet" { name = "AzureBastionSubnet" resource_group_name = azurerm_resource_group.rg.name virtual_network_name = azurerm_virtual_network.vnet.name address_prefixes = ["10.0.1.0/24"] } # Create Public IP for Azure Bastion resource "azurerm_public_ip" "bastion_pip" { name = "example-pip" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name allocation_method = "Static" sku = "Standard" } # Create Azure Bastion Host resource "azurerm_bastion_host" "bastion" { name = "example-bastion" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name ip_configuration { name = "configuration" subnet_id = azurerm_subnet.bastion_subnet.id public_ip_address_id = azurerm_public_ip.bastion_pip.id } }
Vytvořte soubor s názvem
outputs.tf
a vložte následující kód:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "bastion_host_name" { value = azurerm_bastion_host.bastion.name } output "bastion_host_ip" { value = azurerm_public_ip.bastion_pip.ip_address }
Vytvořte soubor s názvem
providers.tf
a vložte následující kód:terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Vytvořte soubor s názvem
variables.tf
a vložte následující kód:variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." }
Spuštěním inicializace nasazení Terraformu spusťte inicializaci terraformu. Tento příkaz stáhne poskytovatele Azure potřebného ke správě prostředků Azure.
terraform init -upgrade
Klíčové body:
- Parametr
-upgrade
upgraduje potřebné moduly plug-in zprostředkovatele na nejnovější verzi, která splňuje omezení verzí konfigurace.
Spuštěním plánu terraformu vytvořte plán provádění.
terraform plan -out main.tfplan
Klíčové body:
- Příkaz
terraform plan
vytvoří plán provádění, ale nespustí ho. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provede jakékoli změny skutečných prostředků. - Volitelný
-out
parametr umožňuje zadat výstupní soubor pro plán. Použití parametru-out
zajišťuje, že plán, který jste zkontrolovali, je přesně to, co se použije.
Spuštění terraformu platí pro použití plánu provádění na cloudovou infrastrukturu.
terraform apply main.tfplan
Klíčové body:
-
terraform apply
Ukázkový příkaz předpokládá, že jste dříve spustiliterraform plan -out main.tfplan
. - Pokud jste pro
-out
parametr zadali jiný název souboru, použijte stejný název souboru při voláníterraform apply
. - Pokud jste parametr nepoužíli
-out
, zavolejteterraform apply
bez parametrů.
Získejte název skupiny prostředků Azure.
resource_group_name=$(terraform output -raw resource_group_name)
Získejte název hostitele služby Azure Bastion.
bastion_host_name=$(terraform output -raw bastion_host_name)
Získejte IP adresu hostitele služby Azure Bastion.
bastion_host_ip=$(terraform output -raw bastion_host_ip)
Spuštěním zobrazíte
az network bastion show
hostitele služby Azure Bastion.az network bastion show --name $bastion_host_name --resource-group $resource_group_name
Pokud už prostředky vytvořené přes Terraform nepotřebujete, proveďte následující kroky:
Spusťte plán terraformu
destroy
a zadejte příznak.terraform plan -destroy -out main.destroy.tfplan
Klíčové body:
- Příkaz
terraform plan
vytvoří plán provádění, ale nespustí ho. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provede jakékoli změny skutečných prostředků. - Volitelný
-out
parametr umožňuje zadat výstupní soubor pro plán. Použití parametru-out
zajišťuje, že plán, který jste zkontrolovali, je přesně to, co se použije.
- Příkaz
Spuštění terraformu platí pro použití plánu provádění.
terraform apply main.destroy.tfplan
Řešení běžných problémů při používání Terraformu v Azure
V tomto rychlém startu jste pomocí Terraformu vytvořili skupinu prostředků Azure a další bezplatné prostředky Azure k nastavení hostitele služby Azure Bastion. V dalším kroku můžete prozkoumat následující zdroje informací o službě Azure Bastion a Terraformu.