У меня возникла задача переехать в новый vCenter. При планировании работ обратил внимание на потребность переноса полей виртуальных машин Custom Attributes, созданных мной.
В моей инфраструктуре используется два дополнительных поля – Administrator, где указываются основной и дублирующий администратор, поле – Nagios, где указывается имя, под которым сервер занесен в систему мониторинга. Данное поле позволяет осуществлять контроль все ли продуктивные виртуальные машины занесены в Nagios.
В отличии от Notes, созданный вручную Custom Attribute хранится в vCenter и при переходе на чистую базу данных не сохраняется.
Поиск быстро выдал пример скрипта на PowerShell для экспорта-импорта данных полей.
Приведу кусочек кода, немного исправленный и используемый мной.
Экспорт (обратите внимание на указание кодировки для атрибутов на кириллице):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$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 |
Импорт:
1 2 3 4 5 6 7 |
$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 } |
Добрый вечер, Виктор! Очень интересный пост, который натолкнул меня к вопросу по переносу боевой среды в новый vCenter без даунтайма. Можно ли как то с Вами связатся и более детально уточнить ваши действия по переносу, а также есть вопросы по мониторингу с помощью nagios.
Спасибо!
Ильяс
ilyas.mustafin@gmail.com
skype: voss-87
Обычно ничего сложного с переносом без даунтайма…
Пишите вопрос в форуме – проясним все что непонятно. Так будет быстрее 😉
Замечаний сразу несколько к этому посту:
1) При большом количестве ВМ командлет Get-VM будет работать медленно. Правильнее использовать Get-View -ViewType VirtualMachine.
2) Notes хранятся в vmx файле, поэтому их переносить отдельно не нужно. Они появятся при регистрации ВМ на новом vCenter.
3) Set-CustomFiled – deprecated. Правильнее использовать Set-Annotation -CustomAttribute
4) Существуют атрибуты, не видимые в интерфейсе клиента, которые могут быть присвоены папкам, кластерам, датацентрам и т.д. Их можно увидеть, вызвав (Get-View CustomFieldsManager).Field
В общем, скоро допишу свою версию и кину ссылку сюда =)
Виктор сейчас в отпуске. Выйдет на связь позже