Назад | Перейти на главную страницу

Как вывести список смонтированных ISO и отключить их из командной строки в VMware ESXi?

У меня есть хост VMware ESXi 6, на котором работает несколько гостей. Существует хранилище данных с файлом ISO, которое используется одним или несколькими из этих клиентов. Я получаю доступ к хосту ESXi через ssh из linux, поэтому PowerCLI мне не подходит.

Q1: Как я могу с помощью VMware CLI узнать, на каких гостях смонтирован этот ISO-файл?

Q2: Как я могу, узнав об этом, отключить этот ISO-файл от этих гостей, а также от VMware CLI?

Я ожидаю, что это будет vim-cmd vmsvc подкоманды, но я не смог их найти.

Быстрое и грубое решение для оболочки через SSH - написать небольшой скрипт, который соединяет несколько действий:

  1. Получите свои идентификаторы виртуальных машин с vim-cmd vmsvc/getallvms|awk '{print $1}'|grep -o -E '[0-9]+' (перечислить все виртуальные машины, показать только первый столбец с awk, отфильтровать IP-адреса и текст и пустые строки с помощью grep)
  2. Перебрать строки (ash не имеет массивов вроде bash) и проверьте для каждого номера / идентификатора, найдено ли одно вхождение выбранного вами имени ISO в списке устройств для каждой виртуальной машины: vim-cmd vmsvc/device.getdevices yourVmId|grep -o -A 12 -E 'yourImageName.iso' | grep -c 'connected = true' (перечислите все устройства, найдите область вокруг вашего файла ISO, проверьте, смонтирован ли / активен ли ISO)
  3. Получите идентификатор устройства каждого привода компакт-дисков (при условии, что он только один, измените код для нескольких приводов на одной машине) с помощью модифицированного grep из того же начального списка: vim-cmd vmsvc/device.getdevices yourVmId|grep -o -B 4 -E 'yourImageName.iso'|grep -o -E 'key = [0-9]+'|grep -o -E '[0-9]+' (требуется двойной grep из-за отсутствия параметра группы -P)
  4. Использовать vim-cmd vmsvc/device.connection yourVmId yourDeviceId disconnect отключить устройство. (Изменить: кажется, что это не совсем правильно, это что-то делает, но не то, что я ожидал. Я обновлю, когда у меня будет время, чтобы исследовать это дальше)

Единственная проблема, с которой я столкнулся, заключается в том, что сообщение «CD-привод заблокирован гостем» может появиться в клиенте VSphere при выполнении последнего шага, но, возможно, это можно вообще отключить.

Используйте PowerCLI ...

Или просто сделайте это вручную для «нескольких» виртуальных машин.
Или, в первую очередь, избежать ситуации, размонтируя устройство после установки.