Использование custom attributes в vCenter

Обновлено 25.07.2021

custom attributes

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами разбирали ошибку обнаружения оборудования в Windows Server 2016, звучала она вот так "Запуск этого устройства невозможен. (код 10)". Идем далее и сегодня я покажу вам, как вы можете оптимизировать свою инфраструктуру ESXI, встроенными методами vCenter, речь пойдет о настраиваемых полях (Custom Attributes). Мы разберем их удобство создания, фильтрацию по ним, я приведу примеры использования из своей практики.

Что такое Custom Attributes ?

Настраиваемые атрибуты (Custom Attributes) - Это своего рода метка, которую вы можете назначать таким объектам как: виртуальная машина, хост ESXI, папка или шаблон. С помощью этой метки вы можете добавлять дополнительную информацию на данные объекты и фильтровать ее по своему усмотрению. Настраиваемые атрибуты очень похожи на теги, но концептуально отличаются тем, что они хранятся в базе данных vCenter.

Настраиваемые атрибуты (Custom Attributes) можно назвать метаданными объекта. Благодаря им вы легко можете группировать ваши объекты по нужным категориям. Приведу пример из практики, мне периодически необходимо получать информацию какие проекты есть в vCenter, сколько и каких ресурсов они используют. Так как инфраструктура в основном у многих людей теперь виртуальная, то и точкой получения информации правильнее брать центр управления гипервизорами, в случае с VMware это vCenter. Благодаря заранее созданным "Custom Attributes" и заполнением информации, все эти данные можно получать буквально за пару минут.

Как создать настраиваемый атрибут через веб-версию vCenter

Первый метод создания "Custom Attributes", это графический интерфейс самого vCenter. Зайдите в веб интерфейс в раздел "Menu - tags & Custom Attributes"

Открываем раздел tags & Custom Attributes vcenter

Выбираем вкладку "Custom Attributes". У меня уже есть несколько созданных ранее. Чтобы добавить новый настраиваемый атрибут, просто нажмите кнопку "New".

Создание Custom Attributes

У вас откроется окно "New Custom Attributes", тут вам необходимо задать имя атрибута и его тип. Под типом подразумевается уровень применения, например Global применяется ко всем объектам инвентори, можно присоединять для папок, свитчей или виртуальной машины.

Советую посмотреть - В чем разница tcp и udp

заполнение данных у создаваемого настраиваемого поля

В списке у вас появится новый настраиваемый атрибут.

Успешно созданный Custom Attributes

После создания атрибутов установите значение атрибута на каждой виртуальной машине или управляемом хосте, если это необходимо. Это значение хранится на vCenter Server, а не на виртуальной машине или управляемом хосте. Используйте новый атрибут для фильтрации информации о ваших виртуальных машинах и управляемых хостах. Если вам больше не нужен настраиваемый атрибут, удалите его. Настраиваемый атрибут всегда является строкой.

Заполнение настраиваемого атрибута через vCenter

Выберите объект для которого вы создавали настраиваемые атрибуты, в моем примере это виртуальная машина Seh-test. В разделе "Custom Attributes" вы увидите все доступные настраиваемые атрибуты, нажмите кнопку "Edit" для редактирования.

Редактирование Custom Attributes

Заполняем нужные поля, обратите внимание, что тут же вы можете создать настраиваемый атрибут, который можно применить к текущему типу объектов или же глобально.

Занесение информации в настраиваемые атрибуты

Как создать настраиваемый атрибут через PowerCLI

теперь давайте сделаем все тоже самое, но уже с помощью оболочки PowerCLI. Как установить данный модуль смотрите по ссылке слева. Далее запускам его и подключаемся к вашему vCenter серверу:

Connect-VIServer vcenter

Далее для создания нового настраиваемого атрибута есть командлет "New-CustomAttribute". Я для тестирования создам атрибут с именем "Year" год и в качестве типа объекта, к которому он будет прикреплен я укажу виртуальную машину. Команда будет выглядеть вот так:

New-CustomAttribute -Name "Year" -TargetType VirtualMachine

Кстати номер 403 в поле Key, это ID атрибута.

  • TargetType - Задает тип объектов, к которым применяется новый настраиваемый атрибут. Допустимые значения: VirtualMachine, ResourcePool, Folder, VMHost, Cluster, Datacenter и $null. Если значение равно $null, настраиваемый атрибут является глобальным и применяется ко всем целевым типам.

Создаем New-CustomAttribute

Удостоверимся, что настраиваемый атрибут появился.

Проверка создания нового Custom Attributes

Как посмотреть настраиваемый атрибут через PowerCLI

Давайте теперь научимся просматривать существующие настраиваемые атрибуты. Для этого мы воспользуемся командлетом Get-CustomAttribute. Я буду выводить список для объекта VirtualMachine.

