У меня накопилось определенное количество информации об использовании Get-View. И чтобы все это систематизировать, в том числе и для себя, пишу данный цикл статей.
Get-View - это более продвинутая функция PowerCLI, которая позволяет получить большую гибкость в управлении виртуальной инфраструктурой. Кроме того, скорость выполнения Get-View выше, чем аналогичных командлетов PowerCLI.
Для понимания работы Get-View сравню его с командлетом Get-VM.
Если нужна информация по одной ВМ, то определим имя конкретной ВМ
Для вывода более подробной информации
Теперь запустим
Как видим, поля, выводимые командлетами Get-view и Get-VM -Name DHCP | Select * различаются.
В выводе get-view мы видим такие поля как
- Config
- Runtime
- Guest
- Summary
и др.
И через эти значения мы получаем еще больше информации.
Для удобства будем использовать переменную VM:
Теперь достаточно после переменной через точку поставить соответствующее значение, например
И здесь мы опять видим те же значения. Наберем
И сравним с выводом
Как видим, вывод командлета $VM.Summary.Guest более компактный.
Идем дальше
Но всегда необходимо использовать более простой способ, например здесь мы получим ту же информацию
Пройдясь по вложениям и узнав что доступно, можно начать выводить интересующую нас информацию одной командой
Если по всем ВМ, то
Но если мы хотим самим задать имя колонок, например вместо HostName - Name, вместо IpAddress - IP, то конструкция усложнится
Если же нужно про конкретную, то применяем фильтр (который мы уже использовали ранее)
Ну и в заключении первой части визуально продемонстрирую разницу в выполнении команд. А поможет в этом команда Measure-Command -Expression {Выражение}, про которую я писал в статье Время выполнения команды в VMware vSphere PowerCLI.
Напомню, что Measure-Command лишь замеряет время выполнения команды, но не выводит результат ее выполнения.
Как видим, 45 миллисекунд у Get-View против 130 мс у Get-VM.
Get-View - это более продвинутая функция PowerCLI, которая позволяет получить большую гибкость в управлении виртуальной инфраструктурой. Кроме того, скорость выполнения Get-View выше, чем аналогичных командлетов PowerCLI.
Для понимания работы Get-View сравню его с командлетом Get-VM.
Если нужна информация по одной ВМ, то определим имя конкретной ВМ
Для вывода более подробной информации
Также выводить расширенную информации позволяет использование Format-List
-Property *
Теперь запустим
Я использую фильтр по имени ВМ (-filter @{"Name"="DHCP"}, поскольку вывод информации по всем ВМ довольно громоздкий.
Как видим, поля, выводимые командлетами Get-view и Get-VM -Name DHCP | Select * различаются.
В выводе get-view мы видим такие поля как
- Config
- Runtime
- Guest
- Summary
и др.
И через эти значения мы получаем еще больше информации.
Для удобства будем использовать переменную VM:
Теперь достаточно после переменной через точку поставить соответствующее значение, например
И здесь мы опять видим те же значения. Наберем
И сравним с выводом
Как видим, вывод командлета $VM.Summary.Guest более компактный.
Идем дальше
Но всегда необходимо использовать более простой способ, например здесь мы получим ту же информацию
Пройдясь по вложениям и узнав что доступно, можно начать выводить интересующую нас информацию одной командой
Если по всем ВМ, то
Но если мы хотим самим задать имя колонок, например вместо HostName - Name, вместо IpAddress - IP, то конструкция усложнится
Остановлюсь на этой конструкции поподробнее.
В данном примере мы
Get-View -ViewType VirtualMachine - получаем все ВМ
| Select - определяем выводимые значения.
Name - выводится имя ВМ
и, через запятую, выводим поле, содержащее IP адрес (Guest.IPAddress).
@{N='IP';E={[string]::Join(',',$_.Guest.IPAddress)}}, где N - имя столбца E - значение выражения, которое выводится в столбце.
В данный момент не буду разъяснять значение всей конструкции, остановлюсь лишь на $_.Guest.IPAddress. По сути это тоже самое, что и $VM.Guest.IpAddress (за исключением фильтра) из прошлого примера.
Что собой представляет $VM.Guest.IpAddress?
Ранее мы использовали команду присвоения $VM = get-view –viewtype VirtualMachine –filter @{“Name”=”DHCP”}. Т.е. в переменную VM мы сохранили результат выполнения команды Get-View. Таким образом, выполняя $VM.Guest.IpAddress мы извлекаем значение Guest.IpAddress из уже имеющихся данных. Т.е. имеет место передача данных по конвейеру от одной команды к другой.
$_ - это ссылка на текущий объект в конвейере. Т.е. в данном примере на результат выполнения команды Get-View -ViewType VirtualMachine.
Примечание:
Также я встречал в статьях термин трубопровод. Так вот - это тоже самое. В оригинале рассматриваемый нами термин именуется pipeline, который переводится на русский в том числе и как трубопровод.
А если нужны данные по двум параметрам? Например по IP-адресу и имени в гостевой ОС? Тогда просто через запятую добавляем еще одно поле
В данном примере мы
Get-View -ViewType VirtualMachine - получаем все ВМ
| Select - определяем выводимые значения.
Name - выводится имя ВМ
и, через запятую, выводим поле, содержащее IP адрес (Guest.IPAddress).
@{N='IP';E={[string]::Join(',',$_.Guest.IPAddress)}}, где N - имя столбца E - значение выражения, которое выводится в столбце.
В данный момент не буду разъяснять значение всей конструкции, остановлюсь лишь на $_.Guest.IPAddress. По сути это тоже самое, что и $VM.Guest.IpAddress (за исключением фильтра) из прошлого примера.
Что собой представляет $VM.Guest.IpAddress?
Ранее мы использовали команду присвоения $VM = get-view –viewtype VirtualMachine –filter @{“Name”=”DHCP”}. Т.е. в переменную VM мы сохранили результат выполнения команды Get-View. Таким образом, выполняя $VM.Guest.IpAddress мы извлекаем значение Guest.IpAddress из уже имеющихся данных. Т.е. имеет место передача данных по конвейеру от одной команды к другой.
$_ - это ссылка на текущий объект в конвейере. Т.е. в данном примере на результат выполнения команды Get-View -ViewType VirtualMachine.
Примечание:
Также я встречал в статьях термин трубопровод. Так вот - это тоже самое. В оригинале рассматриваемый нами термин именуется pipeline, который переводится на русский в том числе и как трубопровод.
А если нужны данные по двум параметрам? Например по IP-адресу и имени в гостевой ОС? Тогда просто через запятую добавляем еще одно поле
@{N='Guest Name';E={[string]::Join(',',$_.Guest.HostName)}}
Данная команда выводит информацию по всем ВМ.Если же нужно про конкретную, то применяем фильтр (который мы уже использовали ранее)
Ну и в заключении первой части визуально продемонстрирую разницу в выполнении команд. А поможет в этом команда Measure-Command -Expression {Выражение}, про которую я писал в статье Время выполнения команды в VMware vSphere PowerCLI.
Напомню, что Measure-Command лишь замеряет время выполнения команды, но не выводит результат ее выполнения.
Итак, выполним
Как видим, 45 миллисекунд у Get-View против 130 мс у Get-VM.
Комментариев нет:
Отправить комментарий