iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 12
0
Cloud Native

AWS高手同事離職後不止30天系列 第 12

IT基礎架構 建立 | 異動 | 版本控制 工具 > Terraform III

三、terraform state (terraform.tfstate)

在前一天的過程當中,會發現執行完計畫會出現一個檔案terraform.tfstate,就是讓terraform知道那些「服務」由其建立管理。你可用指令terraform show來查看,terraform.tfstate本身是文字檔(JSON格式)。因為這個檔案是讓Terraform得以進行「增量計劃」的執行依據。故小編想多介紹一下它。
PS:官網有更詳盡的說明喲~~~

狀態檔案存在目的

  • 對應真實世界:雖然有設定檔(Configuration),但Terraform需要一個「對應資料庫」來呈現真實世界的服務「狀態」,早期版本的Terraform並沒有狀態檔案(而是利用AWS服務的Tag來作對應),但不是每個服務都能用Tag,另外其他Provider也不一定支援Tag,所以Terrafrom有一個自己定義的「狀態結構)。
  • 有關資料的資料(MetaData):Terraform需要知道「資源」之間的相依。雖然有設定檔,刪掉其中一個資源,Terraform可以知道如何刪除它。但如果是設定檔不存在的話。其順序就很難被確定。
  • 效能考量:Terraform會將所以資源的屬性資料存放進狀態(state)檔。當它執行計畫時,就可以有效地根據你的設定,來完成改變。如果架構很小。TerraForm會向Providers查詢你的服務屬性並同步到狀態檔。但架構愈大時,加上Provider提供查詢的API會有存取限制。所以狀態檔就有必要存在,來對應真實世界。
  • 同步:預設Terrafrom會把狀態檔放在當前工作目錄下。可是當你們是工作團隊時,就需要把狀態檔放在「遠端」。Terraform會有遠端鎖定的機制來避免多人同時執行計畫,來確保每個人在執行當下,狀態檔都是「最新的」。

Terraform要完成「遠端狀態檔」的控制是一個名為Backend的機制,因為篇幅的關係。只能下回分曉了


鐵人路忙忙@@


上一篇
IT基礎架構 建立 | 異動 | 版本控制 工具 > Terraform II
下一篇
IT基礎架構 建立 | 異動 | 版本控制 工具 > Terraform IV
系列文
AWS高手同事離職後不止30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言