Надежное нацеливание на правильный управляемый диск Azure на виртуальной машине Linux с помощью Ansible playbook

#linux #azure #ansible #azure-managed-disk

#linux #azure #ansible #azure-managed-disk

Вопрос:

Как надежно разделить и смонтировать файловую систему управляемого диска Azure на виртуальной машине Linux с использованием сборников воспроизведения Ansible?

Я могу создать управляемый диск Azure azure_rm_manageddisk и назначить его экземпляру виртуальной машины. Моя проблема начинается, когда я пытаюсь использовать диск. Я просто не знаю, как надежно настроить таргетинг на правильный управляемый диск для разделения и монтирования файловой системы.

azure_rm_manageddisk Ни azure_rm_manageddisk_info один из них, похоже, не возвращает надежный, однозначный идентификатор для диска, на который можно ссылаться со стороны ОС.

Я не думаю, что диск даже отображается blkid до того, как он был разделен.

Microsoft документировала, что

По умолчанию при создании виртуальной машины Azure предоставляет вам диск операционной системы (/dev/sda) и временный диск (/dev/ sdb). Все добавляемые вами дополнительные диски отображаются как /dev/sdc, /dev/ sdd, /dev / sde и так далее.

(источник: https://docs.microsoft.com/en-us/azure/virtual-machines/linux/optimization )

но это не кажется надежным. Я думаю, что я видел, что моя виртуальная машина имеет настройку, отличную от этой, сразу после создания, и это определенно изменится после перезагрузки. Так /dev/sdc что, на мой взгляд, никакого доверия. Повторный запуск сборника воспроизведения может привести к всевозможным разрушениям, если файлы блочного устройства нестабильны. На самом деле мне уже удалось сделать мой корневой раздел видимым /media/my_data_disk_mount .

Это просто то, что мне придется обрабатывать вручную? Кажется странным. Это такое обычное дело.

Есть также /dev/disk/azure/resource , например, но это, похоже, тоже привело к неприятным результатам.

(источник: https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshoot-device-names-problems)

Может быть, что-то с номерами LUN?

Комментарии:

1. Вы пытались собрать факты о виртуальной машине и посмотреть ansible_devices ? Краткий пример oneliner, чтобы взглянуть на структуру var на вашем локальном хосте: ansible localhost -m setup -a filter=ansible_devices . У вас должно быть то, что вы ищете, на вашей удаленной цели.

2. Если вы не доверяете таким вещам, как /dev/sdc , вы можете использовать UUID в качестве рекомендации по устранению неполадок. И чего еще вы ожидаете?

3. На мой взгляд, оба эти предложения верны, но где-то есть недостающее звено. Как я должен узнать, какой диск мне нужен? Я уже вроде как потерял контроль. В принципе, я мог бы попытаться определить, на какой диск ориентироваться, исходя из размера диска, но это плохо пахнет. На выбор предлагается три или более диска. Например, я должен выбрать один из них, прежде чем смогу получить правильный UUID. Как мне выполнить этот шаг надежным способом? На данном этапе я не знаю UUID и должен выяснить, с какого диска считывать UUID. Вероятно, мне не хватает чего-то действительно простого…

4. Есть еще какие-нибудь новости по этому вопросу? Решает ли это вашу проблему?

Ответ №1:

Согласно сообщениям, вы хотите найти правильный диск и получить UUID для монтирования. То, что вы считаете правильным. Вы можете использовать LUN диска, чтобы определить, какой из них вам нужен. Вы можете использовать эту команду tree /dev/disk/azure , и она будет показана следующим образом:

введите описание изображения здесь

Вы можете видеть, что диск /dev/sdc использует lun1. И вы также можете узнать, какой диск использует lun1 на портале Azure. А затем вы можете использовать команду sudo blkid для получения UUID после инициализации диска:

введите описание изображения здесь