Číst v angličtině

Sdílet prostřednictvím


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:

Diagram znázorňující architekturu 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.

Požadavky

Implementace kódu Terraformu

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.

  1. Vytvořte adresář, ve kterém chcete otestovat a spustit ukázkový kód Terraformu a nastavit ho jako aktuální adresář.

  2. Vytvořte soubor s názvem main.tfa 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
      }
    }
    
  3. Vytvořte soubor s názvem outputs.tfa 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
    }
    
  4. Vytvořte soubor s názvem providers.tfa 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 {}
    }
    
  5. Vytvořte soubor s názvem variables.tfa 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."
    }
    

Inicializace Terraformu

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.

Vytvoření plánu provádění Terraformu

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.

Použití plánu provádění Terraformu

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 spustili terraform 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 , zavolejte terraform apply bez parametrů.

Ověření výsledků

  1. Získejte název skupiny prostředků Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Získejte název hostitele služby Azure Bastion.

    bastion_host_name=$(terraform output -raw bastion_host_name)
    
  3. Získejte IP adresu hostitele služby Azure Bastion.

    bastion_host_ip=$(terraform output -raw bastion_host_ip)
    
  4. 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
    

Vyčištění prostředků

Pokud už prostředky vytvořené přes Terraform nepotřebujete, proveďte následující kroky:

  1. 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.
  2. Spuštění terraformu platí pro použití plánu provádění.

    terraform apply main.destroy.tfplan
    

Řešení potíží s Terraformem v Azure

Řešení běžných problémů při používání Terraformu v Azure

Další kroky

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.