Довольно давно VMware не обновляла свой универсальный фреймворк для управления виртуальной инфраструктурой, но вот на днях вышел VMware PowerCLI 11.3. Напомним, что прошлая версия пакета VMware PowerCLI 11.2 вышла в марте этого года.
Давайте посмотрим, что нового появилось в PowerCLI 11.3:
1. Добавлено 22 новых командлета для управления компонентами HCX и SPBM (политики хранилищ).
Их поддержка уже была в версии 11.2, но теперь она расширилась. Для HCX теперь доступны следующие командлеты:
Get/New/Remove/Set-HCXComputeProfile
Get-HCXInventoryCompute
Get-HCXInventoryDatastore
Get-HCXInventoryDVS
Get-HCXInventoryNetwork
Get-HCXNetworkBacking
Get/New/Remove/Set-HCXNetworkProfile
Get/New/Remove/Set-HCXServiceMesh
Get-HCXStorageProfile
New-HCXComputeProfileDVS
New-HCXComputeProfileNetwork
New-HCXServiceMeshDVS
В плане поддержки SPBM, появился новый командлет Get-SpbmView, который предоставляет прямой доступ к API механизма управления политиками хранилищ. В примере ниже выведен список доступных сервисов и взаимодействие с сервисом Replication Manager для получения набора доступных методов:
Также теперь командлеты Get/Set-SpbmEntityConfiguration могут просматривать или изменять политики хранилищ SPBM для датасторов. Вот пример работ командлета для вывода параметров политики датастора:
2. Поддержка vSphere 6.7 Update 2 в модуле VMware.VIM.
Теперь последняя версия платформы vSphere полностью поддерживается для управления через этот модуль.
3. Поддержка opaque networks в командлете Get-VirtualNetwork.
Эти сети появляются как результат работы с логическими коммутаторами в решении NSX-T. В версии PowerCLI 11.2 управление такими сетями было доступно только через прямой API, а сейчас можно управлять ими с помощью высокоуровневого командлета:
4. Добавлена возможность создания дополнительных типов сетевых адаптеров.
Здесь были добавлены адаптеры SriovEthernetCard и Vmxnet3Vrdma, а также появились параметры PhysicalFunction и DeviceProtocol.
5. Поддержка высокоуровнего преобразования мгновенных клонов (instant clones) в обычные ВМ.
Начиная с vSphere 6.7, мгновенные клоны (instant clones) стали доступны для пользователей в производственной среде, но управлять ими можно было только через API. Теперь же с помощью PowerCLI 11.3 можно использовать командлет Set-VM совместно с параметром PromoteDisks, что даст возможность преобразовать машину instant clone в самостоятельную ВМ, которая больше не зависит от родительской.
6. Обновлена обработка статусов кластера для свойства SpbmEnabled.
Теперь для датастора в кластере не показывается статус SpbmEnabled, так как он всегда включен и не может быть отключен пользователем.
7. Обновленная обработка пакетного режима привязки тэгов.
Теперь привязка тэгов vSphere tags с помощью командлета New-TagAssignment идет на стороне сервера в пакетном режиме, что дает существенный прирост производительности (от 12 до 18 раз):
Часто администраторы виртуальной инфраструктуры VMware vSphere и отказоустойчивых кластеров VMware vSAN задаются вопросом, а как найти тот или иной диск vSAN в физическом сервере?
Иногда такую информацию можно получить с помощью следующей команды:
esxcli storage core device physical get -d <device id>
Вывод будет выглядеть следующим образом:
Исполнять эту команду для каждого из дисков достаточно проблематично, особенно учитывая, что нужно еще предварительно получить id устройства.
Также эту информацию можно посмотреть в разделе Cluster > Configure > vSAN > Disk Management, выбрав режим показа дисков "By Disk Vendors":
Но это тоже неудобно, хотелось бы такую информацию получать через PowerCLI. Информацию о дисковых устройствах можно получить с помощью командлета Get-ScsiLun, который выдает адаптер, к которому подключен диск, а также является ли он SSD-устройством, подходит ли для vSAN и другое. Но, к сожалению, он не дает данных об enclosure для этого диска, поэтому дополнительно нужно воспользоваться командлетом Get-EsxCli, который добавит эту информацию.
Таким образом, VMware предлагает использовать вот такой сценарий PowerCLI, который выведет информацию о физических устройствах, их нахождении в enclosure и слоте, а также типе дисков и их емкости:
Сам сценарий доступен по этой ссылке: https://code.vmware.com/samples/5539 (кстати, обратите внимание, что на портале VMware Code можно найти еще много чего интересного).
Интересный проект доступен на GitHub - набор скриптов vDocumentation, который позволяет через PowerCLI сгенерировать отчетность в форматах CSV или XLS, посвященную различным сторонам виртуальной инфраструктуры (сеть, хосты, кластеры vSAN и т.п.). Демо этого средства было представлено на VMworld 2017:
Проект vDocumentation на текущий момент содержит 8 сценариев, каждый из который позволяет подготовить соответствующий отчет:
Get-ESXInventory - генерация всех аппаратных параметров хостов ESXi и их конфигураций.
Get-ESXIODevice - документирование конфигурации карт HBA, NIC и других PCIe-устройств, включая PCI ID, MAC, версии микрокода и драйверов.
Get-ESXNetworking - конфигурация сетевого окружения, включая детали сетевых адаптеров, коммутаторов vSwitches, параметры VMKernel и прочее.
Get-ESXStorage - параметры инфраструктуры хранилищ, включая детали iSCSI, FibreChannel, параметры датасторов и механизма доступа по нескольким путям (Multipathing).
Get-ESXPatching - информация об установленных обновлениях, времени их выхода и ссылки на соответствующие статьи KB.
Get-vSANInfo - документирование кластеров vSAN.
Get-ESXSpeculativeExecution - статус серверов ESXi в отношении уязвимостей Spectre и Meltdown.
Get-VMSpeculativeExecution - статус виртуальных машин в отношении уязвимостей Spectre и Meltdown.
Например, вот отчет о статусе хостов ESXi в отношении уязвимостей Spectre и Meltdown:
По умолчанию данные выводятся в терминал, но можно их перенаправить с CSV или XLS файлы.
Загрузить сценарии vDocumentation можно по этой ссылке.
Очень дельную статью написал Вильям Лам, касающуюся настройки алармов для различных событий в инфраструктуре VMware vSphere. Иногда системному администратору требуется настроить мониторинг каких-либо действий пользователей, которые вызывают генерацию событий в консоли vSphere Client.
Например, вы хотите получать аларм, когда пользователь создает папку (Folder) для виртуального окружения через vSphere Client. Для начала нам понадобится информация, которую мы будем использовать в описании аларма. Для этого мы делаем действие, генерирующее событие, вручную (в данном случае, создаем папку), а после этого идем в раздел Monitor->Tasks, где смотрим описание задачи и связанного с ней события:
Главное здесь для нас - это лейбл "Task: Create folder", по которому мы найдем этот тип событий через PowerCLI, а точнее его Description Id. Открываем консоль PowerCLI и выполняем там вот такую команду, указав лейбл нашего события, найденный в консоли vSphere Client:
Результатом будет Description Id нашего события - это Folder.createFolder:
Далее можно создавать аларм, зная Description Id события. Выбираем тип условия Task event, а также описание в виде Description Id, тип условия end with и сам этот ID - Folder.createFolder:
После создания такого аларма, при каждом создании папки он будет срабатывать, что можно увидеть в разделе Triggered Alarms:
Таким же образом вы можете настроить алармы и для любых других событий, происходящих в инфраструктуре VMware vSphere.
На днях компания VMware выпустила первое в этом году обновление своего фреймворка для управления виртуальной инфраструктурой PowerCLI 11.2.0. Напомним, что о прошлом обновлении - PowerCLI 11.1 - мы писали вот тут.
Давайте посмотрим, что нового появилось в обновлении PowerCLI 11.2:
Новый модуль для VMware HCX.
Решение VMware HCX - это набор утилит для управления гибридной средой, состоящей из ресурсов облака и онпремизной инфраструктуры. С помощью нового модуля для HCX вы можете выполнять миграции vMotion (в том числе, в пакетном режиме), включая очень большие ВМ, поддерживать жизненный цикл ВМ, а также защищать данные в целях катастрофоустойчивости, дублирование которых происходит на уровне площадок.
Всего здесь было добавлено 20 командлетов, решающих подобные проблемы. Более подробно о них можно почитать вот тут.
Добавлена поддержка служб NSX-T Policy services.
Решение NSX-T позволяет абстрагировать управление сетями и безопасностью сетевой инфраструктуры датацентра с помощью политик. Также NSX-T применяется для обеспечения доступности сервисов.
За счет нового командлета Get-NsxtPolicyService теперь можно автоматизировать большинство операций по управлению политиками, используя стандартный API. Командлет совместим с недавно анонсированной новой версией решения NSX-T 2.4.
Добавлена поддержка служб OAuth для соединения с vCenter.
В плане поддержки инфраструктуры безопасности VMware Cloud on AWS, в новой версии PowerCLI был существенно доработан механизм аутентификации. Теперь появилось 2 новых командлета для аутентификации и обновился существующий командлет для поддержки механизма OAuth2.
Для облачного модуля VMC появился специальный командлет New-VcsOAuthSecurityContext, который позволяет использовать контекст безопасности сессии работы пользователя на базе токена VMware Cloud on AWS
Для модуля Core появился командлет New-VISamlSecurityContext, который позволяет получить и использовать контекст безопасности OAuth и транслировать его в контекст SAML2, который уже используется для соединения с vCenter (Connect-VIServer) и прочего.
На данный момент эта функциональность работает только в GovCloud
для правительственного облака.
Поддержка Opaque Networks (сетей виртуальной инфраструктуры, которые управляются извне решения vSphere, например, OpenStack).
С помощью командлетов Set-NetworkAdapter и Import-VApp можно организовать поддержку сетей Opaque Networks. Более подробно об этом можно почитать в статье Configuring VMs For Opaque Networks.
Обновленные командлеты модуля
Storage.
Командлет Get-VsanSpaceUsage теперь имеет новый параметр, который позволяет возвращать результаты по определенной политике хранилищ.
Также в командлет добавили несколько параметров от командлета Set-VsanClusterConfiguration (CustomizedSwapObjectEnabled, GuestTrimUnmap, LargeClusterSupported, ObjectRepairTimerMinutes и SiteReadLocalityEnabled). Обновился и командлет Test-VsanNetworkPerformance, который теперь имеет параметр DurationInSecond (с помощью него можно регулировать время тестирования производительности хранилища).
Посмотреть историю изменений VMware PowerCLI 11.2.0 можно по этой ссылке. Документация доступна тут. Если вы что-то забыли, то всегда можно воспользоваться справочником по PowerCLI - VMware PowerCLI 11.2.0 Cmdlet Reference.
Напомним, что обновить актуальную версию PowerCLI на обновление версии 11.2, можно использовать команду:
На сайте проекта VMware Labs появилось обновление полезной штуки для администраторов больших виртуальных инфраструктур - PowerCLI Preview for NSX-T. Напомним, что мы писали об этом решении вот тут. Оно предоставляет интерфейс PowerCLI/PowerShell к управлению решением для сетевой виртуализации NSX-T с помощью сценариев. Кстати, пользуясь случаем, рекомендуем вам статью нашего автора Романа Гельмана "Как управлять ролями NSX-менеджера при помощи PowerNSX".
Надо отметить, что это все еще Community Preview версия пакета команд, которая скоро будет добавлена в состав экосистемы PowerCLI, но на данный момент ее рекомендуется использовать только в тестовых целях.
Кстати, авторы отмечают, что получение дочернего объекта на основе всего родительского пока не работает, вместо этого рекомендуют использовать ID родителя (например, для команды Get-FirewallRule нужно использовать -SectionId и указать родительскую секцию вместо передачи родителя целиком в параметр -FirewallSection).
Для работы необходим PowerCLI 10.0.0 или более поздней версии.
На сайте VMware появился полезнейший технический документ, даже практически книга об использовании фреймворка PowerCLI для инфраструктуры отказоустойчивых кластеров хранилищ - VMware PowerCLI Cookbook for vSAN.
На 88 страницах авторы (Jase McCarty и его коллеги), работавшие с PowerCLI/PowerShell для управления инфраструктурой vSAN более 4 лет, рассказывают обо всех аспектах управления хранилищами с помощью сценариев.
Книга дает "рецепты" в следующих сферах:
Конфигурация решения vSAN
Операционные ежедневные задачи
Функции отчетности о текущем состоянии среды
В книге приведено большое количество примеров, причем авторы сначала показывают, как задачу можно выполнить в графическом интерфейсе, а затем разбирают кейс по автоматизации данных действий с помощью PowerCLI.
Кстати, это только первый релиз книги (1.0), со временем она будет дополняться. Скачать VMware PowerCLI Cookbook for vSAN можно по этой ссылке.
Те из вас, кто разрабатывает, дорабатывает и использует сценарии VMware PowerCLI, знает, что время от времени требуется использовать модуль какой-то конкретной версии, который идет в составе PowerCLI определенной версии. Это может быть из-за бага в новом пакете или несовместимости старых скриптов с новыми модулями.
Если вам нужно скачать нужный пакет из PowerShell Gallery, сделать это просто - там есть кнопка Manual Download:
Но есть и возможность напрямую установить модуль из галереи, используя команду:
Install-Module -Name VMware.PowerCLI
Но это команда установит только последнюю версию модуля, а на блоге VMware появилась интересная функция Save-PowerCLI, которая позволяет указать в параметре -RequiredVersion нужную версию и скачать ее с последующей установкой:
Больше пяти лет назад мы писали про проект vCenter Server Simulator 2.0 (VCSIM), который позволял протестировать основные интерфейсы VMware vCenter без необходимости его реального развертывания (а значит и без лицензии). Проблема в том, что он был выпущен для VMware vSphere и vCenter версий 5.5 и с тех пор не обновлялся.
Зато есть аналог старому VCSIM - новый проект govcsim, написанный на языке Go (Golang). Он точно так же умеет предоставлять API-ответы на вызовы к vCenter Server и ESXi.
Несмотря на то, что этот симулятор написан на Go, он позволяет вам работать с vCenter посредством любого языка и интерфейса, умеющего общаться через API (в том числе, PowerShell). То есть, вы можете соединиться через PowerCLI к VCSIM Docker Container и работать с ним как с сервером vCenter.
Сам контейнер nimmis/vcsim можно скачать отсюда. Pull-команда для него:
If ($PSVersionTable.PSVersion.Major -ge 6) {
Test-Connection $Server -TCPPort 443
}
Connect-VIServer -Server $Server -Port 443 -User u -Password p
# Did it work?
Get-VM
# Or Get-VMHost, or Get-Datastore, etc.
Этот код делает следующее:
Запускает docker-контейнер VCSIM локально (если у вас его нет, то он будет загружен).
На Windows-системе получает IP-адрес адаптера DockerNAT.
После запуска контейнера тестирует, что порт 443 отвечает.
Использует модуль VMware.PowerCLI интерфейса PowerShell для соединения с vCenter Simulator.
Симулятор на данный момент поддерживает не все множество API-методов (смотрите документацию). Вот так, например, можно вывести список всех поддерживаемых методов и типов:
$About = Invoke-RestMethod -Uri "https://$($Server):443/about" -Method Get
$About.Methods
$About.Types
Например, вы можете использовать PowerOffVM_Task, PowerOnMultiVM_Task и PowerOnVM_Task. Из PowerCLI попробуйте также протестировать командлеты Stop-VM и Start-VM. Ну а дальше изучайте документацию к библиотеке govmomi.
Давайте для начала разберёмся с терминологией. Что такое роли NSX-менеджера? Роли NSX-менеджера позволяют управлять правами доступа к объектам NSX с помощью присвоения той или иной роли отдельному пользователю или группе. В UI эти настройки находятся в Networking & Security -> System -> Users and Domains.
На сайте проекта VMware Labs появилось превью технологии PowerCLI for VMware Cloud on AWS, которая представляет собой расширение фреймворка PowerCLI на публичное облако от Amazon и VMware. Расширение поставляется как отдельный модуль PowerCLI (VMware.VimAutomation.VmcPreview), который интегрируется с остальными модулями.
Все команды модуля сгенерированы автоматически, в данный момент они находятся в разработке, поэтому могут обновляться и изменяться, что нужно учитывать при разработке сценариев. Всего в модуле присутствует 14 высокоуровневых командлетов, таких как Get-Organization или Get-Sddc. Давайте взглянем, как это примерно работает.
Для начала работы вам понадобится PowerCLI 11.0.0 или более старшей версии. Установить модуль можно автоматически из PowerShell Gallery с помощью команды:
Также можно получить объект SDDC, используя Organization ID:
Далее с объектом SDDC можно работать как в привычной среде PowerCLI, например, получить AWS Region, какие зоны Availability Zones используются, информацию об NSX (например, Manager URL), а также vCenter URL:
Скачать VMware vCloud on AWS можно по этой ссылке.
В конце декабря ушедшего года компания VMware выпустила обновление своего консольного фреймворка для управления виртуальной инфраструктурой - PowerCLI 11.1.0. Напомним, что прошлая мажорная версия (PowerCLI 11.0) была выпущена в октябре прошлого года.
Давайте посмотрим, что нового в этом обновлении:
1. Улучшения Site Recovery Manager Module.
Теперь средствами модуля VMware.VimAutomation.SRM для PowerCLI обеспечивается мультиплатформенная поддержка в плане управления инфраструктурой Site Recovery Manager. Этот модуль можно использовать с PowerShell Core на платформах MacOS и Linux. Он стал одним из первых специализированных модулей, сконвертированных на другие платформы.
В модуле Storage (VMware.VimAutomation.Storage) было сделано несколько исправлений ошибок и улучшений. Теперь командлет Get-VsanDisk выводит диск vSAN, где находится Witness Component. Также для командлета Start-SpbmReplicationTestFailover больше не нужен параметр VvolId.
Скачать PowerCLI 11.1 можно по этой ссылке. Напомним, что традиционно PowerCLI обновляется следующей командой:
На написание этого поста меня вдохновила достаточно старая, но лично мною обнаруженная совсем недавно статья Романа Гельмана "PowerShell скрипт для автоматической установки ESXi хостов на серверах IBM/Lenovo". Какое-то время назад появилась необходимость автоматизировать процесс развертывания новой инфраструктуры для vSphere для клиента...
Многие из вас используют фреймворк VMware PowerCLI для автоматизации операций в виртуальной инфраструктуре (см. статьи нашего автора Романа Гельмана). Между тем, не все знают, что PowerCLI - это точно такой же поддерживаемый продукт VMware, как и все остальные, с точки зрения обращений в техническую поддержку. То есть, если вы обнаружили некорректное поведение скрипта PowerCLI и не можете выяснить причину - то имеет смысл открыть Support Ticket.
Но чтобы инженеры VMware получили всю необходимую диагностическую информацию, часто оказывается недостаточно сгенерировать support-бандлы для хоста ESXi или сервера vCenter. Иногда нужно залезть глубже, чтобы получить информацию об API-вызовах, например, с помощью инструментов Fiddler или Wireshare.
Но можно сделать все гораздо проще - есть командлет Get-ErrorReport, который соберет для вас всю необходимую диагностическую информацию об ошибке и добавит ее в zip-пакет для отправки как вложения support-тикета. Давайте вызовем ошибку, к примеру, известную проблему PowerCLI, которая возникает при попытке переместить виртуальную машину с помощью Move-VM в виртуальный сервис vApp:
Move-VM : 11/14/2018 1:12:31 PM Move-VM A specified parameter was not correct:
PlacementSpec.relocateSpec.pool
Чтобы получить support бандл для этой ошибки, нужно использовать командлет, у которого есть следующие параметры:
Destination - директория назначения результирующего бандла.
IncludeServerLogs - нужно ли вытягивать логи с сервера, к которому мы подключены.
ProblemDescription - описание проблемы для технической поддержки.
ProblemScript - участок скрипта, который вызывает ошибку.
Таким образом, давайте попробуем вызвать командлет Get-ErrorReport:
$errorCode = {
$appsvr = Get-VM -Name appsvr02
$vapp = Get-VApp -Name DemovApp
Move-VM -VM $appsvr -Destination $vapp
}
Get-ErrorReport -ProblemScript $errorCode -Destination .\Documents\ -ProblemDescription "Using Move-VM to place a VM into a vApp"
Результатом работы сценария будет саппорт-бандл PowerCLI, лежащий в заданной папке:
Если заглянуть внутрь этого zip-пакета, то можно увидеть там следующие файлы:
PowerCLI-Main-Log.svclog
Powershell-Debug-Stream.txt
Powershell-Error-Stream.txt
Powershell-Info-Stream.txt
Powershell-Verbose-Stream.txt
Powershell-Warning-Stream.txt
Это все диагностические файлы, полный комплект которых позволит техподдержке VMware помочь решить вам вашу проблему с PowerCLI.
Кстати, файл с расширением *.svclog можно открыть с помощью инструмента Microsoft Service Stack Trace Viewer. В данном случае мы там увидим, что API-сервис вернул ошибку internal server error с кодом 500:
Для более детального исследования надо уже смотреть внутрь остальных файлов - это работа технической поддержки VMware, куда вы можете оформить запрос, используя материалы вот по этой ссылке.
Знаете ли вы, кто залогинен в ваши виртуальные машины? Сколько из этих учётных записей локальные и сколько доменные? Уверены ли вы, что знаете где именно в вашей виртуальной инфраструктуре определённый пользователь залогинен в данный момент? И наконец последний вопрос, хотите ли знать ответы на эти вопросы? Если ваш ответ «Да», эта статья вам будет очень полезна...
Уважаемые читатели! Некоторые из вас знают, что у нас на сайте есть цикл статей от Романа Гельмана, который разрабатывает различные функции своего PowerCLI-модуля Vi-Module. Они позволяют управлять многими аспектами виртуальной инфраструктуры VMware vSphere с помощью механизмов, недоступных в рамках стандартных средств управления.
Недавно Роман подал свой англоязычный блог ps1code.com на голосование по выбору лучшего блога о виртуализации Top vBlog 2018. И мы от лица всей редакции очень просим проголосовать за Романа - ведь его блог этого действительно достоин!
Спасибо вам заранее.
И вот статьи Романа на нашем ресурсе, чтобы вам удобнее было найти нужную функцию:
Напомним, что VMFS-6 впервые появилась в VMware vSphere 6.5 и с тех пор сильно не изменялась, но если посмотреть на отличия шестой версии от пятой, то они весьма существенные:
Как мы видим, основных отличий четыре:
Доступ к хостам ESXi 6.0 и более ранних к VMFS-6 уже невозможен.
Последний пункт как раз и стал причиной того, что произошло изменение в структуре метаданных томов, а значит VMFS-5 нельзя проапгрейдить до VMFS-6. Альтернативой является создание нового датастора VMFS-6, перемещение туда всех виртуальных машин и удаление старого.
Создаем новый VMFS-6:
Перемещаем туда все виртуальные машины тома VMFS-5 через Storage vMotion или Cold migration и удаляем его:
Как стало понятно, для такого "апгрейда" датастора VMFS-5 вам потребуется еще столько же места на другом датасторе или готовом к форматированию под VMFS-6 хранилище, чтобы переместить туда виртуальные машины.
Чтобы посмотреть текущие версии VMFS с помощью PowerCLI, нужно выполнить команду:
Get-Datastore | Select Name, FileSystemVersion | Sort Name
Перед началом процесса апгрейда нужно ознакомиться со статьей KB "Migrating VMFS 5 datastore to VMFS 6 datastore". Для миграции надо использовать командлет Update-VmfsDatastore, который также делает некоторые проверки перед миграцией.
При этом надо учитывать несколько моментов:
На время миграции нужен датастор VMFS-5 такой же или большей свободной емкости.
Машины перемещаются средствами Storage vMotion на временное хранилище.
Командлет убеждается, что на датасторе не осталось ВМ, миграция которых не поддерживается (это машины с поддержкой SRM, VADP, VRM и Clustering).
Командлет временно отключает механизм Storage DRS при своей работе (и включает по окончании). Если сценарий во время исполнения упадет, то вам придется включать Storage DRS вручную.
Нужно внимательно изучить использование параметров Resume и Rollback в случае появления ошибок.
Посмотрим, какие последовательные действия делает сценарий:
Проверяет наличие ВМ с поддержкой VADP, SMPFT, MSCS/RAC на исходном датасторе.
Убеждается, что датастор доступен со всех хостов.
Валидирует, что временный датастор имеет достаточно емкости для размещения виртуальных машин.
Устанавливает функцию Storage DRS Automation в режим manual.
Размонтирует исходный датастор.
Удаляет старый датастор и создает на его месте новый датастор VMFS-6.
Перемещает ВМ и другие данные со временного датастора на новый.
Восстанавливает настройку Storage DRS Automation.
Теперь, собственно, как использовать командлет Update-VmfsDatastore:
Если у вас что-то пошло не так, вы сможете использовать параметр rollback для отката, а также если возникают ошибки, то после их исправления можно использовать параметр resume.
Больше об использовании командлета Update-VmfsDatastore написано вот тут.
Сотрудники компании VMware написали интересную серию статей об обновлении VMware vSphere, где одной из самых интересных оказалась статья про обновление VMware Tools через PowerCLI. Одновременно там рассматриваются и вопросы обновления виртуального железа ВМ.
Давайте посмотрим, как правильно выполнять эту процедуру. Прежде всего, помните: сначала надо обновить VMware Tools во всех ВМ и только после этого обновлять VM Hardware, а не наоборот!
Итак, давайте пройдем процедуру апгрейда VMware Tools с помощью фреймворка PowerCLI.
1. Если вы посмотрите в интерфейс vSphere Client, то увидите, что на вкладке Summary написана текущая версия VMware Tools а также приведена информация о том, нужен ли их апгрейд.
2. Чтобы увидеть, какие машины нуждаются в апгрейде, а какие имеют последние версии VMware Tools, нужно выполнить команду:
Неудобство здесь в том, что обновление VMware Tools на всех машинах происходит в одно время. Поэтому нужно загнать процесс в цикл, где в один момент будет обрабатываться одна машина:
ForEach ($VM in $OutOfDateVMs){Update-Tools -NoReboot -VM $VM.Name -Verbose}
Более подробную информацию об обновлении VMware Tools через PowerCLI можно получить здесь.
4. Также в настройках виртуальной машины можно поставить галку "Check and upgrade VMware Tools before each power on", которая позволит проверять обновления тулзов и накатывать их при каждой загрузке ВМ:
Запустим команду из п.5, чтобы убедиться, что настройка автоматического обновления выставлена:
7. Теперь настало время обновить VM Compatibility, то есть виртуальное аппаратное обеспечение виртуальной машины (Virtual Hardware). Для этого сначала проверим текущие его версии на всех виртуальных машинах командой:
Get-folder Testing | Get-VM | Select Name, Version | Sort Name
Помните, что апгрейд Virtual Hardware процедура очень ответственная, например, 14-я версия железа совместима только с vSphere 6.7. И перед каждым обновлением VM Hardware делайте снапшот виртуальной машины (он сохраняет конфигурацию виртуального железа), чтобы откатиться к тему в случае проблем гостевой ОС с новым виртуальным железом.
8. Для обновления Virtual Hardware, например, на машине VM08 используйте вот такой скрипт:
Это можно проделать только для выключенной виртуальной машины, и тут не бывает настройки автоматического обновления, так как это процедура ответственная и довольно редкая. Больше о функциях VM Compatibility вы можете прочитать здесь.
На днях компания VMware обновила свой PowerShell-фреймворк для управления виртуальной инфраструктурой, выпустив PowerCLI 10.2.0. Напомним, что о версии VMware PowerCLI 10.1.1 мы писали вот тут. Это уже четвертый релиз в этом году, самое значимое обновление - PowerCLI 10 - вышло в марте.
На самом деле, нового в PowerCLI 10.2 появилось не так уж и много:
Поддержка обновленной версии решения NSX-T 2.2 в модуле VMware.VimAutomation.Nsxt.
Вывод из эксплуатации модуля VMware.VimAutomation.PCloud (он еще доступен, но будет убран в будущем), ранее он управлял функциями vCloud Air.
Обновление функции Get-VIEvent, которое решает проблему с неожиданной ошибкой "Error in deserializing body of reply message for operation ‘RetrieveProperties’".
Иногда бывает, что администратору платформы VMware vSphere требуется выгрузить список всех миграций vMotion виртуальных машин, которые произошли между хостами ESXi в последнее время, а также миграций Storage vMotion между хранилищами.
Для vMotion и SVMotion есть вот такой скрипт от Luc Dekens, который экспортирует миграции за указанное число часов или дней в файл XLS. Запустить его можно такой командой (скрипт точно работает для vSphere 6.5, как пишут здесь):
На выходе будет вот такая табличка (обратите внимание, что миграции поделены на пользовательские и системные от DRS/SDRS, а также в поле Type указано, что это - vMotion или SVMotion):
Также ребята из компании Opvisor несколько адаптировали этот скрипт в разрезе миграций хранилищ Storage vMotion для подсчета общего объема миграций и выложили его тут. Работа этого скрипта дает вот такой результат:
В графическом интерфейсе по управлению отказоустойчивым кластером VMware vSAN на платформе VMware vSphere отсутствует детальная информация о том, какая машина сколько физического пространства потребляет на уровне своих объектов (VMDK, vSWP и т.п.). Между тем, это может иногда оказаться полезным для администраторов, которые анализируют использование хранилищ и их рост.
Вильям Лам написал полезный PowerCLI-крипт, который позволяет такую статистику вывести - VSANVMDetailedUsage.ps1. Этот скрипт использует VSAN Management API, а в частности метод VsanQueryObjectIdentities() и свойство includeSpaceSummary.
Сценарий работает напрямую с хостом ESXi (поэтому надо предварительно установить переменные $ESXiHostUsername= "пользователь" и
$ESXiHostPassword = "пароль"), а в качестве входного параметра для функции Get-VSANVMDetailedUsage надо указать имя кластера vSAN.
Соответственно, использовать скрипт нужно так:
Get-VSANVMDetailedUsage -Cluster "VSAN-Cluster"
В результате вы получите подробную информацию обо всех виртуальных машинах кластера, их дисковых объектах, сколько места они занимают на диске фактически, а также сколько под них зарезервировано:
Кроме того, скрипт можно использовать и для просмотра информации по дисковым объектам конкретной ВМ, например, так:
Наверное все из вас заметили, что недавно компания VMware выпустила новую версию платоформы виртуализации VMware Horizon 7.5 (мы даже сделали об этом специальный раздел). Но не все знают, что вскоре после этого обновился и фреймворк VMware PowerCLI 10.1.1, в котором обеспечивается полная поддержка Horizon 7.5. Напомним, что о прошлой версии PowerCLI 10.1 мы писали вот тут.
Поддержка заключается в том, что теперь нет двух ошибок:
Отсутствует сообщение "insufficient privileges" при соединении с Horizon Connection Server 7.5.
Не выскакивает ошибка "the request channel timed out while waiting for a reply after 00:01:39.9969495", которая раньше появлялась время от времени.
Для обновления фреймворка PowerCLI используйте команду:
7 лет назад мы писали про утилиту ESXi-Customizer, которая позволяет добавлять кастомные драйвера в ISO-образ VMware ESXi. У того же автора (Andreas Peetz) есть еще одна замечательная утилита, которая актуальна и на сегодняшний день - ESXi-Customizer-PS. Актуальна - это значит, что ее последняя версия (от 18 апреля этого года) поддерживает последние версии платформ и фреймворка - vSphere 6.7 и PowerCLI 10.
ESXi-Customizer-PS - это PowerShell-скрипт, который на входе принимает большое число различных параметров, а на выходе дает кастомизированный ISO-образ или офлайн-бандл ESXi:
Сценарий имеет три режима работы:
Создать установочный образ ISO или Offline Bundle напрямую из хранилища VMware Online depot (стандартный режим).
Создать установочный образ ISO или Offline Bundle из скачанного ESXi Offline Bundle (параметр -izip).
Обновление локального ESXi Offline Bundle с помощью ESXi patch bundle из хранилища VMware Online depot (параметры -izip -update).
С помощью этих трех режимов вы можете добавлять бандлы из хранилища V-Front Online Depot, либо любого другого Online Depot, указав его URL, а также можно указывать локальные Offline Bundles и VIB-файлы (собственно, кастомные драйверы или кастомный софт под ESXi).
Об использовании утилиты ESXi-Customizer-PS Alex Lopez снял хороший видеотуториал:
Скрипт можно использовать множеством способов. Давайте рассмотрим основные:
1. Вызов скрипта без параметров.
Например:
.\ESXi-Customizer-PS-v2.6.0.ps1
В этом случае утилита создаст ISO-образ ESXi самой последней версии (6.7 на данный момент) и с самым последним уровнем обновлений. Вы также можете указать конкретный номер версии ESXi, для которой будет получен ISO с последними обновлениями. Например:
-v50 : ESXi 5.0 ISO
-v51 : ESXi 5.1 ISO
-v55 : ESXi 5.5 ISO
-v60 : ESXi 6.0 ISO
-v65 : ESXi 6.5 ISO
-v67 : ESXi 6.7 ISO
Также есть еще три параметра:
-outDir : записывать ISO-образ в указанную директорию.
-sip : не использует последний уровень патчей, а показывает меню, где можно выбрать конкретный патч. Новые патчи будут показаны сверху. Также будут показаны и профили, которые содержат только обновления безопасности и/или VMware Tools.
-ozip : на выходе будет сформирован не ISO, а ESXi Offline Bundle, который можно импортировать в Update Manager, указать вручную для обновления черезesxcli или использовать как входной бандл для следующих кастомизаций.
2. Использование офлайн бандла ESXi Offline Bundle как входного параметра (вместо VMware Online depot).
Например, такая команда позволит вам получить ISO-образ из офлайн-бандла:
Офлайн бандл можно скачать через VMware Patch Download portal. Некоторые вендоры также предлагают свои кастомизированные офлайн-бандлы, например HP. Офлайн бандлы VMware можно найти вот тут. Также вы можете использовать параметры из пункта 1.
3. Добавление дополнительных пакетов из присоединенных хранилищ Online depots.
Например, вот эта команда позволит добавить сетевые драйверы, отсутствующие в образе ESXi 5.5:
Данные драйверы есть в VMware Online depot, так как они есть в составе ESXi 5.0 и 5.1, но были исключены из дистрибутива ESXi 5.5. Важно, что для ESXi 6.0 такая штука для этих драйверов уже не прокатит, так как они были добавлены в черный список (blacklised).
4. Присоединение онлайн-хранилища V-Front Online Depot и других хранилищ.
Здесь надо не забывать указывать номер версии патчируемого гипервизора (в данном случае -v60 - это ESXi 6.0).
7. Расширенные параметры.
У утилиты есть еще несколько расширенных параметров, которые дают еще больше возможностей по кастомизации образов ESXi:
-log : указание пути к кастомному лог-файлу.
-test : тестирование возможности построения или обновления образа без накатывания реальных изменений. Экономит массу времени, так как не перестраивает ISO или zip, а также не качает обновления и образы из VMware Online depot.
-nsc : это опция -noSignatureCheck, которая отключает проверку сигнатуры при выполнении функции экспорта. Ее нужно использовать, если вы получаете ошибку типа "Could not find trusted signer." (пакет с некорректными или отсутствующими сигнатурами).
-ipname, -ipdesc, -ipvendor: задание собственных атрибутов в профиле образа. По умолчанию в имени и описании останутся прежние значения с приставкой "customized", а имя вендора не изменится.
-remove vib1[,...]: удаление одного или нескольких VIB-пакетов из кастомного образа.
Скачать ESXi-Customizer-PS-v2.6.0.ps1 можно по этой ссылке.
В начале марта этого года мы писали о большом релизе VMware PowerCLI 10.0, в котором основной фичей была поддержка работы фреймворка в ОС Linux и Mac OS (см. постер на эту тему). Одновременно с выпуском новой версии платформы VMware vSphere 6.7 обновился и PowerCLI до версии 10.1.
Вот какие основные нововведения появились в PowerCLI 10.1:
Полная поддержка VMware vSphere 6.7
Поддержка решения NSX-T 2.1
Новый модуль VMware.Vim
Новые командлеты для управления бандлами сценариев Auto Deploy
Модуль VMware.Vim - это двадцатый модуль PowerCLI, который дает доступ к последним API платформы, включая те, что используются для управления облачной инфраструктурой VMware Cloud on AWS.
Для Auto Deploy появилось два новых командлета:
Set-ScriptBundleAssociation - позволяет ассоциировать хост ESXi с определенным бандлом сценариев.
Remove-ScriptBundle - соответственно, удаление бандла сценариев.
Напомним, что начиная с версии 10.0, фреймворк PowerCLI не дает возможность работать с недействительным сертификатом. Чтобы разрешить это, надо выполнить команду:
Недавно мы писали о том, что компания VMware выпустила большое обновление фреймворка для управления виртуальной инфраструктурой средствами командных сценариев - VMware PowerCLI 10.0. Напомним, что основным нововведением стала возможность работы с PowerCLI в ОС Linux и Mac OS.
Ну а совсем недавно вышел и постер, посвященный обновленной версии - PowerCLI 10.0.0 Poster:
Постер был обновлен в части командлетов, примеров их использования и полезных ссылок на ресурсы, где можно узнать больше о PowerCLI.
Если вы наблюдали за обновлениями утилит на сайте проекта VMware Labs, то наверное заметили, что в этом году выходили только обновления старых средств, но не появлялось ничего нового.
На днях впервые в этом году появился новый Fling - PowerCLI Preview for NSX-T. Это превью набора PowerCLI командлетов для управления решением NSX-T. Напомним, что это решение для построения сетей software-defined датацентров, как на базе гипервизора VMware vSphere, так и на базе других технологий, таких как контейнеры или средства виртуализации KVM.
Вся функциональность PowerCLI Preview for NSX-T сосредоточена в одном модуле. Для начала работы с данным интерфейсом вам потребуется PowerCLI 10.0.0 (а именно модуль VMware.VimAutomation.Nsxt) и ОС Microsoft Windows. Если вы не видите этого модуля у себя, то посмотрите, как правильно поставить PowerCLI последней версии:
Всего PowerCLI Preview for NSX-T включает аж 280 командлетов, покрывающих различные стороны решения NSX-T. Они были сгенерированы автоматически, поэтому кое-где возможны баги.
Многие из этих командлетов (такие как, например, Get-LogicalSwitch) оперируют логическими сущностями, что очень удобно для написания сценариев без погружения в дебри структур NSX-T (это так называемые high-level командлеты), ну а есть low-level командлеты, такие как, например, Get-NsxtService. После установки посмотреть список командлетов можно командой:
Если вы счастливый обладатель коммутаторов Cisco, то функция Get-VMHostCDP выдаст вам всю необходимую информацию о настройках сети с помощью протокола CDP (Cisco Discovery Protocol). Также информацию, предоставляемую CDP протоколом для одного сетевого адаптера ESXi хоста, можно получить в GUI...
Многие из вас иногда хотят получить так называемый "Support Bundle", содержащий лог-файлы, диагностическую информацию и метрики производительности, который помогает решать проблемы в инфраструктуры VMware vSphere. В первую очередь, этот бандл нужен для предоставления службе технической поддержки VMware GSS (Global Support Services) информации о конфигурации виртуальной среды, чтобы она могла решать возникающие у клиентов проблемы в рамках обращений (тикетов) в техподдержку.
Но, кроме этого, данный бандл может пригодиться и вам, как, например, описано в этой статье для анализа причин "розового экрана смерти" и прочих аномалий.
Давайте рассмотрим основные способы получения support bundle как для серверов VMware vCenter (для Windows или виртуального модуля vCenter Server Appliance, vCSA), так и для серверов VMware ESXi. Кстати, надо учитывать, что после экспорта бандла с логами результирующий файл будет размером 30-300 МБ в зависимости от того, что вы туда включите, а также как давно и интенсивно менялась конфигурация виртуальной среды.
Получение Support Bundle для серверов vCenter
Самый простой способ получить саппорт бандл - это выгрузить его с помощью vSphere Web Client. Для этого нужно выбрать сервер vCenter в иерархии инвентори и выбрать пункт Export System Logs (работает как для обычного vCenter, так и для vCSA):
Далее вам предложат, какие разделы нужно включить в сгенерированный бандл логов:
Если вы используете vCSA, то можно получить логи через веб-интерфейс. Для этого надо перейти по адресу:
https://<ip vcsa>/appliance/support-bundle
И далее ввести логин и пароль root от виртуального модуля vCSA.
После этого support bundle будет сгенерирован и загружен через ваш браузер.
Кроме этого, есть способ получить логи vCSA из Linux-системы с помощью утилиты curl. Для этого нужно выполнить следующую команду:
Здесь SearchTerm - это строка поиска, а LogName - это один из следующих логов:
hostd
vpxa
messages
vmkernel
vmksummary
vmkwarning
Получение Support Bundle для серверов ESXi
По аналогии с получением бандла для сервера VMware vCenter или vCSA, в vSphere Client можно выбрать сервер VMware ESXi и выбрать для него пункт "Export System Logs":
Также можно сгенерировать Support Bundle через тонкий клиент для управления серверами VMware ESXi - Embedded Host Client (он же - просто веб-интерфейс для управления хостами ESXi). Он доступен при соединении с хостом ESXi по ссылке:
https://<ip esxi>/ui
Для генерации саппорт бандла нужно выбрать пункт "Generate support bundle" из контекстного меню хоста:
Помимо этого, его можно сгенерировать и в консоли ESXi. Для этого используется команда vm-support без параметров (подробнее об этом написано в KB 1010705). Чтобы получить Support Bundle нужно в консоли ESXi выполнить следующую команду:
# vm-support
Надо отметить, что у утилиты есть множество разных параметров:
Аналогично получению бандла для vCenter, через PowerCLI можно получить и бандл для хоста ESXi. Соединяемся с хостом, забираем бандл и складываем его в нужную папку:
На днях компания VMware выпустила мажорное обновление своего основного интерфейса для управления виртуальной инфраструктурой с помощью скриптов - PowerCLI 10.0.0. О предварительных возможностях этого релиза мы уже писали вот тут.
Давайте посмотрим, что нового появилось в PowerCLI 10:
1. Настоящая (почти) мульти-платформенность.
Теперь PowerCLI доступен для систем Mac OS и Linux. Единственное требование - у вас должен быть развернут PowerShell Core 6.0.
На данный момент для Мака и Linux поддерживаются только следующие модули:
VMware.VimAutomation.Common
VMware.VimAutomation.Sdk
VMware.VimAutomation.Core
VMware.VimAutomation.Cis.Core
VMware.VimAutomation.Vds
VMware.VimAutomation.Storage
VMware.VimAutomation.StorageUtility
Со временем эта поддержка будет расширена.
2. Изменения обработки сертификатов.
Теперь при соединении с сервером vCenter или ESXi через командлет Connect-VIServer с невалидным сертификатом (например, самоподписанным) PowerCLI выдаст уже не предупреждение, как в прошлых релизах, а ошибку. Чтобы изменить это поведение, вам потребуется использовать командлет Set-PowerCLIConfiguration: