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).

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Добро пожаловать в блог IT-пилот

Введите Ваш Email чтобы подписаться

Подписка оформлена!