Это не Ansible. Проблема, с которой вы сталкиваетесь, заключается в том, что имена устройств '/ dev / sda', et c не являются постоянными. Они располагаются в порядке появления, поэтому, если этот порядок отличается, устройства перечислены под разными именами. IRL, есть еще больше проблем с подходом sda, например, если какое-то устройство было отключено из-за ошибки (тайм-аут в случае ISCSI), а затем повторно подключено позже, оно может получить новое имя (например, /dev/sdg
). Глубоко внутри ядра будут / dev / sda (невидимый, но занятый) и / dev / sdg - то же устройство с другим именем.
TL; DR; Не полагайтесь на нотацию / dev / sd *, если для вас важен порядок. Думайте об этом как о «наборе» дисков со случайными именами.
Если вам нужно выбрать конкретное c устройство, вам нужно найти инвариант (то, что точно есть на устройстве). Несколько вариантов:
- Путь SCSI
- Номер слота (в случае реальных устройств в корпусах)
- UUID файловой системы
- Номер детали и / или присвоенный производителем серийный номер устройства
Некоторые из этих идентификаторов возможны через / dev / disk / по - *:
- по-id /
- by-partlabel /
- by-path /
- by-label /
- by-partuuid /
- by-uuid /
Некоторые требуют очень вдумчивого процесса поиска (зондирование с идентификацией). Возможно, вы захотите изучить вывод нескольких инструментов:
- blkid
- isscsi
- iscsiadm -m session
Или даже посмотреть в / sys / block и символические ссылки на каждом устройстве.
По сути, проблема почти такая же, как если бы какой-то парень случайно подключил ваши диски к новому компьютеру. Для чего нужен привод?