Terraform 的安裝很容易,從官方網站下載二進制文件解壓以後 就能夠直接使用了。
https://www.terraform.io/git
以windows爲例的話,我爲了在cmd裏面直接使用,須要把下載解壓後的文件加入到環境變量Path裏面。github
使用的話,直接先看兩個簡單的例子。windows
例1 在指定的AWS 帳號裏面建立一個新的EC2 實例,他有多種驗證的方式,這裏咱們使用最簡單的靜態密碼驗證(很是不安全)安全
https://registry.terraform.io/providers/hashicorp/aws/latest/docsapp
provider "aws" { region = "us-west-2" access_key = "AK2342LKSDFJKSLFSDFX" secret_key = "fwssdjk22342lkshdsiwerwl1FaK82Fkz9" } resource "aws_instance" "myec2" { ami = "ami-0e999cbd62129e3b1" instance_type = "t2.micro }
相關的文檔能夠在這裏看見ide
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance學習
把這個文件保存爲一個first_ec2.tf 文件。網站
而後切換到這個目錄下面,執行 terraform init, 他會自動咱們下載咱們在tf文檔裏面定義的provider 的 插件,在上面的例子裏面,我定義的是 "aws", 他就會自動下載對應的插件。我這裏沒有指定插件的版本,那麼他會自動下載最新版本。插件
官方推薦,在使用的時候應該儘可能明確地定義版本號3d
執行init 以後的效果
初始化以後,而後執行 terraform plan, 他會檢測tf文件,而後告訴你哪些資源進行了改變
若是檢測無誤,能夠執行 terraform apply, 那麼他就開始配置了
配置成功
例2 配置一個github的repository,他的方式和EC2 很相似,只不過是驗證的方式略有不一樣
https://registry.terraform.io/providers/integrations/github/latest/docs
provider "github" {
token = "574e72342kklfsfsf2d1359064f76ca85aac1"
}
resource "github_repository" "example" {
name = "terraform"
description = "terraform test "
visibility = "public"
}
https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository
一樣的操做,能夠看見成功建立了repository
當咱們執行上面的操做時候,他會自動建立、更新一個terraform.tfstate的文件
這個文件會自動保存咱們所建立資源的相關信息和屬性,以便於追蹤
若是說咱們對tf文檔進行了修改,好比說我把上面的t2.micro 改爲 t2.small,而後從新執行 terraform plan, terraform apply
能夠看見對應的tfstate文件內容也變動了
若是咱們想刪除建立的資源,能夠用 terraform destory 來刪除,若是隻打算刪除部分資源,能夠經過-target裏指定。可是通常說來,一個比較好的習慣是把不一樣的資源放在不一樣的文件夾裏面,這樣避免互相沖突。