Ранее мы рассматривали PowerCLI – что это такое, как его установить и интегрировать в Windows Powershell ISE. Теперь давайте посмотрим на основной скриптинг, включая подключение, командлеты PowerCLI, а также циклы.
Вы можете запустить сценарий PowerShell для создания роли в vSphere с разрешениями, необходимыми для выполнения операций Commvault.
Перед началом работы
Добавляет серверы vCenter в инфраструктуру резервного копирования.
Стандартный, Enterprise, Enterprise Plus, Veeam Universal License
Этот cmdlet предоставляет набор параметров, позволяющих вам:
Этот cmdlet позволяет добавить сервер vCenter в инфраструктуру резервного копирования.
Принимает ввод через конвейер
Указывает полное DNS-имя или IP-адрес сервера vCenter.
Указывает пароль, который вы хотите использовать для аутентификации с сервером vCenter.
Указывает учетные данные, которые вы хотите использовать для аутентификации с сервером vCenter. объект. Чтобы получить этот объект, запустите Get-VBRCredentials
Указывает порт веб-сервиса для подключения к серверу vCenter.
Указывает описание сервера vCenter.
Определяет, что cmdlet добавит сервер vCenter без предупреждений в консоли PowerShell.
Этот пример показывает, как добавить
Если вам нужно запустить PowerCLI на системах без Windows, вы можете использовать Powershell Core, open-source версию PowerShell, совместимую с сценариями Powershell и большинством модулей.
Требования
После установления сетевого соединения, которое позволяет передачу трафика на порт 443 на ваших хостах, вы можете использовать API для операций с гостевой ОС напрямую или через PowerCLI, как показано здесь. Запросы API и cmdlet идут на порт 443 на хосте, где работает виртуальная машина (здесь Win10-Example). VMware Tools, работающие на виртуальной машине, обрабатывают запрашиваемые операции с гостевой ОС.
Основы сценариев PowerCLI
Давайте посмотрим на несколько основных командлетов PowerCLI, чтобы увидеть, насколько легко начать извлекать информацию из нашей среды vSphere с помощью PowerCLI. Имейте в виду, что нижеописанное ни в коем случае не предназначено быть всесторонним учебником, а скорее введение в PowerCLI и способы начать работать с командлетами и научиться автоматизировать вашу среду.
Первый командлет, который нам нужно выполнить, это тот, который фактически подключается к нашей среде vSphere. Вы можете подключиться либо прямо к хосту ESXi, либо к серверу vCenter.
Один из самых базовых команд, которые мы можем выполнить при подключении к ESXi или vCenter, это просмотр всех виртуальных машин в среде. Мы используем командлет get-vm для отображения информации о гостевых виртуальных машинах.
Чтобы получить более подробную информацию с помощью командлета get-vm, мы можем показать полную информацию с помощью команды:
Теперь давайте вернем конкретную полезную информацию из командлета Get-VM. Давайте найдем ВМ, находящиеся в состоянии PoweredOff. Мы можем получить информацию из командлета Get-VM, а затем направить ее в where-object, чтобы выбрать конкретную информацию, которую мы хотим запросить – в данном случае PowerState. Как видите, есть множество возможностей для получения различной информации о ВМ и направления этой информации в другой командлет PowerShell.
Как видите, это отображает только ВМ, находящиеся в состоянии PoweredOff. Это может быть чрезвычайно полезно. Мы даже можем направить результат вышеуказанной команды в командлет Start-VM. По сути, мы можем получить все выключенные ВМ и затем включить их.
Что насчет выключения конкретных ВМ? Мы можем сделать это. Мы можем вызвать ВМ по имени и затем использовать командлет Stop-VMGuest, который запускает завершение работы гостевой операционной системы.
Если вы не хотите получать подтверждение действия, мы можем добавить параметр -confirm:false:
Давайте предположим, что мы хотим увидеть, сколько работающих ВМ у нас есть, у которых назначено более 1 CPU. Опять же, мы можем использовать командлет where-object, чтобы выбрать NumCpu объект.
Ресурсы
Существует множество отличных ресурсов в Интернете, включая личные блоги, официальную документацию, образцы кода и т. д. Что я обнаружил, так это то, что если вы можете придумать что-то, что вы хотите сделать, вероятно, уже кто-то написал строчку кода PowerCLI, которая будет делать то, что вы хотите. Хорошо также то, что обычно можно найти что-то очень близкое к тому, что вы хотите сделать, и с минимальными модификациями после изучения основ, вы можете изменить его под свои нужды. Таким образом, вы учитесь PowerCLI и как он работает, а также как модифицировать код для выполнения задач, которые вам нужно выполнить.
Циклы PowerCLI
Циклы позволяют выполнять одно и то же действие несколько раз над выбранными объектами или определенное количество раз. Например, с помощью цикла foreach мы можем многократно повторять определенное действие. Он настраивается следующим образом, как псевдо-код ниже:
Если мы хотим быть более конкретными относительно объектов, на которых мы собираемся выполнить действие, мы можем, например, перебирать конкретный список ВМ из текстового файла. Для заполнения текстового файла мы можем запустить наш командлет Get-VM, выбрав нужные свойства, затем направить это в текстовый файл. Мы затем можем использовать PowerShell для чтения текстового файла и помещения ВМ в массив, на котором мы сможем выполнить действие. Ниже мы добавляем новый сетевой адаптер к ВМ в списке.
$vms = get-content c:VMs.txt
Мысли
PowerCLI очень мощный, чтобы сказать по меньшей мере. Мы только затронули поверхность в приведенных выше примерах. Любые задачи, которые вы повторно выполняете, или которые трудно выполнить в веб-клиенте, отлично подходят для написания сценариев с использованием PowerCLI. Фактически, обычно так и начинают знакомство с PowerCLI – у них есть задача, которую им необходимо выполнить автоматически, или действие, которое зависит от других действий в vSphere, или снова повторяющиеся действия, хорошо подходящие для написания сценариев.
Лучший способ изучить PowerCLI – это скачать его, установить его и начать использовать его в лабораторной среде, такой как домашний лабораторный стенд. Реальная мощь среды VMware vSphere раскрывается только тогда, когда вы видите потенциал использования автоматизации для контроля над vSphere. Итак, начните создавать сценарии с PowerCLI, и вы никогда не будете смотреть назад!