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

更新於 發佈於 閱讀時間約 7 分鐘


raw-image

👨‍💻 簡介

這篇文章將會說明如何快速在 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 = ">=4.0"
}
}
}

provider "google" {
project = "project-id"
region = "asia-east1"
}

2:建立 main.tf

在此檔案中定義外部和內部 IP 地址資源。

  • External IP
resource "google_compute_address" "external_ip" {
name = "external-region-ip"
region = "asia-east1"
address_type = "EXTERNAL"
network_tier = "PREMIUM"
labels = {
"dept" = "devops",
"env" = "dev",
"type" = "external"
}
}
  • Internal IP
resource "google_compute_address" "internal_ip" {
name = "internal-region-ip"
region = "asia-east1"
address_type = "INTERNAL"
subnetwork = "default"
ip = "10.140.0.5"
labels = {
"dept" = "devops",
"env" = "dev",
"type" = "internal"
}
}

參數介紹

  • name:ip name
  • region:ip region
  • address_type:建立的網路類型,分為內網 (Internal) 以及外網 (External)
  • network_tier:使用的網路等級,僅限外網使用
  • ip:指定內網 IP
  • labels:使用的 label,有助於資源分類和管理。

3:初始化 Terraform

terraform init

4:執行 Dry Run

terraform plan

5:部署

terraform apply

🛠️模組化

1. 改寫main.tf

resource "google_compute_address" "internal_ip" {
name = var.name
region = var.region
address_type = var.address_type
subnetwork = var.subnetwork
address = var.address
labels = var.labels
}

2. 定義變數

觀察一下哪些欄位是經常替換的,將經常變更的欄位提取為變數以提高靈活性

variable "name" {
description = "The name of the resource"
type = string
}

variable "region" {
description = "The region of the resource"
type = string
}

variable "address_type" {
description = "The address type"
type = string
}

variable "subnetwork" {
description = "The subnetwork"
type = string
}

variable "address" {
description = "The IP address"
type = string
}

variable "labels" {
description = "The labels for the resource"
type = map(string)
}

3. 模組化

建立名為 compute_address的資料夾並建立一份 module.tf

module "google_compute_address" {
source = "../"

name = "internal-region-ip"
region = "asia-east1"
address_type = "EXTERNAL"
subnetwork = "default"
address = "10.140.0.5"
labels = {
"dept" = "devops",
"env" = "dev",
"type" = "internal"
}
}

source的部分會去套用到上一層的 main.tf裡,並使用定義好的變數

4. 部署

進入到compute_address 資料夾進行部署

資源刪除

部署完成後,如果需要清理資源,可執行:

terraform destroy

📚Reference

