iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
0
Cloud Native

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

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

  • 分享至 

  • xImage
  •  

二、範例

初始化Terraform工作目錄

指令:terraform init
Imgur

Terraform Configuration(sample.tf)

    provider "aws" {
      access_key = "ACCESS_KEY_HERE"
      secret_key = "SECRET_KEY_HERE"
      region     = "ap-northeast-1"
    }

    resource "aws_instance" "example" {
      ami           = "ami-0689a2637ab83e607"
      instance_type = "t2.micro"
    }
  • access_key & secret_key:如果各位邦友有從一開始就跟著小編文章一起做的話,$HOME/.aws/credentials已經設定好AWS權限了(forPacker),所以這兩行可拿掉。
  • ami:這邊的ami_id就是前面用packer + ansible建立的。

產生Plan

指令:terraform plan -out=sample_plan
-out:計畫檔案產生「路徑」。
Imgur

執行Plan

指令:terraform apply sample_plan
失敗了:上面有提到權限是之前給packer使用的(Policy for Packer),雖然失敗了,但是去EC2的Console(AWS管理介面),發現機器有建立起來的。(這邊需要了解更多,才能跟大家回饋)
Imgur

增加權限toPacker

Imgur
Imgur

再執行Plan > 再產生Plan > 再執行Plan

之前提到Terraform會執行incremental Plan,所以它不讓再執行已經執行過的計畫。如果你產生的計畫名稱一樣的話,它會認為沒有「新的改變」,再執行也沒有任何改變。
Imgur

產生Plan2 > 執行Plan2

Imgur
從以上過程我們可以發現,為了達到「增量計畫」,terraform會控制狀態(state),至於state如何「同步」,那就是另一個課題了。


待續…


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

尚未有邦友留言

立即登入留言