iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
DevOps

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

Day 18 — Terraform/GCP基礎 — 連結 Terraform 與 GCP:使用者帳號與密碼

  • 分享至 

  • xImage
  •  

文章目標:解釋如何透過使用者帳號和密碼將 Terraform 連接到 GCP。

Day 18 — Terraform/GCP基礎 — 連結 Terraform 與 GCP:使用者帳號與密碼

文章同步分享到

1. 連結Terraform與gcp的使用方法,使用者帳號與密碼(user/password)連結

安裝gcloud cli

  1. 安裝gcloud cli (官網連結)(說明連結

  2. 按照電腦的作業系統,進行安裝

  3. 輸入gcloud version,確認完成安裝

  4. 輸入gcloud init,設定對應專案

使用gcloud認證

  1. 開啟終端機terminal

  2. 輸入 gcloud auth application-default login ,並用瀏覽器登入

  3. 使用你的gmail做登入,獲得權限

  4. 記得創建一個專案,使用terraform101作為專案名稱

使用者帳號與密碼(user/password)連結

2. 實際操作

任務目標

  1. 安裝gcloud cli

  2. 完成使用者認證 gcloud auth application-default login

  3. 使用terraform在本地端測試

下面需要根據你的OS做不同的選擇,來安裝對應的gcloud cli

Mac gcloud cli安裝

指令碼可以直接複製使用,也可以到github連結下載安裝script。

  • brew install python@3.9:這個步驟是為了安裝Python 3,並且建議下載3.5至3.9之間的任一版本,以便後續的gcloud SDK可以正確運作。

  • brew install — cask google-cloud-sdk:這個命令使用Homebrew工具安裝Google Cloud SDK,這是一種簡單且推薦的安裝方法。

  • ./google-cloud-sdk/install.sh:這個選項是手動下載Google Cloud SDK的壓縮檔,然後執行安裝腳本。

#######################################################
# 0. python3 安裝 (建議使用方法)
#######################################################
# 下載python3.5-3.9的版本,執行安裝
# gcloud sdk 限定python的版本
brew install python@3.9

#######################################################
# 1. brew 安裝 (建議使用方法)
#######################################################
brew install --cask google-cloud-sdk

#######################################################
# 2. 或使用下載後安裝 (1或2挑選一種方式即可)
#######################################################
# https://cloud.google.com/sdk/docs/install-sdk
# 先到上面的網站,下載安裝對應的壓縮檔案
./google-cloud-sdk/install.sh

gcloud-install-mac.sh

Linux gcloud cli安裝

指令碼可以直接複製使用,也可以到github連結下載安裝script。

sudo apt-get update -y
sudo apt install -y wget software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt-get update -y
sudo apt install -y python3.9
python3.9 -V
  • 安裝Python 3:這個步驟是為了在Ubuntu上安裝Python 3,建議下載3.5至3.9之間的任一版本,以滿足gcloud SDK的特定要求。
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-427.0.0-linux-x86_64.tar.gz
tar -xf google-cloud-cli-427.0.0-linux-x86.tar.gz
./google-cloud-sdk/install.sh
  • install.sh 安裝檔案:這是建議的Linux安裝方式,你需要根據官方提供的文檔選擇適用於你的Linux版本的安裝文件,然後執行相應的安裝命令。這是一種建議的方法,因為它基於官方文檔,確保了正確的安裝流程。
#######################################################
# 0. python3 安裝 (建議使用方法)
#######################################################
# 下載python3.5-3.9的版本,執行安裝
# gcloud sdk 限定python的版本
# 此處以 ubuntu為例
sudo apt-get update -y
sudo apt install -y wget software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt-get update -y
sudo apt install -y python3.9
python3.9 -V
#######################################################
# 1. Linux 安裝 (建議使用方法)
#######################################################
# 建議根據官方文件,挑選對應的Linux版本說明文件來進行安裝
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-427.0.0-linux-x86_64.tar.gz
tar -xf google-cloud-cli-427.0.0-linux-x86.tar.gz
./google-cloud-sdk/install.sh

gcloud-install-linux.sh

Window gcloud cli安裝

指令碼可以直接複製使用,也可以到github連結下載安裝script。

python官網下載適合的Python版本:這個步驟建議下載並安裝Python 3.5至3.9之間的版本,以滿足gcloud SDK對特定Python版本的要求。您可以通過訪問https://www.python.org/downloads/網站來下載適用的Python版本。

(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
& $env:Temp\GoogleCloudSDKInstaller.exe
  • PowerShell 安裝 (建議使用方法):打開使用PowerShell來下載並安裝Google Cloud SDK。透過執行上述PowerShell命令,您可以自動下載和安裝SDK,這是比較方便的方式。
#######################################################
# 0. python3 安裝 (建議使用方法)
#######################################################
# 下載python3.5-3.9的版本,執行安裝
# gcloud sdk 限定python的版本
https://www.python.org/downloads/

#######################################################
# 1. powershell 安裝 (建議使用方法)
#######################################################
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
& $env:Temp\GoogleCloudSDKInstaller.exe

gcloud-install-win.ps1

gcloud cli安裝確認

在終端機中輸入 gcloud version,可以在螢幕中出現下列版本的提示,就代表我們正確的安裝完成。

gcloud version

gcloud 確認安裝成功

gcloud version 確認

gcloud init 設定對應專案

接下來我們需要初始化和設定Google Cloud帳戶和專案,可以參考官方連結來做後續設定。

gcloud init 設定對應專案

以下是設定對應專案的步驟:

  1. 開啟終端機或命令提示字元,輸入以下命令以啟動初始化過程:gcloud init

  2. 首次運行此命令時,您需要進行身份驗證。系統將打開瀏覽器視窗,請您登入Google帳戶,然後授予Google Cloud SDK訪問您的帳戶的權限。

  3. 登入後,您將被要求選擇要使用的Google Cloud專案。請選擇您要使用的專案與選擇用於初始化的預設區域和區域,在這邊我們使用創建得專案 terraform101–384507,不指定初始化的預設區域和區域。

  4. 最後,您可以選擇是否要使用Google Cloud SDK的Google Cloud Source Repositories集成,以及是否要設定帳單帳戶(用於專案的計費)。

完成上述步驟後,您的Google Cloud SDK將配置為使用所選擇的專案和設定,使您能夠輕鬆地使用Google Cloud服務。

gcloud init 設定專案與configuration

gcloud init 設定初始化區域

最後可以使用 gcloud auth list 與gcloud config list,來確認設定檔案是否有誤,同時檢查是否使用到正確的設定檔案。

3. 使用gcloud認證

  1. 開啟終端機 terminal

  2. 輸入 gcloud auth application-default login ,並用瀏覽器登入

  3. 使用你的gmail做登入,就可以獲得權限

  4. 記得創建一個專案,使用terraform101作為專案名稱

gcloud auth application-default login

gcloud auth application-default login

gmail 登入認證

gcloud auth application-default login 認證成功

4. 範例程式碼:利用gcloud認證的本地電腦產生一個GCS存儲服務

進入vscode 編輯器後,新建或開啟main.tf的檔案,並複製下列程式碼到視窗中,我們要利用這些程式碼練習,可以先輸入練習後,再來回來看代表的意義。

可以到下方的github連結中,下載對應的參考程式碼

  1. Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code

  2. Day 18 — Terraform/GCP基礎 — 連結 Terraform 與 GCP:使用者帳號與密碼

首先創建一個檔案 main.tf,我們會在裡面創建GCS作為權限驗證與後續的部署Demo。

main.tf

provider "google" {
project = "<your gcp project>"
region  = "asia-east1"
}

resource "google_storage_bucket" "quick-start-gcs" {
name          = "quick-start-gcs-bucket"
location      = "asia-east1"
force_destroy = true
}

provider google區塊主要用於配置 Terraform 的提供者(provider),以確保 Terraform 可以正確地與 Google Cloud Platform(GCP)進行交互。

  • provider "google" :這個區塊指定了要使用的 GCP 提供,指定了 GCP 專案 ID(由 var. GCP_PROJECT 變數提供)。

google_storage_bucket 區塊的用途是定義和配置一個 Google Cloud Storage 存儲資源(Google Storage Bucket):

  • name:terraform-101-state-bucket 是這個資源的名稱,用於在 Terraform 配置中識別和引用這個存儲資源實例。。

  • location:通過變數 var.location,你可以指定存儲資源的位置,這表示存儲資源存放的地理位置。

  • force_destroy:表示當你刪除 Terraform 資源時,即使存儲資源中有數據,也將強制刪除存儲資源。。

最後執行 terraform apply -auto-approve來部署對應的資源到雲端架構上,就可以得到下列的結果。

terraform apply -auto-approve

本地電腦擁有權限,去GCP產生一個GCS存儲服務

成功創建 Google Cloud Storage 存儲資源

Terraform tip:可以利用下列的 Terraform tip,來增進部署效率。

  1. 打開終端機中的 .bashrc or .zshrc 檔案

  2. 在文件最下方加入下列指令

  3. 執行 source ~/.zshrc 或是 source ~/.bashrc 讓下面的 alias 快捷鍵生效

alias tf="terraform"
alias tfv="terraform validate"
alias tfdp="terraform apply -auto-approve plan.out"
alias tfd="terraform apply -auto-approve"
alias tfr="terraform destroy -auto-approve"
alias tfp="terraform plan -out plan.out"

5. 總結 Summary

  1. 安裝 GCP Command Line Interface (CLI):根據你的作業系統,安裝 GCP CLI(gcloud),確認安裝完成,並使用 gcloud init 設定專案設定檔案。

  2. 使用 GCP 認證:在終端機中執行 gcloud auth application-default login,並使用你的 Gmail 帳號登入,獲取權限。可以創建一個新的專案,並使用 terraform101 作為專案名稱。

  3. 實際操作:創建一個名為 quick-start-gcs-bucket 的 Google Cloud Storage 存儲桶。使用本機 Terraform 設定好的 GCP 提供者和資源,最後執行 terraform apply -auto-approve 部署資源。

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


上一篇
Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 (Service Account)
下一篇
Day 19 — Terraform/GCP基礎 — 建議的 Terraform 開發最佳實踐
系列文
Terraform 從零開始 - 實戰Lab打造GCP雲端自動化架構31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言