Atlantis 是一個用於與 Git 整合進行 Terraform Plan 和 Apply 結果審查的工具。它有助於團隊更好地管理基礎設施即代碼(IaC)的變更,並提供了一種協作方式來審查和自動化 Terraform 工作流程。
以下是在 Linix 環境上安裝和配置 Atlantis 的基本步驟:
Go
: Atlantis 是用 Go 編寫的,因此需要先安裝 Go。您可以使用以下命令安裝 Go(這是 Go 1.13 的示例,您可以根據需要選擇更高版本):sudo apt-get update
sudo apt-get install -y golang-1.13-go
echo 'export PATH=$PATH:/usr/lib/go-1.13/bin' >> ~/.bashrc
source ~/.bashrc
mkdir -p ~/go/bin
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GOBIN=$GOPATH/bin' >> ~/.bashrc
echo 'export PATH=$PATH:$GOBIN' >> ~/.bashrc
source ~/.bashrc
go get -u github.com/runatlantis/atlantis
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
$ atlantis server
Atlantis 服務器將監聽配置的端口並等待來自 Git Webhook 的請求。
在 Git Reposity 中新謅 Atlantis Comment: 當您的專案中有 Terraform 程式碼變更時,通過提交或合並請求觸發 Webhook,從而啟動 Atlantis 工作流程。它將執行 Terraform Plan,並將結果以 Comment 方式新增到提交或合並請求中,提供供團隊審查和討論。
審查和合並: 團隊成員可以在提交或合並請求中查看 Terraform Plan 的結果,並進行必要的審查。一旦確認無誤,可以通過 Atlantis 執行 Terraform Apply 來應用變更。
這些步驟提供了一個基本的 Atlantis 安裝和配置示例。具體的配置和使用方法可能會根據您的項目、團隊和要求而有所不同。請查看 Atlantis 的官方文檔和您使用的 Git 托管平台的文檔,以獲取更詳細的信息和定制配置。