在上个页面,你使用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" => "" ebs_block_device.#: "0" => " " ephemeral_block_device.#: "0" => " " instance_state: "running" => " " instance_type: "t2.micro" => "t2.micro" private_dns: "ip-172-31-17-94.ec2.internal" => " " private_ip: "172.31.17.94" => " " public_dns: "ec2-54-82-183-4.compute-1.amazonaws.com" => " " public_ip: "54.82.183.4" => " " subnet_id: "subnet-1497024d" => " " vpc_security_group_ids.#: "1" => " "
下一步
<!-- more -->
<!--//
硬啃官方文档产物,若有不妥之处,欢迎指正,请以官方文档为准!//-->