Get-EsxCli. Установка и удаление VIB через PowerCLI
Чтобы установить и удалить драйвер в ESXi (vib-пакет) необходимо выполнить команды утилиты esxcli (в локальной консоли (DCUI) или по SSH):
esxcli software vib install -d “/vmfs/volumes/Datastore/DirectoryName/PatchName.zip“
esxcli software vib remove -n «имя пакета»
Но если необходимо выполнить эти команды не для одного, а для нескольких хостов, многих хостов?
Тогда гораздо эффективнее использовать команды esxcli через PowerCLI: Get-EsxCli.
Существует две версии командлета Get-EsxCli, — в случае использования версии 2 в строку добавляется «–V2».
Итак, приступим. Для начала необходимо подключиться к vCenter.
Затем выполним:
$esxcli = Get-EsxCli -VMhost Имя хоста –V2
Список всех доступных параметров можно получить набрав $esxcli:
Поскольку приведенные выше командлеты PowerCLI звучат как esxcli software …, то, очевидно, следующая наша команда: $esxcli.software
Двигаясь подобным образом, в итоге после ввода $esxcli.software.vib.install получим нечто не очевидно, поэтому воспользуемся хелпом:
Видя этот вывод, мы понимаем, что нужно создать хеш-таблицу CreateArgs(), заполнить ее элементами (параметры, выведенные командой $esxcli.software.vib.install.Help()) и затем командой invoke вызвать команду удаленно на хосте esxi с этими параметрами.
Про хеш-таблицы я писал PowerCLI. Использование хеш таблиц (hash tables)
$arg = $esxcli.software.vib.install.CreateArgs()
$arg.viburl = “/vmfs/volumes/Datastore/DirectoryName/PatchName.zip”
$esxcli.software.vib.install.Invoke($arg)
После чего необходимо перезагрузить ESXi.
Аналогично можно получить команды и для удаления.
Однако, в случае с vib remove нам не нужно использовать длинную строку с путем, следовательно все можно сделать одной командой:
$esxcli.software.vib.remove.Invoke(@{«vibname» = «qfle3f»})
После чего необходимо перезагрузить ESXi.
Для сравнения, если использовать Get-EsxCli версии 1, то вывод для аналога esxcli software vib install -d “/vmfs/volumes/Datastore/DirectoryName/PatchName.zip“
будет следующий:
$esxcli = Get-EsxCli -VMhost Имя хоста
$path=“/vmfs/volumes/Datastore/DirectoryName/PatchName.zip“
$esxcli.software.vib.install($null,$null,$null,$null,$null,$null,$null,$null,$path).