iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
DevOps

Terraform 從零開始 - 實戰Lab打造GCP雲端自動化架構系列 第 8

Day 8— Terraform基礎 — Provider version 的概念與使用

  • 分享至 

  • xImage
  •  

文章目標:說明 Terraform Provider 版本的重要性,以及如何正確使用各種 Provider。

Day 8 — Terraform基礎 — Provider version 的概念與使用

文章同步分享到

Provider version 的概念與使用

Providers(供應商)

Providers(供應商):Terraform 支援各種不同的基礎架構供應商,如 Amazon Web Services、Microsoft Azure、Google Cloud Platform 等等。

Terraform Providers(供應商)

Version (版本)

  1. 確保 Terraform 與雲服務供應商 API 的兼容性:使用者可以在定義 Terraform 的配置文件時,指定所需的 provider 與版本。

  2. 確保指定 provider 的版本**:最佳實做方式**,確保 Terraform 代碼在與雲服務供應商進行交互時能夠正確地工作,同時也可以避免在升級 provider 時造成的不相容問題。

  3. 指定版本的規則:

  • 嚴格等於(exact match):指定一個確切的版本號,例如 “3.14.0”。
  • 最小版本(minimum version):指定一個最小的版本號,例如 “>= 3.0.0”
  • 指定版本範圍(version range):可以使用比較符號(如 >、>=、<、<=)來指定版本範圍,例如 “>= 3.0.0, < 4.0.0”。
  • 通配符(wildcard):使用 作為通配符,例如 “3.”。
  • 任何版本(any version):可以使用 “any” 來指定使用任何版本,例如 “any”。

Provider version 的詳細規則

指定版本的規則

指定版本的規則 1/2

指定版本的規則 2/2

  1. 嚴格等於(exact match): 在這個例子中,Terraform 要求使用 Google 提供者的版本必須精確為 “3.19.0”。如果提供者版本不是 “3.19.0”,則 Terraform 不會接受它。

  2. 最小版本(minimum version): 這個規則指定 Google 提供者的版本必須是 “0.11.0” 或更高版本。你可以使用這個規則,確保你的 Terraform 配置至少使用了指定的最低版本,以確保向後兼容性。

  3. 指定版本範圍(version range): 在這個例子中,Terraform 規定 Google 提供者的版本必須大於或等於 “3.5.0”,但小於 “4.0.0”。這允許你在指定的版本範圍內使用提供者,通常用於確保功能的穩定性,但同時允許小型升級。

  4. 通配符(wildcard): 使用 “3.*” 這樣的版本號,Terraform 允許使用 Google 提供者的任何 “3.x.x” 版本,其中 “x” 可以是任何數字。這允許你使用指定主版本的所有次版本,這在保持功能兼容性的同時提供了彈性。

  5. 任何版本(any version): 如果你設置提供者版本為 “any”,則 Terraform 將接受任何版本的 Google 提供者。這種情況下,Terraform 不會強制要求特定版本,而是使用最新可用的版本,可能會導致功能或相容性的變化。

# 嚴格等於(exact match)

    provider "google" {
     version = "3.19.0"
     region  = "us-west-2"
    }

# 最小版本(minimum version)

    provider "google" {
     version = ">= 0.11.0"
     region  = "us-west-2"
    }

# 指定版本範圍(version range)

    provider "google" {
     version = ">= 3.5.0, < 4.0.0"
     region  = "us-west-2"
    }

# 通配符(wildcard)

    provider "google" {
     version = "3.*"
     region  = "us-west-2"
    }

# 任何版本(any version)

    provider "google" {
     version = "any"
     region  = "us-west-2"
    }

推薦方式 Provider: GCP / Version: >= 4.40.0

推薦方式 Provider: GCP / Version: &gt;= 4.40.0

  1. Terraform 版本要求:required_version = ">=1.0" ,這表示你的 Terraform 環境必須是 1.0 版本或更高版本。這確保你使用了較新的 Terraform 版本,以確保功能和安全性。

  2. Google Provider 版本規則:required_providers { google = { source = "hashicorp/google" version = ">= 4.40.0" } },這表示你的 Terraform 配置需要使用 Google 提供者的版本 4.40.0 或更高版本。這可以確保你的 Terraform 配置在使用 Google Cloud 服務時擁有所需的功能和相容性。

# 推薦方式 Provider: GCP / Version: >= 4.40.0

terraform {
  required_version = ">=1.0"

  required_providers {
    google = {
      source  = "hashicorp/google"
      version = ">= 4.40.0"
    }
  }
}

總結 Summary

  1. Terraform 提供者(Providers):是用於與不同基礎架構供應商(如 AWS、Azure、GCP 等)互動的關鍵組件。

  2. Terraform 指定所需的提供者版本(version):以確保 Terraform 配置在與雲服務供應商進行交互時能夠正確地工作,同時避免升級提供者時可能導致的不相容性問題。

  3. Terraform指定提供者版本的規則:

  • 嚴格等於(exact match):精確指定一個版本號。
  • 最小版本(minimum version):指定最低的版本號。
  • 指定版本範圍(version range):使用比較符號指定版本範圍。
  • 通配符(wildcard):使用通配符來匹配多個次版本。
  • 任何版本(any version):接受任何版本。
  1. Terraform 最佳實踐:確保 Terraform 配置使用特定版本的提供者,以確保功能的穩定性和相容性。

相關連結

  1. Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Codehttps://github.com/qwedsazxc78/Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code

  2. Terraform-project-best-practicehttps://github.com/qwedsazxc78/terraform-project-best-practice

  3. 歡迎訂閱我的udemy課程:Terraform 從零開始 - 10+實戰Lab打造GCP雲端自動化架構課程 - https://devops-with-alex.com/go/terraform


上一篇
Day 7— Terraform基礎 —效率提升:使用 bash alias
下一篇
Day 9— Terraform基礎 — 資源 (Resources) 的概念與使用
系列文
Terraform 從零開始 - 實戰Lab打造GCP雲端自動化架構31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言