Terraform 匯入是 Terraform 工具包中的重要指令。它能讓使用者在 Terraform 管理下導入現有基礎架構,這對於將 Terraform 整合到現有環境而言至關重要,而不需要從頭開始重建基礎架構。
在本文章中,我們將深入探討 Terraform 進口、其重要性,以及如何有效運用它來自動化並提升基礎架構管理的一致性。
Terraform 匯入可讓您取得在 Terraform 之外建立的資源,並加以管理。此程序涉及將現有基礎架構資源對應至對應的 Terraform 配置。如此一來,Terraform 便可追蹤這些資源的狀態,包括其屬性和關係,並搭配 Terraform 程式碼中明確定義的資源來管理。
此程序提供各種優點,包括:
Terraform 匯入可讓您在 Terraform 管理下導入現有基礎架構,而不必重新建立資源。本簡短教學課程將引導您使用 Terraform 匯入來管理現有的 AWS EC2 執行個體。本指南結束後,您將了解如何將資源匯入 Terraform 並有效管理。
開始前,請確保您有以下幾點:
首先,為您的 Terraform 專案建立一個目錄,並瀏覽至其中。然後,建立一個名為 main.tf 的新檔案:
$ mkdir terraform-import-tutorial
$ cd terraform-import-tutorial
$ touch main.tf
在 main.tf 檔案中,定義您要匯入的供應商和資源。在本教學中,我們會使用 AWS EC2 執行個體。
provider "aws" {
region = "us-west-2"
}
resource "aws_instance" "example" {
# The configuration will be filled in after importing the instance.
}
在使用 Terraform 之前,請使用必要的外掛程式初始化您的工作目錄:
$ terraform init
找到您要匯入的 EC2 執行個體 ID。您可以在 AWS 管理主控台或使用 AWS CLI 找到。例如,假設實例 ID 為 i-1234567890abcdef0。
使用 terraform 匯入指令,將現有的 EC2 執行個體匯入 Terraform。在人機介面中執行以下指令:
$ terraform import aws_instance.example i-1234567890abcdef0
此命令讓 Terraform 將資源 aws_instance.example 與現有的 EC2 執行個體 i-1234567890abcdef0 建立關聯。
匯入後,Terraform 將使用匯入資源的相關資訊更新狀態檔案。然而,您的 main.tf 檔案仍不完整。若要填寫組態,請使用 terraform show 命令來檢查匯入的資源,並相應地更新 main.tf:
$ terraform show
您將看到匯入的資源詳細資料。更新 main.tf 以符合資源的實際配置。以下是其外觀的範例:
provider "aws" {
region = "us-west-2"
}
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0" # Replace with your instance's AMI ID
instance_type = "t2.micro" # Replace with your instance type
key_name = "my-key-pair" # Replace with your key pair name
# Additional attributes as per the `terraform show` output
}
現在您的配置檔案準確反映了匯入的資源,您可以使用 Terraform 進行管理。執行 terraform 計劃,查看計劃的行動:
$ terraform plan
如果一切看起來都不錯,請應用變更:
$ terraform apply
您現在可以使用 Terraform 管理匯入的資源。例如,您可以在 main.tf 中更新實例類型或其他屬性,並使用 terraform 套用變更。
雖然 Terraform 匯入提供了管理現有基礎架構的強大方法,但要記住一些關鍵考量因素:
遵循這些最佳作法可確保您有效管理匯入的資源,以及 Terraform 程式碼中所定義的資源:
Terraform 匯入彌補了現有基礎架構與 Terraform 管理能力之間的差距。它可讓您無縫整合整個基礎架構堆疊,不論建立方式為何。這種統一的方法可降低複雜性、提高能見度,並簡化基礎架構管理。
隨著基礎架構的發展,儲存系統成為關鍵考量。探索 Pure Storage 解決方案,如用於容器化工作負載的 Portworx®,以及用於雲端部署的 Pure Cloud Block Store,以優化與 Terraform 的儲存管理。這樣的組合可確保現代化應用程式的高效率、可擴充基礎架構。