使用下列 Terraform 和 Terraform 提供者版本進行測試的文章:
Terraform 允許對雲端基礎結構進行定義、預覽和部署。 使用 Terraform,您可以使用 HCL 語法建立組態檔。 HCL 語法可讓您指定雲端提供者,例如 Azure,以及構成雲端基礎結構的專案。 建立組態檔之後,您會建立一個 執行計劃 ,讓您在部署基礎結構變更之前先預覽這些變更。 驗證變更之後,您會套用執行計劃來部署基礎結構。
Azure 提供多個記憶體解決方案,可讓您用來儲存 FSLogix 配置檔容器。 本文涵蓋使用 Terraform 設定 Azure 虛擬桌面 FSLogix 使用者設定檔容器的 Azure Files 儲存解決方案。 本文說明如何使用 Terraform 建立 Log Analytics 工作區。
在本文中,您將學會如何:
- 使用 Terraform 設定 Azure Log Analytics 工作區
1.設定您的環境
- Azure 訂用帳戶:如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
設定 Terraform:如果您尚未這麼做,請使用下列其中一個選項來設定 Terraform:
2.實作 Terraform 程式代碼
建立目錄,然後在目錄中測試範例 Terraform 程式碼,並將其設為目前的目錄。
建立名為
providers.tf
的檔案,並插入下列程序代碼:terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>2.0" } azuread = { source = "hashicorp/azuread" } } } provider "azurerm" { features {} }
建立名為
main.tf
的檔案,並插入下列程序代碼:resource "azurerm_resource_group" "log" { name = var.rg_shared_name location = var.deploy_location } # Creates Log Anaylytics Workspace # https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/log_analytics_workspace resource "azurerm_log_analytics_workspace" "law" { name = "log${random_string.random.id}" location = azurerm_resource_group.log.location resource_group_name = azurerm_resource_group.log.name sku = "PerGB2018" retention_in_days = 30 }
建立名為
variables.tf
的檔案,並插入下列程序代碼:
variable "deploy_location" {
type = string
default = "eastus"
description = "The Azure Region in which all resources in this example should be created."
}
variable "rg_shared_name" {
type = string
default = "rg-shared-resources"
description = "Name of the Resource group in which to deploy shared resources"
}
- 建立名為
output.tf
的檔案,並插入下列程序代碼:
output "location" {
description = "The Azure region"
value = azurerm_resource_group.log.location
}
output "log_analytics" {
description = "Log Analytics Workspace"
value = azurerm_log_analytics_workspace.law.name
}
4. 初始化 Terraform
執行 terraform init 來初始化 Terraform 部署。 此命令會下載管理 Azure 資源所需的 Azure 提供者。
terraform init -upgrade
重點:
-
-upgrade
參數會將必要的提供者外掛程式升級至符合組態版本條件約束的最新版本。
5. 建立 Terraform 執行計劃
執行 terraform 計劃 以建立執行計劃。
terraform plan -out main.tfplan
重點:
-
terraform plan
命令會建立執行計劃,但不會執行它。 然而,它會決定哪些動作是必要的,以建立您組態檔中所指定的設定。 此模式可讓您在對實際資源進行任何變更之前,先確認執行計劃是否符合您的預期。 - 選擇性
-out
參數可讓您指定計劃的輸出檔。 使用-out
參數可確保您查看的計劃確切地被套用。
6.套用 Terraform 執行計劃
執行terraform apply指令將執行計劃套用至您的雲端基礎設施。
terraform apply main.tfplan
重點:
- 範例
terraform apply
命令假設您先前已執行terraform plan -out main.tfplan
。 - 如果您為
-out
參數指定了不同的檔案名,請在呼叫terraform apply
時使用相同的檔案名。 - 如果您未使用
-out
參數,請呼叫沒有任何參數的terraform apply
。
7.清除資源
當您不再需要透過 Terraform 建立的資源時,請執行下列步驟:
執行 terraform 計劃 並指定
destroy
旗標。terraform plan -destroy -out main.destroy.tfplan
重點:
-
terraform plan
命令會建立執行計劃,但不會執行它。 然而,它會決定哪些動作是必要的,以建立您組態檔中所指定的設定。 此模式可讓您在對實際資源進行任何變更之前,先確認執行計劃是否符合您的預期。 - 選擇性
-out
參數可讓您指定計劃的輸出檔。 使用-out
參數可確保您查看的計劃確切地被套用。
-
執行 terraform apply 來應用執行計劃。
terraform apply main.destroy.tfplan
排除 Azure 上 Terraform 的故障
針對在 Azure 上使用 Terraform 時的常見問題進行疑難解答