iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
DevOps

大家都在用 Terraform 實作 IaC 為什麼不將程式寫得更簡潔易讀呢?系列 第 30

如何 Code Review for Terraform 執行計畫 by Atlantis

  • 分享至 

  • xImage
  •  

前言

Atlantis 是一個用於與 Git 整合進行 Terraform Plan 和 Apply 結果審查的工具。它有助於團隊更好地管理基礎設施即代碼(IaC)的變更,並提供了一種協作方式來審查和自動化 Terraform 工作流程。

安装 Atlantis

以下是在 Linix 環境上安裝和配置 Atlantis 的基本步驟:

  1. 安裝 Go: Atlantis 是用 Go 編寫的,因此需要先安裝 Go。您可以使用以下命令安裝 Go(這是 Go 1.13 的示例,您可以根據需要選擇更高版本):
sudo apt-get update
sudo apt-get install -y golang-1.13-go
  • 設定 Go 環境變數:
echo 'export PATH=$PATH:/usr/lib/go-1.13/bin' >> ~/.bashrc
source ~/.bashrc
  1. 設定 Go 工作空間: 設定 Go 工作空間以管理 Go 專案和相依性。預設情況下,Go 工作空間位於您的主目錄下的 go 文件夾中:
mkdir -p ~/go/bin
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GOBIN=$GOPATH/bin' >> ~/.bashrc
echo 'export PATH=$PATH:$GOBIN' >> ~/.bashrc
source ~/.bashrc
  1. 安装 Atlantis:
  • 使用以下命令来安装 Atlantis:
go get -u github.com/runatlantis/atlantis

  1. 設定 Atlantis
  • 建立 Atlantis 設定文件: 在您的 Terraform 專案中創建名為 atlantis.yaml 的設定文件。這個設定文件將指定 Atlantis 如何與您的 Git Repository 和 Terraform 程式碼進行交互。
  • 以下是一個範例 atlantis.yaml 文件的部分內容:
version: 3
# 當 Terraform Plan 通過審查後,Atlantis 是否應該自動執行 Terraform Apply。
automerge: true
#  Atlantis 是否在合併後刪除分支。如果設定為 true,則在成功合併後刪除分支。
delete_source_branch_on_merge: false
projects:
- name: dev
  # 指定 Terraform 程式碼所在的目錄路徑。
  dir: .
  terraform_version: v1.0.10
  apply_requirements: [mergeable, approved]
  delete_source_branch_on_merge: true
  autoplan:
    when_modified: ["**/*"]
    enabled: true
  workflow: ["plan", "apply"]

這個示例配置文件中,dir 指定了 Terraform 程式碼所在的目錄,workflow 定義了 Atlantis 將執行的操作。
5. 設定 Atlantis Webhook: 在您的 Git Repository 中配置一個 Webhook,當有新的 commit 或 merge request 時,Git 服務器能夠通知 Atlantis,具體配置步驟可能因您使用的 Git 平台而異,可以參考以下網頁說明。
Add Webhook

  1. 啟動 Atlantis 服務器: 在您的項目目錄中運行以下命令以啟動 Atlantis 服務器:
$ atlantis server

Atlantis 服務器將監聽配置的端口並等待來自 Git Webhook 的請求。

使用 Atlantis

  1. 在 Git Reposity 中新謅 Atlantis Comment: 當您的專案中有 Terraform 程式碼變更時,通過提交或合並請求觸發 Webhook,從而啟動 Atlantis 工作流程。它將執行 Terraform Plan,並將結果以 Comment 方式新增到提交或合並請求中,提供供團隊審查和討論。

  2. 審查和合並: 團隊成員可以在提交或合並請求中查看 Terraform Plan 的結果,並進行必要的審查。一旦確認無誤,可以通過 Atlantis 執行 Terraform Apply 來應用變更。

這些步驟提供了一個基本的 Atlantis 安裝和配置示例。具體的配置和使用方法可能會根據您的項目、團隊和要求而有所不同。請查看 Atlantis 的官方文檔和您使用的 Git 托管平台的文檔,以獲取更詳細的信息和定制配置。

這是15th鐵人賽最後一篇文章,希望這一系列文章讓大家在 DevOps 的領域上有所幫助

這30天文章提到模組的程式碼已經分享在我的 Github 上。


上一篇
實作 AWS 常用服務之 Terraform 之 Pre-commit 工具篇
系列文
大家都在用 Terraform 實作 IaC 為什麼不將程式寫得更簡潔易讀呢?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言