基礎設施包括各種雲,像國內的阿里雲、騰訊雲和華為雲,國外的AWS、微軟Azure雲和谷歌雲,還有Kubernetes和OpenStack,都可以用Terraform進行資源管理。使用基礎設施即程式碼(Infrastructure as Code, IaC)的方式來管理基礎設施,這是現代IT基礎設施管理的一個重要趨勢,它允許我們以程式碼的形式定義基礎設施,實現基礎設施的自動化部署,確保基礎設施配置的一致性,方便進行版本控制和變更管理。
Terraform屬於基礎設施即程式碼工具,官網地址:https://www.terraform.io/,產品定位:使用 Terraform 在任何雲上進行自動化基礎架構,高效管理基礎設施,阿里雲和騰訊雲是Terraform合作伙伴,使用和下載量都不小,華為雲是自己在維護,沒有合作伙伴標識。
安裝,直接在官網下載頁找到對應系統下載安裝即可,Linux、macOS和Windows都支援,下面透過一個演示示例體驗一下Terraform具體操作,用的是AWS雲,AWS提供了750小時2核CPU-1G記憶體虛擬機器的免費使用,Terraform演示示例所需配置檔案在https://github.com/robin-2016/terraform-demo程式碼倉庫下,下面進行一個簡單的建立一個虛擬機器的demo演示示例:
先將程式碼倉庫克隆到本地,進入demo-1目錄下,下圖就是main.tf檔案全部內容。先來解釋檔案內容對應的含義,provider部分為對應的供應商,現在使用的是AWS,region是配置區域,ap-east-1為香港地區,access_key和secret_key為AWS賬號生成的AK和SK。resource部分為建立的資源,這裡設定的虛擬機器例項,ami為虛擬機器例項映象id,是Ubuntu server24.04的映象,instance_type為虛擬機器例項規格,t3.micro是AWS提供的免費規格,2核CPU-1G記憶體,下面開始實操實驗。
演示實驗
第一步:填寫AWS的AK和SK分別對應access_key和secret_key,執行“terraform init”初始化,會建立一個lock檔案.terraform.lock.hcl,後續需要新增到程式碼倉庫中
初始化後,可以執行“terraform validate”來驗證配置檔案是否正確,不是必須執行,必須在init初始化之後執行
第二步:在執行具體操作前,再執行“terraform plan”檢視要執行內容,避免誤操作,這裡可以看到返回結果顯示是將要建立一個AWS的虛擬機器例項。這一步也可以不執行,可以跳過執行第三步,感覺還是先看一下執行內容比較放心。
第三步:確定好執行plan後符合預期,繼續操作,執行“terraform apply“,輸入yes確認操作,等待一會,一臺例項就建立好了,顯示“Apply complete”表明執行完成。
登入到AWS控制檯,看到有一臺剛剛建立的例項,也可以更改例項型別後再執行一次apply,現有的例項會銷燬再建立對應型別的例項。
第四步:演示實驗完成後,執行“terraform destroy“銷燬資源,上面建立出來的例項就會被刪除,同樣要求輸入yes來確認操作。
在演示實驗結束後,檢視目錄,會生成兩個檔案:terraform.tfstate和terraform.tfstate.backup,這兩個檔案是用來記錄terraform遠端狀態的,所以要保證在操作terraform之前這兩個狀態檔案是最新的,兩個狀態檔案可以儲存在terraform提供的遠端空間裡,如果操作少一些也可以儲存在程式碼倉庫一個單獨目錄下。
Terraform可以用來管理vpc、安全組和dns記錄等雲上的大部分資源,還可以搭配自定義映象+Linux指令碼方式,完成應用程式層面部署,特別是有多個雲賬號需要管理,或者頻繁初始化部署的情況下,能大大提高管理效率,一次編寫執行多次。
以上為Terraform的初級使用分享,如果對你有幫助,請關注留言互動,如果需要Terraform具體雲服務商教程請留言諮詢,嘿嘿。