我需要地形方面的帮助。
我使用terraform创建了一个ec2实例,创建实例后,我登录到aws控制台,并在实例中添加了我创建的实例的存储空间。
现在我对地形代码做了一些更改,之后我运行了它显示的地形计划,删除了存储。
如何在不删除存储的情况下运行地形应用程序。
手动更改TF管理的资源会导致drift
,这是一种不同的坏做法。请查看TF文档如何处理:
- 使用Terraform检测和管理漂移
正如其他答案所说,由于您所经历的原因,手动更改Terraform托管资源是一种糟糕的做法。
您可以考虑的一种可能性是将添加的存储置于Terraform的管理之下,这是由terraform import
命令完成的。
举个例子,假设您添加了一个EBS卷,那么将为EBS卷声明一个Terraform资源,并且它附属于您的实例:
resource "aws_ebs_volume" "example" {
size = 20
# other props to match real instance
}
resource "aws_volume_attachment" "ebs_att" {
device_name = "/dev/sdf"
volume_id = aws_ebs_volume.example.id
instance_id = aws_instance.example.id
}
然后使用import命令导入,每个资源所需的详细信息各不相同,但可以在每个资源的文档中找到。
$ terraform import aws_ebs_volume.example vol-0123456789abc
$ terraform import aws_volume_attachment.example /dev/sdf:vol-0123456789abc:i-876543321