簡介🧑🏻💻
最近在研究terraform與ansible的整合,不過還在摸索中,機器的版控對於維運來講相對重要,這時候有terraform的出現,在建立機器後會隨之產生機器的狀態檔,而ansible則是在建立好機器後幫助我完成我所需的機器相關設定
這是一款terraform結合ansible的小玩具,在gcp環境下使用terraform幫我建置好機器,接著使用local exec執行ansible的playbook完成機器的設定
資料夾結構
├───ansible-playbook
│ ├───group_vars
│ │ └───all
│ ├───roles
│ │ ├───instance
│ │ │ └───tasks
│ │ └───ops_agent
│ │ └───tasks
│ └───vars
│ └───instance
├───modules
│ └───main.tf
│ └───variables.tf
└───roles
└───general
└───general.tf
- ansible-playbook:放置ansible相關工具
- modules:放置主要使用的resource以及定義好的變數
- roles:放置自定義參數
使用指南
先建立gcp sa給terraform可以有建立vm的權限,接著可以下
- terraform init -> 先讓terraform下載相關的repo
- terraform plan -> 查看terraform會做哪些事情,一開始都會先去檢查狀態檔,最上面代表動作,此範例為create,最下面的plan代表總共有4個resource會add
- terraform apply -> 建立機器指令,apply一樣會把plan的部分也顯示出來,並詢問是否要繼續,打上yes後便會開始建置機器
- terraform destroy -> 機器建立完要刪除時下這指令,destroy一樣會去檢查狀態檔,這次的動作為destroy,最下面的plan顯示4個資源會被destroy
- terraform show -> 可以顯示當前terraform的狀態