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

У меня есть хост VMware ESXi 6 с несколькими запущенными на нем гостями. Существует хранилище данных с файлом ISO, которое используется одним или несколькими из этих клиентов. I am accessing the ESXi host through ssh from linux, so PowerCLI is not an option.

Q1: How can I, from the VMware CLI, find out which guests have this ISO file mounted?

Q2: How can I, once I know that, unmount this ISO file from these guests, also from the VMware CLI?

I expect it to be vim-cmd vmsvc subcommands, but I haven't been able to find them.

5
задан 6 September 2016 в 12:12
2 ответа

Быстрое и грубое решение для оболочки через 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 , чтобы отключить устройство. (Edit: кажется, что это не совсем правильно, это что-то делает, но не то, что я ожидал. Я обновлюсь, когда у меня будет время, чтобы исследовать это дальше)

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

6
ответ дан 3 December 2019 в 01:13

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

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

3
ответ дан 3 December 2019 в 01:13

Теги

Похожие вопросы