У меня есть хост 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.
Быстрое и грубое решение для оболочки через SSH - написать небольшой сценарий, который объединяет несколько действий:
vim-cmd vmsvc / getallvms | awk '{print $ 1}' | grep -o -E '[0-9] +'
(перечислить все виртуальные машины, показать только первый столбец с awk, отфильтровать IP-адреса, текст и пустые строки с помощью grep) ash
не имеет таких массивов, как bash
) и проверьте для каждого номера / идентификатора, найдено ли одно вхождение выбранного вами имени ISO в списке устройств для каждой виртуальной машины: vim-cmd vmsvc / device.getdevices yourVmId | grep -o -A 12 -E 'yourImageName.iso' | grep -c 'connected = true'
(перечислить все устройства, получить область вокруг файла ISO, проверить, смонтирован ли / активен ли ISO в данный момент) 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
) vim-cmd vmsvc / device.connection yourVmId yourDeviceId disconnect
, чтобы отключить устройство. (Edit: кажется, что это не совсем правильно, это что-то делает, но не то, что я ожидал. Я обновлюсь, когда у меня будет время, чтобы исследовать это дальше) Единственная проблема, с которой я столкнулся, - это сообщение «Привод компакт-дисков заблокирован гостем» может появиться в клиенте VSphere при выполнении последнего шага, но, возможно, это можно вообще отключить.
Или просто сделайте это вручную для "нескольких" виртуальных машин.
Или во-первых, чтобы избежать этой ситуации, размонтируя устройство после установки.