我可以从 Terraform 获取 EBS 驱动器的 UUID 吗?
Can I get the UUID of an EBS drive from terraform?
这是我的问题 - 我正在使用 Hashicorp terraform 以编程方式设置具有几个附加 EBS 驱动器的 Amazon c5 EC2 实例。 c5 实例使用 nvme 并最终将我在 terraform 中分配的名称(例如 /dev/sdf)重新映射到 nvme 名称(例如 /dev/nvme1n1)。问题是映射似乎不一致。重新启动后,驱动器有时会以不同的顺序映射。这意味着我的 /etc/fstab 指定 /dev/nvme1n1 一次获得一个驱动器,下一次获得另一个驱动器。
一个解决方案是使用 /etc/fstab 文件中的 UUID。这工作正常,我可以使用 ls -al /dev/disk/by-uuid/
获取 UUID,但是 htis 是一个非常笨拙的自动化过程。
有没有办法直接从 terraform 获取 UUID,这样我就可以直接将其放入 fstab,而不必在事后手动完成(或编写特殊脚本来自动执行此操作)?
我今天遇到了这个问题。我没有使用地形。另外,我无法使用 UUID 解决问题。相反,我通过在文件系统上设置标签来解决它。您可以使用 e2label(对于 ext*)或 xfs_admin(对于 xfs)来执行此操作。设置标签后,您可以更新 fstab 以使用设备路径 /dev/disk/by-label/<label>
.
如果您从 AWS 提供的快照创建卷,则需要手动:
- 创建卷(从该快照)
- 将其附加到 EC2 实例(如果需要,为此目的启动一个实例)
- 安装它
- 设置标签
- 创建快照
- 使用该快照 ID 创建未来的卷
这是我的问题 - 我正在使用 Hashicorp terraform 以编程方式设置具有几个附加 EBS 驱动器的 Amazon c5 EC2 实例。 c5 实例使用 nvme 并最终将我在 terraform 中分配的名称(例如 /dev/sdf)重新映射到 nvme 名称(例如 /dev/nvme1n1)。问题是映射似乎不一致。重新启动后,驱动器有时会以不同的顺序映射。这意味着我的 /etc/fstab 指定 /dev/nvme1n1 一次获得一个驱动器,下一次获得另一个驱动器。
一个解决方案是使用 /etc/fstab 文件中的 UUID。这工作正常,我可以使用 ls -al /dev/disk/by-uuid/
获取 UUID,但是 htis 是一个非常笨拙的自动化过程。
有没有办法直接从 terraform 获取 UUID,这样我就可以直接将其放入 fstab,而不必在事后手动完成(或编写特殊脚本来自动执行此操作)?
我今天遇到了这个问题。我没有使用地形。另外,我无法使用 UUID 解决问题。相反,我通过在文件系统上设置标签来解决它。您可以使用 e2label(对于 ext*)或 xfs_admin(对于 xfs)来执行此操作。设置标签后,您可以更新 fstab 以使用设备路径 /dev/disk/by-label/<label>
.
如果您从 AWS 提供的快照创建卷,则需要手动:
- 创建卷(从该快照)
- 将其附加到 EC2 实例(如果需要,为此目的启动一个实例)
- 安装它
- 设置标签
- 创建快照
- 使用该快照 ID 创建未来的卷