當前位置: 妍妍網 > 碼農

什麽是Iac?什麽是terraform?兩者什麽關系

2024-10-14碼農

最近整理了kubernetes初學者文件,回復 獲取

基礎設施即程式碼 (IaC) 工具允許您使用配置檔而不是透過圖形化使用者介面來管理基礎設施。 IaC 允許您透過定義可版本化、重用和共享的資源配置,以安全、一致和可重復的方式構建、更改和管理您的基礎設施。

Terraform 是 HashiCorp 的基礎設施即程式碼工具。它允許您在人類可讀的聲明性配置檔中定義資源和基礎設施,並管理基礎設施的生命周期。與手動管理基礎設施相比,使用 Terraform 有幾個優點:

  • Terraform 可以管理多個雲平台上的基礎設施。

  • 人類可讀的配置語言可幫助您快速編寫基礎架構程式碼。

  • Terraform 的狀態允許您跟蹤整個部署過程中的資源變化。

  • 您可以將配置送出給版本控制,以便在基礎架構上安全地進行協作。

  • 管理任何基礎設施

    稱為提供程式的 Terraform 外掛程式讓 Terraform 透過其應用程式編程介面 (API) 與雲平台和其他服務進行互動。

    HashiCorp 和 Terraform 社群已經編寫了 1,000 多個提供程式來管理 Amazon Web Services (AWS)、Azure、Google Cloud Platform (GCP)、Kubernetes、Helm、GitHub、Splunk 和 aliyun 等上的資源。

    尋找您已在Terraform 登錄檔中使用的許多平台和服務的提供商。如果您找不到所需的提供程式,您可以編寫自己的提供程式。

    標準化您的部署工作流程

    提供商將基礎設施的各個單元(例如計算例項或專用網路)定義為資源。您可以將來自不同提供商的資源組合成可重用的 Terraform 配置(稱為模組),並使用一致的語言和工作流程來管理它們。

    Terraform 的配置語言是聲明性的,這意味著它描述了基礎設施所需的最終狀態,這與需要分步指令來執行任務的過程程式語言形成鮮明對比。 Terraform 提供程式會自動計算資源之間的依賴關系,以按照正確的順序建立或銷毀它們。

    使用 Terraform 部署基礎設施:

  • 範圍- 確定計畫的基礎設施。

  • 作者- 為您的基礎設施編寫配置。

  • 初始化- 安裝 Terraform 管理基礎設施所需的外掛程式。

  • 計劃- 預覽 Terraform 將做出的更改以匹配您的配置。

  • 套用- 進行計劃的更改。

  • 跟蹤您的基礎設施

    Terraform 在狀態檔中跟蹤您的真實基礎設施,該檔充當您的環境的事實來源。 Terraform 使用狀態檔來確定對基礎設施進行的更改,以便它與您的配置相匹配。

    合作

    Terraform 允許您透過其遠端狀態後端在基礎設施上進行協作。當您使用 HCP Terraform(最多 5 個使用者免費)時,您可以安全地與隊友共享您的狀態,為 Terraform 執行提供穩定的環境,並防止多人同時更改配置時出現競爭情況。

    您還可以將 HCP Terraform 連線到 GitHub、GitLab 等版本控制系統 (VCS),從而在您向 VCS 送出配置更改時自動提出基礎架構更改建議。這使您可以透過版本控制來管理基礎架構的更改,就像使用應用程式程式碼一樣。

    如下是一個透過terraform來部署docker的範例

    你需要提前安裝好terraform,centos系統可以參考如下步驟

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
    sudo yum -y install terraform

    主要涉及如下兩個配置檔,main.tf和terraform塊,它定義了您將在此計畫中使用的提供程式和 Terraform 版本。

    mian.tf內容如下:

    provider "docker" {}
    resource "docker_image""nginx" {
    name = "nginx:latest"
    keep_locally = false
    }
    resource "docker_container""nginx" {
    image = docker_image.nginx.image_id
    name = "tutorial"
    ports {
    internal = 80
    external = 8000
    }
    }

    初始化計畫,該計畫會下載一個名為提供程式的外掛程式,讓 Terraform 與 Docker 互動。

    terraform init

    terraform apply

    該命令Terraform 會打印出執行計劃,該計劃描述了 Terraform 將采取的操作,以便更改您的基礎設施以匹配配置。

    然後你可以透過如下命令來釋放資源

    terraform destroy

    如果你是阿裏雲的使用者,那麽也可以嘗試下直接透過terraform來新建資源,看起來更新還是蠻頻繁的。

    阿裏雲官網也有相關的文件

    最近整理了2023年最火的軟體神器,回復關鍵字 2023合集 獲取

    推薦閱讀 ⬇️ 都是高贊

    PS:求求啦! 在看 支持下吧!