在上個頁面,你使用Terraform建立了你第一個基礎設施:一個EC2例項。在本頁,我們將變更那個資源,並瞭解Terraform如何處理變更。
基礎設施在持續發展,Terraform的建立就是為了管理和實施這些變更。當你修改配置檔案時,Terraform構建一個變更必要的執行計劃來達到你的期望狀態。
使用Terraform變更基礎設施,你不僅可以版本控制你的配置也可以版本控制你的狀態,所以你可以看到你的基礎設施時如何隨著時間發展變化。
配置
讓我們修改例項的ami
。在你的配置檔案中編輯 aws_instance.example
資源,將它改成如下所示:
resource "aws_instance" "example" {
ami = "ami-b374d5a5"
instance_type = "t2.micro"
}
注意:EC2經典使用者請使用ami-656be372
AMI 和t1.micro
型別。
我們將AMI從Ubuntu 16.04 LTS改成了Ubuntu 16.10。Terraform配置意味著做如此變更。你也可以刪除該資源,Terraform知道將要銷燬老資源。
應用變更
改完配置以後,再次執行 terraform apply
來檢視Terraform將如何應用該變更到當前資源。
$ terraform apply
# ...
-/+ aws_instance.example
ami: "ami-2757f631" => "ami-b374d5a5" (forces new resource)
availability_zone: "us-east-1a" => "<computed>"
ebs_block_device.#: "0" => "<computed>"
ephemeral_block_device.#: "0" => "<computed>"
instance_state: "running" => "<computed>"
instance_type: "t2.micro" => "t2.micro"
private_dns: "ip-172-31-17-94.ec2.internal" => "<computed>"
private_ip: "172.31.17.94" => "<computed>"
public_dns: "ec2-54-82-183-4.compute-1.amazonaws.com" => "<computed>"
public_ip: "54.82.183.4" => "<computed>"
subnet_id: "subnet-1497024d" => "<computed>"
vpc_security_group_ids.#: "1" => "<computed>"
下一步
<!-- more -->
<!--//
硬啃官方文件產物,若有不妥之處,歡迎指正,請以官方文件為準!
//-->