Alan's BLOG
  • archives
  • posts
  • tags
  • about
  • quote
  • search
Home » Tags

terraform

實現 CloudFlare DNS 解析:使用 Terraform 和 GCS 進行高效配置

👨‍💻 簡介 之前透過 Terraform 建立 GCP Global IP,延續上一篇的文,我們要把 Global IP 在 CloudFlare 上做 DNS 解析綁定,使我們一般在瀏覽網頁時能夠輸入網址進行訪問。 🛠️ 使用工具 Terraform CloudFlare GCS 📝 功能需求 研究 Terraform 建立 CloudFlare DNS 解析 取得 GCS 上的 Terraform state file 並透過 terraform 建立 CloudFlare DNS 解析 模組化 🎯Setup 1. 研究 Terraform 建立 CloudFlare DNS 解析 查看 terraform cloudflare_record 官方文件 可以看到與 dns 的相關設定會使用這個 resource。 而要操作 CloudFlare 必須取得要調整的 Website zone id 與操作者的 api token 接下來開始撰寫 terraform 代碼 resource "cloudflare_record" "example" { zone_id = "your_zone_id" name = "terraform" type = "A" comment = "Managed by Terraform" value = "192....

2024-04-23 · 3 min · 517 words · Alan

使用 Terraform 在 GCP 上建立 Cloud Armor

👨‍💻 簡介 本文說明如何在 Google Cloud Platform (GCP) 上使用 Terraform 配置 Google Cloud Armor 安全策略。 前提條件 Google Cloud Platform (GCP) 帳號:確保有一個有效的 GCP 帳號。 安裝 Terraform:還沒安裝可以參考 Terraform 安裝指南。 基礎 Terraform 知識:熟悉基本的 Terraform 命令和概念,如果需要,可參考Terraform 入門指南 。 🎯 設定 步驟 1:建立 provider.tf 定義 GCP 提供者和所需的 Terraform 版本。 terraform { required_providers { google = { source = "hashicorp/google" version = "5.7.0" } } } provider "google" { project = "your-project-id" region = "asia-east1" } 步驟 2:建立 main....

2023-12-09 · 3 min · 516 words · Alan

使用 Terraform 在 GCP 上建立外部和內部的全球 IP 地址

👨‍💻簡介 這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部與內部的全球 IP 。 前提條件 Google Cloud Platform (GCP) 帳號: 確保有一個有效的 GCP 帳號。 安裝Terraform: 還沒安裝可以參考 Terraform 安裝指南 。 基礎 Terraform 知識: 瞭解基本的 Terraform 命令和概念,如果需要,可參考 Terraform 入門指南。 🎯setup 步驟 1:建立 provider.tf 定義GCP Provider 和所需的 Terraform 版本。 terraform { required_providers { google = { source = "hashicorp/google" version = "5.7.0" } } } provider "google" { project = "project-id" region = "asia-east1" } 步驟 2:建立 main.tf 在此檔案中定義全球 IP 地址資源。...

2023-11-28 · 3 min · 456 words · Alan

使用 Terraform 在 GCP 上建立外部和內部的區域 IP 地址

👨‍💻 簡介 這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部和內部的區域 IP 。 前提條件 Google Cloud Platform (GCP) 帳號: 確保有一個有效的 GCP 帳號。 安裝 Terraform: 還沒安裝可以參考 Terraform 安裝指南 。 基礎 Terraform 知識: 瞭解基本的 Terraform 命令和概念,如果需要,可參考 Terraform 入門指南。 🎯setup 1:建立 provider.tf 定義 GCP Provider 和所需的 Terraform 版本。 terraform { required_providers { google = { source = "hashicorp/google" version = "5.7.0" } } } provider "google" { project = "project-id" region = "asia-east1" } 2:建立 main....

2023-11-25 · 1 min · 182 words · Alan

如何在GCP以及AWS設定 remote backend 管理 terraform 狀態檔

👨‍💻簡介 terraform在每次執行terraform plan或terraform apply時,是如何知道應該要管理哪些資源? 其實就是透過在每次執行terraform時,將建立或要變更的資源都記錄在terraform.state這份狀態檔,預設檔案使用JSON格式。 假設建立一個google cloud storage的resource,tf設定檔如下: resource "google_storage_bucket" "bucket" { name = "terraform-alan-test-bucket" location = "ASIA-EAST1" storage_class = "STANDARD" public_access_prevention = "enforced" force_destroy = true uniform_bucket_level_access = true } 建立後的terraform.tfstate的一小部分如下: { "version": 4, "terraform_version": "1.5.7", "serial": 3, "lineage": "abda0fda-b807-b8b3-0a36-8b0c2f92e3f5", "outputs": {}, "resources": [ { "module": "module.base-bucket", "mode": "managed", "type": "google_storage_bucket", "name": "bucket", "provider": "module.base-bucket.provider[\"registry.terraform.io/hashicorp/google\"]", "instances": [ { "schema_version": 1, "attributes": { "autoclass": [], "cors": [], "custom_placement_config": [], "default_event_based_hold": false, "effective_labels": {}, "encryption": [], "force_destroy": true, "id": "terraform-alan-test-bucket", "labels": null, "lifecycle_rule": [], "location": "ASIA-EAST1", "logging": [], "name": "terraform-alan-test-bucket", } } ] } ] } 可以看到id的屬性,當每次執行plan或是apply時,terraform就是拿這個屬性從本地terraform設定檔與雲上資源做比對。...

2023-10-28 · 6 min · 1143 words · Alan

terraform-ansible

簡介👩‍💻 最近在研究terraform與ansible的整合,不過還在摸索中,機器的版控對於維運來講相對重要,這時候有terraform的出現,在建立機器後會隨之產生機器的狀態檔,而ansible則是在建立好機器後幫助我完成我所需的機器相關設定 這是一款terraform結合ansible的小玩具,在gcp環境下使用terraform幫我建置好機器,接著使用local exec執行ansible的playbook完成機器的設定 資料夾結構 ├───ansible-playbook │ ├───group_vars │ │ └───all │ ├───roles │ │ ├───instance │ │ │ └───tasks │ │ └───ops_agent │ │ └───tasks │ └───vars │ └───instance ├───modules │ └───main.tf │ └───variables.tf └───roles └───general └───general.tf ansible-playbook:放置ansible相關工具 modules:放置主要使用的resource以及定義好的變數 roles:放置自定義參數 使用指南 先建立gcp sa給terraform可以有建立vm的權限,接著可以下 terraform init -> 先讓terraform下載相關的repo terraform plan -> 查看terraform會做哪些事情,一開始都會先去檢查狀態檔,最上面代表動作,此範例為create,最下面的plan代表總共有4個resource會add terraform apply -> 建立機器指令,apply一樣會把plan的部分也顯示出來,並詢問是否要繼續,打上yes後便會開始建置機器 terraform destroy -> 機器建立完要刪除時下這指令,destroy一樣會去檢查狀態檔,這次的動作為destroy,最下面的plan顯示4個資源會被destroy terraform show -> 可以顯示當前terraform的狀態 🔗專案repo –> https://github.com/sz9751210/terraform-demo

2023-01-23 · 1 min · 67 words · Alan
© 2024 艾倫的程式之旅 Powered by Hugo & PaperMod