建立 Megaport Terraform Provider 組態檔
本主題提供逐步指引,協助你準備 Megaport Terraform Provider 組態檔,內容根據 Megaport 解決方案架構師於客戶合作中歸納出的常見且有效的方法。
在開始之前,請先完成開始使用 Megaport Terraform Provider中所述的先決條件。
建立組態檔
完成網路設計後,你可以依照以下步驟建立可執行的 Terraform 組態檔以部署該設計。
若要建立組態檔
-
使用 Megaport 服務設計你的網路。
範例 Megaport Terraform Provider 組態檔可於 Megaport Terraform Provider GitHub repository 取得。
Megaport 亦提供常見多雲連線案例的說明。常見多雲連線案例的範例 Megaport Terraform Provider 組態檔可於 Megaport Terraform Provider GitHub examples page 找到。
-
識別 Megaport 已啟用位置的 ID。
資料中心位置名稱與站台代碼在 API 中有時可能變更。 為了讓 Megaport Terraform Provider 組態更可靠穩定,請使用位置 ID,而非名稱或代碼。如需最新的 Megaport 資料中心位置清單,請參閱Megaport 位置 ID。
亦可透過 GET /v3/locations Megaport API 取得位置 ID。
-
定義 Megaport Terraform Provider 環境。
管理 Terraform 目錄與組態檔(.tf 檔)有數種方式。 你需要決定最有效的方式來管理你的 Terraform 資源以符合需求。
以下範例示範如何有條理地保存 Terraform 組態檔。
-
建立一個目錄,用來存放一組 Terraform 組態檔,以管理特定的一組 Megaport 服務,例如 Port、MCR、VXC。
-
建立
provider.tf檔案,宣告 Megaport Terraform Provider 環境。備註
你也可以在
provider.tf檔案中定義其他 providers 的設定,例如 AWS、Azure 與 GCP。若需詳細資訊,請參閱 Build Infrastructure (HashiCorp)。 -
將
provider.tf檔案與其他 Terraform 組態檔儲存在相同目錄中。 以下範例顯示provider.tf檔案中包含與 Megaport Terraform Provider 相關的組態:terraform { required_providers { megaport = { source = "megaport/megaport" version = ">= 1.4.1" } } } provider "megaport" { environment = "staging" access_key = "access_key" secret_key = "secret_Key" accept_purchase_terms = true }備註
在設定 Megaport Terraform Provider 組態檔時,有幾個重要欄位與資訊需要定義。
- Version – Megaport 會針對 Terraform 最近兩個主要版本進行測試。你可以在 Megaport Terraform Provider Registry documentation 找到最新版本資訊。 我們強烈建議你將
provider.tf檔案中的版本號碼維持為最新。 - Environment – 定義你使用 Terraform 部署服務所處的環境。例如,若設為
staging,則會在 https://portal-staging.megaport.com/ 環境中建立服務。當你完成在測試環境的驗證,並要開始在生產環境部署服務時,將此值設為production。如需詳細資訊,請參閱環境。 - API key – 在使用 Megaport Terraform Provider 之前,你需要先建立 API 金鑰。API 金鑰由
access_key與secret_key組成。 API 金鑰僅在其建立的環境中有效。若你需要存取不同環境的 API 金鑰,請登入該環境的 Megaport Portal 並在該處建立 API 金鑰。欲知詳細資訊,請參閱建立 API 金鑰。 - Accept purchase terms – 使用 Terraform 訂購 Megaport 服務前,你必須接受購買條款。這將允許在生產環境中產生可計費事件,也就是在生產環境中建立並部署 Megaport 服務而產生費用。
- Version – Megaport 會針對 Terraform 最近兩個主要版本進行測試。你可以在 Megaport Terraform Provider Registry documentation 找到最新版本資訊。 我們強烈建議你將
-
-
建立宣告你基礎架構的
main.tf檔案。接著,將最接近你網路設計的範例組態複製到main.tf檔案中,並依需要進行修改。你可以在 Megaport Terraform Provider GitHub repository 找到範例組態。
以下範例示範用於訂購單一 Port 的 Megaport Terraform Provider 組態。
data "megaport_location" "location_1" { name = "NextDC B1" } resource "megaport_port" "port" { product_name = "Megaport Port Example" port_speed = 10000 location_id = 5 contract_term_months = 1 marketplace_visibility = false }部署 Terraform 時,會先執行
provider.tf。 接著,main.tf會與同一目錄中的其他 Terraform 組態檔一併自動執行。 -
若這是你首次使用 Terraform,請在你的目錄中執行
terraform init指令,以準備包含 Terraform 組態檔的工作目錄。此指令會執行多項設定作業,例如下載 Megaport Terraform Provider 與其他後端外掛,以便讓你的工作目錄可搭配 Terraform 使用。
要執行此指令,目錄中必須已存在 Terraform 組態檔。 可安全地多次執行此指令,以便讓工作目錄與組態變更保持一致並更新至最新狀態。
下圖顯示
terraform init指令輸出範例。
如需詳細資訊,請參閱 terraform init command (HashiCorp)。
後續步驟
準備好 Terraform 組態檔後,你可以先在測試環境(staging)部署進行初步測試,再套用到生產環境。
如需詳細資訊,請參閱使用 Megaport Terraform Provider 建立與管理服務。
參考資料
- Build infrastructure (HashiCorp)
- Megaport Live: Tech Drop-in: APAC 2024/09/27 - Megaport Overview & Terraform Overview
- Megaport Terraform Provider GitHub multicloud scenarios examples
- Megaport Terraform Provider GitHub repository
- Megaport Terraform Provider Registry documentation
- Provider Requirements (HashiCorp)
- terraform init command (HashiCorp)