Get-CustomAttribute -TargetType VirtualMachine

Как посмотреть настраиваемый атрибут через PowerCLI

  • TargetType - Задает целевой тип для фильтрации настраиваемых атрибутов по типу объектов, к которым они могут быть применены. Допустимые значения: VirtualMachine, ResourcePool, Folder, VMHost, Cluster, Datacenter и $null. Если значение равно $null, настраиваемый атрибут является глобальным и применяется ко всем целевым типам.
  • Global - Указывает, что извлекаются только глобальные настраиваемые атрибуты. Глобальный настраиваемый атрибут может применяться как к хостам, так и к виртуальным машинам.
  • ID - Задает идентификаторы настраиваемых атрибутов, которые вы хотите получить. Примечание. Если для параметра Id указан список значений, возвращаемые объекты будут иметь идентификатор, который точно соответствует одному из строковых значений в этом списке.

Если просто используете Get-CustomAttribute без ключей, то получите общий список всех настраиваемых атрибутов.

Использование командлета Get-CustomAttribute

Можно использовать для нескольких объектов, например:

Get-CustomAttribute -TargetType VirtualMachine, Cluster

Можно поискать Custom Attributes по части имени, например:

Get-CustomAttribute -Name "Cus**" -TargetType VirtualMachine

Get-CustomAttribute поиск атрибута

Как переименовать настраиваемый атрибут через PowerCLI

Для того, чтобы поменять имя у настраиваемого атрибута, вам необходимо воспользоваться командлетом Set-CustomAttribute. Из ключей:

    • Name - Задает новое имя для настраиваемого атрибута
    • CustomAttribute - Задает настраиваемый атрибут, который нужно переименовать
    • Confirm - Если значение равно $true, это означает, что командлет запрашивает подтверждение перед запуском. Если значение равно $false, командлет запускается без запроса подтверждения пользователя.

Я хочу переименовать "Year" в "Date"

Set-CustomAttribute -Name Date -CustomAttribute Year

Как переименовать настраиваемый атрибут через PowerCLI

Или двойная конструкция, где я переименую "Date" в "Time".

Get-CustomAttribute -Name Date | Set-CustomAttribute -Name Time

Использование CustomAttribute

Как удалить настраиваемый атрибут через PowerCLI

Теперь давайте удалим Custom Attribute с именем "Time", для этого используем командлет Remove-CustomAttribute.

Remove-CustomAttribute -CustomAttribute Time

Как удалить настраиваемый атрибут через PowerCLI

Примеры использования

Предположим, что вы хотите получить все значения настраиваемых полей у виртуальной машины или ряда машин, для этого можно воспользоваться вот такой конструкцией:

get-vm -name *seh* |Get-Annotation | ft -AutoSize

Тут я получаю список виртуальных машин, где в имени используется SEH.

Примеры использования Custom Attribute

Заменим значение заказчика:

Set-Annotation -Entity (Get-VM *seh*) -CustomAttribute Customer -Value "Zuev Artem" -Confirm:$false

Массово поменять CustomAttribute

Экспорт и импорт настраиваемых атрибутов

Как я и писал выше все Custom Attribute являются частью БД vCenter, если вы хотите после перемещения виртуальных машин в новый vCenter Server захватить с собой настраиваемые атрибуты, то вам необходимо их экспортировать, а затем импортировать.

  • Экспорт настраиваемых полей. Для экспорта атрибутов я использовал приведенный ниже скрипт. Вам нужно будет добавить столько пар ключ-значение, сколько у вас есть настраиваемых атрибутов.

Add-PSSnapin VMware.VimAutomation.Core

Connect-VIServer -User 'Имя пользователя' -Password 'Пароль' -Server 'Адрес сервера'

$vmlist = get-vm
$Report =@()
foreach ($vm in $vmlist) {
$row = "" | Select Name, Notes, Key, Value, Key1, Value1
$row.name = $vm.Name
$row.Notes = $vm | select -ExpandProperty Notes
$customattribs = $vm | select -ExpandProperty CustomFields
$row.Key = $customattribs[0].Key
$row.Value = $customattribs[0].value
$row.Key1 = $customattribs[1].Key
$row.Value1 = $customattribs[1].value
$Report += $row
}

$report | Export-Csv "C:\temp\CustomAttribute.csv" -NoTypeInformation -encoding unicode

  • Импортирование настраиваемых полей

$NewAttribs = Import-Csv "C:\temp\vms-with-notes-and-attributes.csv"

foreach ($line in $NewAttribs) {
set-vm -vm $line.Name -Description $line.Notes -Confirm:$false
Set-CustomField -Entity (get-vm $line.Name) -Name $line.Key -Value $line.Value -confirm:$false
Set-CustomField -Entity (get-vm $line.Name) -Name $line.Key1 -Value $line.Value1 -confirm:$false
}

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *