среда, 14 марта 2018 г.

PowerCLI. Запуск скрипта после завершения всех активных задач.

На форуме VMTN, где я являюсь активным участником, был размещен вопрос "script to call other script when no tasks running in vCenter". Задачка мне показалось интересной, а решение - полезным, я взялся. В результате появилась весьма короткий командлет.

Do {Wait-Event -Timeout 10; Write-Host State: Running} While ((Get-Task).State -eq 'Running'); Script.ps1
Как он работает.
Прежде всего давайте посмотрим как выглядит вывод команды Get-Task
Get-Task

Как видим, выводятся как задачи, запущенные нами, так запущенные системой (vSphere).
Притом задачи отражаются в выводе также и после завершения. 

Мы должны дождаться выполнения всех задач и только после этого запустить какой скрпит/команду. Поэтому используем условие (Get-Task).State -eq 'Running'

В цикле While через заданный промежуток времени (в данном случае 10 секунд)  проверяется статус задач. Если статус Running, то выводится соответствующее сообщение, показывающее что командлет усердно выполняет свою задачу. Как только статус задач изменяется на Success, мы выходим из цикла While, после чего выполняется нужный нам скрипт Script.ps1 (который должен лежать папке, указаной как место жительства скриптов по умолчанию). 
Вот собственно и все.


пятница, 9 февраля 2018 г.

PowerCLI. Get-View. Использование фильтров. Регулярные выражения.

Использование фильтрации вывода результатов командлета Get-View задача не очень простая. В том плане, что обычные приемы, применяемые как в случае с PowerCLI, так и PowerShell не всегда срабатывает. 

воскресенье, 4 февраля 2018 г.

Вышли новые книги про VMware vSphere 6.5

18 октября 2016 года состоялся релиз серверной платформы виртуализации VMware vSphere 6.5. 
И сейчас - в декабре 2017  и январе 2018 по этой версии VMware vSphere вышли в свет новые книги с уже привычными названиями - Mastering VMware vSphere и VMware vSphere Cookbook.

Mastering VMware vSphere 6.5 (авторы Andrea Mauro, Paolo Valsecchi, Karel Novak) состоит из 598 страниц.
VMware vSphere 6.5 Cookbook - Third Edition (составители Abhilash G B, Cedric Rajendra) - 539 страниц.

Если быть точным - то релиз бумажного варианта VMware vSphere 6.5 Cookbook состоится только 9 февраля, но электронная версия уже доступна на сайте www.packtpub.com.


пятница, 2 февраля 2018 г.

PowerCLI. Heartbeat Datastore

В прошлой статье PowerCLI. Использование API. Get-VIObjectByVIView я исследовал объекты, применяя Get-VIObjectByVIView, а тажке Get-Member с фильтром -MemberType Properties.
И обещал рассмотреть командлет получения хранилищ, используемых для Heartbeat Datastore.

Поэтому на этот раз все же рассмотрю вопрос с Heartbeat Datastore и одновременно исследуя командлет Get-Member с фильтром -MemberType Method. Также приведу аналоги командлета, в том числе с использованием Get-View.

Поскольку выделяется целая статья, то можно и дать немного теории про Heartbeat Datastore.
Когда master хост в vSphere HA не может связаться со slave хостом по сети управления, master использует Heartbeat Datastore  чтобы определить тип сбоя:
- выход из строяMaster не может получить сигналов доступности от хоста ни по сети управления, ни по сети хранилищ;
разделение сети. Master видит хосты через Heartbeat Datastores, но не видит хосты через сеть управления. В этом случае в каждом сегменте у нас получится два хоста Master;
изоляция хоста. Хост полностью выпадает из сети управления, не может пинговать Isolation Address, но видит хранилища (а значит не вышел из строя).

четверг, 1 февраля 2018 г.

PowerCLI. Использование API. Get-VIObjectByVIView.

Ранее, в статье PowerCLI. Использование Get-View. Часть 2. я упоминал командлет Get-VIObjectByVIView в контексте совместного использования командлетов Get-View и Get-VM. 

В данной статье я хочу рассказать про использование данного командлета немного подробнее. 

Напомню, что Get-VIObjectByVIView - это командлет, который конвертирует  vSphere View object в VIObject. 
VIObject - это объект PowerCLI (ВМ, Хост ESXi, датасторе и т.д.)

Но применение Get-VIObjectByVIView не ограничивается только  лишь случаями совместного использования командлетов Get-View и Get-VM.
Для начала немного теории.

В VMware vSphere имеется application programming interface (API), что переводится как программный интерфейс приложения
API (application programming interface) - это набор готовых классов, функций, процедур, структур и констант. Вся эта информация предоставляется самим приложением (или операционной системой). При этом пользователю не обязательно понимать, что это API технология обеспечивает взаимодействие модулей. Цель предоставленной информации – использование этих данных при взаимодействии с внешними программами.
В VMware PowerCLI есть два способа использования VMware vSphere API. 
1. Использование свойства ExtensionData, имеющееся у большинства объектов PowerCLI. Свойство ExtensionData является прямой ссылкой на vSphere API-объект, связанный с объектом PowerCLI.
2. Использование командлета GetView для извлечения объекта API vSphere, связанного с объектом PowerCLI.

Для лучшего понимания VMware vSphere API и Get-VIObjectByVIView рассмотрим пример получения информации о хранилищах, используемых для Heartbeat Datastore.
Примечание: Heartbeat Datastore служит для обработки сбоев в VMware HA.