Перенос Custom Attributes между VMware vCenter

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

В моей инфраструктуре используется два дополнительных поля  — Administrator, где указываются основной и дублирующий администратор, поле — Nagios, где указывается имя, под которым сервер занесен в систему мониторинга. Данное поле позволяет осуществлять контроль все ли продуктивные виртуальные машины занесены в Nagios.

В отличии от Notes, созданный вручную Custom Attribute хранится в vCenter и при переходе на чистую базу данных не сохраняется.

Поиск быстро выдал пример скрипта на PowerShell для экспорта-импорта данных полей.

Приведу кусочек кода, немного исправленный и используемый мной.

Экспорт (обратите внимание на указание кодировки для атрибутов на кириллице):

$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\vms-with-notes-and-attributes.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
 }
Запись опубликована в рубрике 5.0, 5.1, 5.5, VMware, vSphere с метками , . Добавьте в закладки постоянную ссылку.

4 комментария: Перенос Custom Attributes между VMware vCenter

  1. Ilyas говорит:

    Добрый вечер, Виктор! Очень интересный пост, который натолкнул меня к вопросу по переносу боевой среды в новый vCenter без даунтайма. Можно ли как то с Вами связатся и более детально уточнить ваши действия по переносу, а также есть вопросы по мониторингу с помощью nagios.
    Спасибо!

    Ильяс
    ilyas.mustafin@gmail.com
    skype: voss-87

  2. Mr.Aloof говорит:

    Обычно ничего сложного с переносом без даунтайма…
    Пишите вопрос в форуме — проясним все что непонятно. Так будет быстрее 😉

  3. akamac говорит:

    Замечаний сразу несколько к этому посту:
    1) При большом количестве ВМ командлет Get-VM будет работать медленно. Правильнее использовать Get-View -ViewType VirtualMachine.
    2) Notes хранятся в vmx файле, поэтому их переносить отдельно не нужно. Они появятся при регистрации ВМ на новом vCenter.
    3) Set-CustomFiled — deprecated. Правильнее использовать Set-Annotation -CustomAttribute
    4) Существуют атрибуты, не видимые в интерфейсе клиента, которые могут быть присвоены папкам, кластерам, датацентрам и т.д. Их можно увидеть, вызвав (Get-View CustomFieldsManager).Field

    В общем, скоро допишу свою версию и кину ссылку сюда =)

  4. Андрей вахитов говорит:

    Виктор сейчас в отпуске. Выйдет на связь позже

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

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