Могу ли я получить UUID диска EBS от terraform?

Вот моя проблема - я использую Hashicorp terraform для программной настройки экземпляра Amazon c5 EC2, к которому есть пара подключенных дисков EBS. Экземпляры c5 используют nvme и в конечном итоге переназначают имена, которые я назначаю в terraform (например, / dev / sdf), на имена nvme (например, / dev / nvme1n1). Проблема в том, что сопоставление кажется непоследовательным. При перезагрузке диски иногда отображаются в другом порядке. Это означает, что мой / etc / fstab, который указывает / dev / nvme1n1, получает один диск один раз, а другой диск следующий.

Одно из решений - использовать UUID в файле / etc / fstab. Это работает нормально, и я могу получить UUID, используя ls -al /dev/disk/by-uuid/, однако это очень неуклюжий процесс для автоматизации.

Есть ли способ просто получить UUID непосредственно из terraform, чтобы я мог поместить его в fstab напрямую, а не делать это вручную после факта (или написать специальный скрипт для автоматизации этого)?


person Dave DeCaprio    schedule 01.03.2018    source источник


Ответы (1)


Я столкнулся с этой проблемой сегодня. Я не использую терраформ. Также мне не удалось решить проблему с помощью UUID. Вместо этого я решил это, установив метку в файловой системе. Вы можете сделать это с помощью e2label (для ext *) или xfs_admin (для xfs). После того, как вы установили метку, вы можете обновить свой fstab, чтобы использовать путь к устройству /dev/disk/by-label/<label>.

Если вы создаете свой том из снимка состояния, предоставленного AWS, вам необходимо вручную:

  1. Создайте том (из этого снимка)
  2. Присоедините его к инстансу EC2 (запустите его только для этой цели, если вам нужно)
  3. Смонтируйте это
  4. Установите метку
  5. Создать снимок
  6. Используйте этот идентификатор снимка для создания будущих томов
person Kyle Gibson    schedule 08.03.2018