我可以从terraform获得EBS驱动器的UUID吗?

时间:2018-03-01 17:08:54

标签: terraform nvme terraform-provider-aws

这是我的问题 - 我使用Hashicorp terraform以编程方式设置一个拥有几个连接的EBS驱动器的Amazon c5 EC2实例。 c5实例使用nvme并最终将我在terraform中指定的名称(例如/ dev / sdf)重新映射到nvme名称(例如/ dev / nvme1n1)。问题是映射看起来并不一致。重启后,驱动器有时会以不同的顺序映射。这意味着指定/ dev / nvme1n1的/ etc / fstab一次获得一个驱动器,而下一个驱动器获得不同的驱动器。

对此的一个解决方案是在/ etc / fstab文件中使用UUID。这工作正常,我可以使用ls -al /dev/disk/by-uuid/获取UUID,但是htis是一个非常笨拙的自动化过程。

有没有办法直接从terraform获取UUID,以便我可以直接将其放在fstab中,而不是事后必须手工完成(或编写一个特殊的脚本来自动执行此操作)?

1 个答案:

答案 0 :(得分:1)

我今天遇到了这个问题。我没有使用terraform。此外,我无法使用UUID解决问题。相反,我通过在文件系统上设置标签来解决它。您可以使用e2label(对于ext *)或xfs_admin(对于xfs)执行此操作。设置标签后,您可以更新fstab以使用设备路径/dev/disk/by-label/<label>

如果您要从AWS提供的快照创建卷,则需要手动:

  1. 创建一个卷(来自该快照)
  2. 将其附加到EC2实例(如果需要,仅为此目的启动)
  3. 装载
  4. 设置标签
  5. 创建快照
  6. 使用该快照ID创建未来的卷