iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0

文章目標:解析 Terraform 的各個元件,以圖像方式展示其關聯性和作用。

Day 5 — Terraform基礎 — 掌握 Terraform 元件

文章同步分享到

1. 掌握 Terraform 元件,一張圖秒懂 Terraform

在一張圖秒懂 Terraform 中,首先點選位置連結下載這張秒懂 Terraform的圖片,我們會分別介紹4個最重要的 Terraform 核心概念。

  1. Terraform工作流 ( Workflow )

  2. Terraform 核心元件 (Core Component)

  3. Terraform 元件階層 ( Component Hierarchy )

  4. Terraform 元件 ( Component )

一張圖秒懂 Terraform的四個核心概念

一張圖秒懂 Terraform

2. Terraform工作流 ( Workflow ) 的概念

Workflow的實際執行位置:

在Terraform工作流中,分成兩個主要部分會在不同的地方執行。

  1. Terraform init / fmt / validate / plan :都會在本地電腦完成配置與撰寫

  2. Terraform apply / destroy :會在雲端/地端架構中實際執行。

Workflow的相關說明:

  1. Terraform init:初始化本地 Terraform 環境

  2. Terraform fmt / validate:格式化 Terraform 代碼與驗證 Terraform 代碼的語法與結構。

  3. Terraform plan:比較 Terraform 狀態和雲端中實際狀態,建立並顯示一個執行計畫,不會實際改變部署環境。

  4. Terraform apply:根據計畫執行實際的基礎架構創建或更改操作。

  5. Terraform destroy:刪除此特定 Terraform 環境所管理的所有資源。

Terraform工作流 ( Workflow )

3. Terraform 核心元件 (Core Component)的概念

  1. 安裝執行檔 (Executable):Terraform的執行檔,用來與基礎設施進行溝通與執行。

  2. 雲端架構套件 (Provider plugins):Terraform的基礎架構供應商套件,提供簡化基礎架構之後的元件,例如:AWS、GCP、Azure等。
    一般會使用下列的核心元件:Provider (供應商)、Module (模組)

  3. 元件配置檔 (Configuration File):Terraform的架構描述檔案,用來定義與描述想要控制的基礎架構,例如:指定虛擬機的數量、網路連線、資源設定等。
    一般會使用下列的核心元件:Resources(資源)、Variables(變數)、Data Sources(資料來源)、Outputs(輸出)

  4. 狀態檔案 (State Data):Terraform的狀態檔案,用來管理實際基礎設施的狀態和資源與程式碼之間的關係,例如:基礎架構的建立狀態、版本控制、資源的相依性等。
    一般會使用下列的核心元件:State(狀態)、Backend(遠端狀態後台)

Terraform 核心元件 (Core Component)的概念

Terraform 元件階層 ( Component Hierarchy )

了解Terraform 核心元件 (Core Component)的概念後,我們要利用這個元件階層圖來做更深入的說明,深入了解Terraform實際使用的元件關係。

  1. 藍色部分:與雲端供應商的元件與實際配置有關

  2. 紫色部分:主要是terraform的 HCL語言在撰寫時,實際會用到五種元件

  3. 綠色部分:將雲端元件抽象化,變成更加簡潔的自訂模組,並提供開發人員更高的彈性,產生模組 module

  4. 黃色部份:主要是記錄基礎架構,當前預期的狀態與實際狀況的差異

這些元件都有其特定的用途,我們會在後續的文章中詳細介紹它們的作用,並且透過實際的操作來讓使用者更容易了解其概念。

Terraform 元件階層 ( Component Hierarchy )

4. Terraform 元件 ( Component )

藍色部分-雲端供應商元件:與雲端供應商的元件與實際配置有關

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

Terraform 元件 ( Component ) — Providers(供應商)

紫色部分-基礎元件:主要是terraform的 HCL語言在撰寫時,實際會用到五種元件

  1. Provisioners(配置器):用於在資源創建後設置它們的狀態,例如安裝軟體或更新設定。

  2. Resources(資源):代表基礎架構中的一個單一元件,例如 GCP 的 GKE VM 實例、GCS 存儲桶等等。

  3. Variables(變數):用於設置 Terraform 模組的參數,例如指定 GCP 的 GKE VM 實例的類型和數量。

  4. Data Sources(資料來源):用於從現有的基礎架構中檢索資料,例如檢索現有的 GCP 實例列表。

  5. Outputs(輸出):用於顯示 Terraform 模組創建的基礎架構元件的屬性,例如顯示 GCP 實例的 IP 位址。

Terraform 元件 ( Component ) — 基礎元件

綠色部分-模組元件:將雲端元件抽象化,變成更加簡潔的自訂模組,並提供開發人員更高的彈性,產生模組 module

Modules(模組):可重複使用的 Terraform 代碼塊,可用於創建類似的基礎架構元件。

Terraform 元件 ( Component ) — Modules(模組)

黃色部分-狀態元件:主要是記錄基礎架構,當前預期的狀態與實際狀況的差異

  1. State(狀態):Terraform 記錄當前基礎架構的狀態,並在後續運行中與預期狀態進行比較,以確保基礎架構保持一致。

  2. Backend(遠端狀態後台):Terraform 存儲狀態的後端,狀態包含有關當前基礎架構狀態的信息,例如哪些資源正在運行、哪些資源已經被創建、哪些資源已經被刪除等。

黃色部分-狀態元件

5. 總結 Summary

我們分別介紹了4個最重要的 Terraform 核心概念

  1. Terraform工作流 ( Workflow ): 了解工作流中五個流程的各自定位,
    與 Terraform init / fmt / validate / plan / apply / destroy 指令各自代表的意義。

  2. Terraform 核心元件 (Core Component): 了解四種個流程的各自定位,
    與 Terraform init / fmt / validate / plan / apply / destroy 指令各自代表的意義。

  3. Terraform 元件階層 ( Component Hierarchy ): 元件階層用來理解terraform裡面所有不同元件的用途與階層。

  4. Terraform 元件 ( Component ): 各自元件的用途與使用方式。

6. 相關連結

  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

  4. 一張圖秒懂 Terraform連結下載


上一篇
Day 4 — Terraform基礎 — Terraform 簡介與安裝
下一篇
Day 6— Terraform基礎 —Terraform 工作流程
系列文
Terraform 從零開始 - 實戰Lab打造GCP雲端自動化架構31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言