天天看點

Terraform 文法 resource(1)

resource是我們的資源,一般在terraform裡面定義的都是資源,是個非常重要的角色。

Terraform 文法 resource(1)

關鍵字resource+資源類型(比如dns,ecs,vpc,交換機)+資源的名稱。

子產品下資源的名稱要保證唯一,不要沖突。

塊裡面就是所有resource的配置,也就是它的主體部分。

Terraform 文法 resource(1)

對于資源我們隻需要了解它的主體,它的結構,接下來就可以開始定義ecs。

​​阿裡雲登入 - 歡迎登入阿裡雲,安全穩定的雲計算服務平台​​

首先你得知道在哪個區域建立ecs,建立的時候選擇鏡像,作業系統,然後是系統盤多大,cpu,記憶體這些規格大小。

Terraform 文法 resource(1)
Terraform 文法 resource(1)

接下來為你配置網絡

Terraform 文法 resource(1)

 配置設定公網IP,帶寬,安全組,彈性網卡,ipv6。

Terraform 文法 resource(1)

最後就是系統的配置,賬号密碼這些。執行個體名稱,主機名稱。

Terraform 文法 resource(1)

cloud-init其實就是每個雲産品的機制,執行個體建立完之後想要執行一些任務,就可以借用這種機制去執行。裡面可以寫一段腳本。

下面就要去定義ecs資源了,resource是從provider裡面來的。

第一個是可用區,第二個是安全組,之前建立過安全組,然後加了兩條安全組的規則,80和22。

再往下面就是執行個體的類型,規格。

再後面就是雲盤。

鏡像的id可以通過data source去拿到。

Terraform 文法 resource(1)

這個就是我資源的配置

Terraform 文法 resource(1)

 ecs建立之後可能會去搭建一些服務,那麼就需要通過ecs的公網IP,公網IP就可以通路這台伺服器了。

這個密碼其實就是在配置檔案裡面寫的密碼(password= "root@123")記住這裡需要建立22端口通路規則,在安全組裡面。

Terraform 文法 resource(1)

當你在上面部署了一台ecs,并且在ecs上面部署了你的web應用,那麼就需要配置域名解析了。DNS是有zone區分的, 

 ​​阿裡雲登入 - 歡迎登入阿裡雲,安全穩定的雲計算服務平台​​

Terraform 文法 resource(1)

 這個域名其實就是我的zone,然後進去添加解析。

Terraform 文法 resource(1)

可以看到這個域名解析到這個IP了。

Terraform 文法 resource(1)

上面示範就是加了一條DNS的A記錄,指向了我們ecs的IP。

​​Terraform Registry​​

# Create a new Domain record
resource "alicloud_dns_record" "record" {
  name        = "domainname"
  host_record = "@"
  type        = "A"
  value       = "192.168.99.99"
}      

 type=A表示添加一條A記錄,A記錄一般指定的一台主機IP。name是zone的名稱,然後是記錄。