среда, 26 мая 2010 г.

vSphere PowerCLI: урок 3

В этом уроке я постараюсь продемонстрировать объектно-ориентированность PowerShell. Все, с чем вы работаете в PowerShell - объекты, и у этих объектов есть свойства и методы (действия). Попробуем аналогию "объекты как велосипед".

Вот самый обычный велосипед.



В разных велосипедах есть много общего, и состоят они из одних и тех же частей (свойств) и выполняют одни и те же действия (методы). Итак, в общие части входят колеса, седло, педали и тормоза, а в общие действия "ехать вперед", "повернуть направо", "повернуть налево" и "затормозить". Если бы велосипед был объектом PowerShell, таким как виртуальная машина, то можно было бы обращаться к его свойствам и методам.



Для сравнения взглянем на некоторые свойства командлета Get-VM:



Мы можем определить сколько памяти выделено ВМ, посмотрев значение свойства MemoryMB.

Чтобы узнать какие именно свойства и методы имеет объект или командлет, нужно перенаправить его по конвейеру в командлет Get-Member или его алиас gm.

Get-VM | gm


Мы пока так и не поговорили ни об одной новом командлете PowerCLI, поэтому давайте выучим парочку.

Прежде всего, посмотрим на полезную команду, которая поможет узнать какие Get- командлеты используются в PowerCLI (VMware). Правила названия командлетов очень простые: Действие-Объект, т.е. по одному названию командлета сразу можно понять что он делает и с чем. Именно это нам и поможет - мы отфильтруем вывод командлета Get-Command по действию "Get" и ассоциации командлета с модулем VMware.

gcm -Module vmware* -verb get


Следующим на очереди идет командлет Get-Cluster. По умолчанию он выдаст нам все кластеры, управляемые из vCenter, к которому мы в данный момент подключены.

Get-Cluster


А теперь посмотрим на свойства Get-Cluster, и в частности как мы можем узнать используемый режим DRS через свойство DRSMode. Например, можно результат (объект) сохранить в переменной (которая тоже объект), а потом просто посмотреть на свойства этой переменной. Поговорим более детально о переменных в следующем уроке. Сейчас достаточно знать, что для определения переменной нужно поставить знак $ перед осмысленным названием (мы ведь не хотим потом гадать, что такое $var123 и чем она отличается от $var132) и приравнять ее требуемому объекту, в нашем случае это вывод командлета Get-Cluster.

$varcluster = Get-Cluster VeeamUKVsphereCluster


А теперь посмотрим на свойство DRSMode.

$varcluster.DRSMode


<< Предыдущий урок | Следующий урок >>

2 комментария:

  1. gcm -Module vmware* -verb get Get-Member : Не удается найти параметр, соответствующий имени параметра "Module".
    В строка:1 знак:11
    + gcm -Module <<<< vmware* -verb get

    где я ошибся?

    ОтветитьУдалить