【问题标题】:How to import changes to a EBS volume after sizing it up back to Terraform?在将 EBS 卷调整回 Terraform 后,如何将更改导入到 EBS 卷?
【发布时间】:2017-08-12 13:45:45
【问题描述】:

在空间用完后,我不得不调整 EBS 卷的大小,现在我想配置我的 Terraform 的大小部分,并将以下块添加到 aws_instance 资源:

ebs_block_device {
  device_name = "/dev/sda1"
  volume_size = 32
  volume_type = "gp2"
}

现在在运行terraform plan 之后,它想破坏现有的卷,这太可怕了。我还尝试使用terraform import 导入现有的,但它希望我为资源使用不同的名称,这也不是很好。

那么这里的正确程序是什么?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 devops terraform


    【解决方案1】:

    aws_instance resource docs 提到对任何 EBS 块设备的更改都会导致重新创建实例。

    要解决此问题,您可以使用除 Terraform 之外的其他工具来使用 AWS 的新 elastic volumes 功能来增加 EBS 卷。 Terraform 也无法检测到在 aws_instance 资源中创建的任何附加块设备的更改:

    注意:目前,Terraform 无法自动检测对现有资源的 *_block_device 配置的更改。更新块设备配置后,可以使用 taint 命令手动触发资源重建。

    因此,您不需要返回并更改 Terraform 配置中的任何内容,除非您想在某个时候使用 Terraform 重建实例,此时担心丢失实例显然没有实际意义。

    但是,如果出于某种原因您希望能够对 Terraform 配置进行更改防止实例被破坏,那么您将需要操作您的状态文件。

    【讨论】:

      猜你喜欢
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      相关资源
      最近更新 更多