留言
avatar-img
留言分享你的想法!
avatar-img
Alan的開發者天地
18會員
83內容數
golang
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本文介紹如何在GCP上使用Terraform建立CloudFlare DNS解析和模組化。通過閱讀本文,可以瞭解如何設置Terraform建立CloudFlare DNS解析以及取得GCS上的Terraform state file並透過Terraform建立CloudFlare DNS解析的步驟。
Thumbnail
本文介紹如何在GCP上使用Terraform建立CloudFlare DNS解析和模組化。通過閱讀本文,可以瞭解如何設置Terraform建立CloudFlare DNS解析以及取得GCS上的Terraform state file並透過Terraform建立CloudFlare DNS解析的步驟。
Thumbnail
在 Google Cloud 上保留靜態 IP 位址但未使用時,會按小時收取費用。使用 Cloud Functions 和 Cloud Scheduler 來識別和清理浪費的雲端資源,可以自動化的減少浪費的發生
Thumbnail
在 Google Cloud 上保留靜態 IP 位址但未使用時,會按小時收取費用。使用 Cloud Functions 和 Cloud Scheduler 來識別和清理浪費的雲端資源,可以自動化的減少浪費的發生
Thumbnail
👨‍💻簡介 這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部與內部的全球 IP 。 前提條件 Google Cloud Platform (GCP) 帳號: 確保有一個有效的 GCP 帳號。 安裝Terraform: 還沒安裝可
Thumbnail
👨‍💻簡介 這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部與內部的全球 IP 。 前提條件 Google Cloud Platform (GCP) 帳號: 確保有一個有效的 GCP 帳號。 安裝Terraform: 還沒安裝可
Thumbnail
👨‍💻 簡介 這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部和內部的區域 IP 。
Thumbnail
👨‍💻 簡介 這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部和內部的區域 IP 。
Thumbnail
👨‍💻簡介 terraform在每次執行terraform plan或terraform apply時,是如何知道應該要管理哪些資源? 其實就是透過在每次執行terraform時,將建立或要變更的資源都記錄在terraform.state這份狀態檔,預設檔案使用JSON格式。
Thumbnail
👨‍💻簡介 terraform在每次執行terraform plan或terraform apply時,是如何知道應該要管理哪些資源? 其實就是透過在每次執行terraform時,將建立或要變更的資源都記錄在terraform.state這份狀態檔,預設檔案使用JSON格式。
Thumbnail
最近在研究terraform與ansible的整合,不過還在摸索中,機器的版控對於維運來講相對重要,這時候有terraform的出現,在建立機器後會隨之產生機器的狀態檔,而ansible則是在建立好機器後幫助我完成我所需的機器相關設定 這是一款terraform結合ansible的小玩具,在gcp環
Thumbnail
最近在研究terraform與ansible的整合,不過還在摸索中,機器的版控對於維運來講相對重要,這時候有terraform的出現,在建立機器後會隨之產生機器的狀態檔,而ansible則是在建立好機器後幫助我完成我所需的機器相關設定 這是一款terraform結合ansible的小玩具,在gcp環
Thumbnail
服務上雲後有時會需要固定一組IP主動對外發出連線,這時要考慮安全性與獨立性的問題,在爬文後發現了GCP推出的Cloud NAT,本篇文章簡單介紹一下這個工具的使用。 什麼是Cloud NAT GCP Cloud NAT是GCP上的一種服務,它提供了一個管理和部署Google Cloud上的NAT(N
Thumbnail
服務上雲後有時會需要固定一組IP主動對外發出連線,這時要考慮安全性與獨立性的問題,在爬文後發現了GCP推出的Cloud NAT,本篇文章簡單介紹一下這個工具的使用。 什麼是Cloud NAT GCP Cloud NAT是GCP上的一種服務,它提供了一個管理和部署Google Cloud上的NAT(N
Thumbnail
本篇將會記錄如何在GCP上建立的Ubuntu虛擬機,進行Wordpress的環境準備與網站安裝。 本篇將會以架式環境與安裝 WordPress 為主,虛擬機平台的註冊與架設將不會太過著重,未來若有機會再進行記錄。 首先需要準備的軟體有 有沒有比較好或是其他區別,在這邊不做討論。
Thumbnail
本篇將會記錄如何在GCP上建立的Ubuntu虛擬機,進行Wordpress的環境準備與網站安裝。 本篇將會以架式環境與安裝 WordPress 為主,虛擬機平台的註冊與架設將不會太過著重,未來若有機會再進行記錄。 首先需要準備的軟體有 有沒有比較好或是其他區別,在這邊不做討論。
Thumbnail
首先要先去Google Cloud Platform申請一個帳號,愉快的點下啟用
Thumbnail
首先要先去Google Cloud Platform申請一個帳號,愉快的點下啟用
Thumbnail
首先,使用GCP建立VM: Compute Engine -> VM執行個體 設定server配置: 區域, cpu, memory, 開機磁碟, 選擇作業系統, 防火牆等等。 接著編輯VM,設定固定外部IP: 因每當VM重啟,IP就會變動,因此要設定固定IP。 將外部IP從臨時改為建立I
Thumbnail
首先,使用GCP建立VM: Compute Engine -> VM執行個體 設定server配置: 區域, cpu, memory, 開機磁碟, 選擇作業系統, 防火牆等等。 接著編輯VM,設定固定外部IP: 因每當VM重啟,IP就會變動,因此要設定固定IP。 將外部IP從臨時改為建立I
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News