Konfigurace clusteru virtuálních počítačů Azure s využitím Terraformu
Tento článek ukazuje příklad kódu Terraformu pro vytvoření clusteru virtuálního počítače v Azure.
V tomto článku získáte informace o těchto tématech:
- Konfigurace clusteru virtuálních počítače Azure
1. Konfigurace prostředí
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Konfigurace Terraformu: Pokud jste to ještě neudělali, nakonfigurujte Terraform pomocí jedné z následujících možností:
2. Implementace kódu
Vytvořte adresář, ve kterém chcete otestovat ukázkový kód Terraformu, a napište ho jako aktuální adresář.
Vytvořte soubor s názvem a
main.tfvložte následující kód:module "windowsservers" { source = "Azure/compute/azurerm" resource_group_name = azurerm_resource_group.rg.name is_windows_image = true vm_hostname = "mywinvm" // Line can be removed if only one VM module per resource group admin_password = "ComplxP@ssw0rd!" // See note following code about storing passwords in config files vm_os_simple = "WindowsServer" public_ip_dns = ["winsimplevmips"] // Change to a unique name per data center region vnet_subnet_id = module.network.vnet_subnets[0] depends_on = [azurerm_resource_group.rg] } module "network" { source = "Azure/network/azurerm" resource_group_name = azurerm_resource_group.rg.name subnet_prefixes = ["10.0.1.0/24"] subnet_names = ["subnet1"] depends_on = [azurerm_resource_group.rg] } output "windows_vm_public_name" { value = module.windowsservers.public_ip_dns_name } output "vm_public_ip" { value = module.windowsservers.public_ip_address } output "vm_private_ips" { value = module.windowsservers.network_interface_private_ip }Klíčové body:
- V předchozím příkladu kódu je proměnné pro zjednodušení přiřazena
admin_passwordliterálová hodnota. Existuje mnoho způsobů, jak ukládat citlivá data, jako jsou hesla. Rozhodnutí o tom, jak chcete chránit data, vychází z individuálních rozhodnutí týkajících se konkrétního prostředí a úrovně komfortu, které tato data vystavují. Příkladem rizika může být, že uložení takového souboru do správy zdrojového kódu může vést k tomu, že heslo uvidí jiní uživatelé. Další informace o tomto tématu společnost HashiCorp zdokumentuje různými způsoby deklarace vstupních proměnných a technik pro správu citlivých dat (například hesel).
- V předchozím příkladu kódu je proměnné pro zjednodušení přiřazena
3. Inicializace Terraformu
Spuštěním terraform init init inicializovali nasazení Terraformu.
terraform init
Klíčové body:
- Tento příkaz stáhne moduly Azure potřebné k vytvoření skupiny prostředků Azure.
4. Vytvoření plánu provádění Terraformu
Spusťte příkaz terraform plan a vytvořte plán spuštění.
terraform plan -out main.tfplan
Klíčové body:
- Příkaz
terraform planvytvoří plán spuštění, ale nes jeho provedení. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje před provedením jakýchkoli změn skutečných prostředků ověřit, jestli plán provádění odpovídá vašim očekáváním. - Volitelný
-outparametr umožňuje zadat výstupní soubor pro plán. Použitím parametru zajistíte, že se právě použije plán, který-outjste si prohlédněte. - Další informace o zachování plánů provádění a zabezpečení najdete v části s upozorněním zabezpečení.
5. Použití plánu provádění Terraformu
Spuštěním příkazu terraform apply aplikujte plán spuštění na cloudovou infrastrukturu.
terraform apply main.tfplan
Klíčové body:
- Výše
terraform applyuvedený příkaz předpokládá, že jste předtím spustiliterraform plan -out main.tfplanpříkaz . - Pokud jste pro parametr zadali jiný název souboru, použijte stejný název souboru
-outve volání metodyterraform apply. - Pokud jste parametr
-outnepou3/4ít, stačí volatterraform applybez parametrů.
Řešení potíží s Terraformem v Azure
Řešení běžných problémů při používání Terraformu v Azure