Как импортировать OVF и OVA шаблон в vCloud Director

Обновлено 29.07.2018

vmware logo

Доброго времени суток! Уважаемые читатели и гости лучшего блога, о Vmware технологиях Pyatilistnik.org. Облака, облака, в 21 веке, это слово обрело новое значение, это уже не пушистые и мягкие, белые подушки на небе, а высокотехнологичные сервисы по обработке данных. Многие организации уже перенесли и переносят туда свои сервисы, доверяя свой бизнес таким компаниям, как Microsoft или Vmware. Моя организация не исключение, и мы арендуем некоторые мощности в Цоде Dataline. Там облака построены на технологии vCloud Director, о которой я уже рассказывал. Сегодня я хочу рассказать, как без дополнительной инфраструктуры, вы можете перенести или мигрировать вашу виртуальную машину в облако Vmware. Я буду импортировать OVF или OVA шаблон в vCloud Director в Dataline Цод.

Процесс переноса виртуальной машины в облако vCloud Director

Существует два вида переноса виртуальных машин между вашей локальной инфраструктурой и удаленным облаком:

  • Использование инфраструктуры VMware vCloud Connector и VMware vCloud Extender - данный метод подойдет для постоянного переноса и миграции ваших ресурсов в облако.
  • Ручное импортирование шаблонов виртуальных машин OVF или OVA - подойдет при нескольких миграциях, дабы не устанавливать дополнительную инфраструктуру.

Я в данной статье расскажу именно, о втором методе, о первом я хочу сделать отдельную статью, так как она будет довольно таки масштабной. И так, первым делом вам необходимо:

Ручной импорт OVF в vCloud Director

Мы будем использовать веб-интерфейс, как при создании виртуальной машины в vCloud Director. Откройте вкладку "My Cloud", выберите пункт vApps и нажмите кнопку "Add vApp from OVF"

импортирование виртуальной машины в облако Vmware

У вас откроется мастер по переносу в облако vCloud Director, тут будет два варианта:

  • URL - предполагается, что вы поместите вашу виртуальную машину в формате OVF или OVA на веб сервис или ftp. Тут вам нужно указать прямую ссылку.
  • Local file - тут вы укажите путь до локального файла или файла лежащего на UNC (сетевой шаре), и ваш компьютер будет работать как proxy сервер.

Локальное импортирование виртуальной машины в vCloud Director

Вот так вот выглядит пример http пути до шаблона OVF, при первом методе импортирования.

http импорт vm в vCloud Director

При выборе второго метода, вам нужно, через кнопку "Browse" указать путь до вашего OVF файла. В моем случае это тестовая виртуалка с именем "Test"

локальный импорт OVF в vCloud Director

Как только вы определились с методом переноса, нажмите "Next"

перенос ovf в vCloud Director

На следующем шаге, если проблем нет с OVF файлом, то вы получите содержимое виртуальной машины, в моем случае vCloud Director видит, что есть название "test" , два жестких диска с "thin provisioned".

определение виртуальных дисков при импорте в vCloud Director

Далее вам необходимо задать имя виртуальному контейнеру vApp и указать в каком виртуальном датацентре (Virtual Datacenter) вы будите разворачивать ваш сервер.

Задаем имя vApp в vCloud Director

Следующим шагом, будет выбор датастора, на который вы будите разворачивать ваш сервер.

ВЫбор виртуального стораджа в vCloud Director

Далее, вы задаете имя компьютера и указываете к какому виртуальному коммутатору его подключить.

Выбор виртуального коммутатора в vCloud Director

На предпоследнем шаге мастера по импорту OVF шаблона в vCloud Director, вам дадут возможность задать нужное вам количество виртуальных процессоров, оперативной памяти и размер виртуальных дисков.

Выбор виртуального оборудования в vCloud Director

Проверяем сводную информацию по импортированию и нажимаем "Finish"

Окно с общей информацией о импорте в vCloud Director

Начинается копирование данных в облако Vmware.

Передача VM в vCloud Director

Как только файлы будут переданы начнется импорт vApps.

Импорт vApps vCloud Director

Хочу отметить, что при таком графическом методе, у меня возникали проблемы при переносе виртуальных машин большого объема, свыше 130 ГБ и выскакивали ошибки, по типу: System error (unknown exception) и Failed to send http data, она решалась использованием инфраструктуры VMware vCloud Connector и VMware vCloud Extender или ручным переносом OVF файлов, через облачного провайдера

Failed to send http data

System error (unknown exception)

Как только файлы виртуальной машины импортированы, производим тестирование нашего vApps.

Тестируем импортированную VM в vCloud Director

Импорт OVF в vCloud Director через VMware OVF Tool

VMware OVF Tool - это утилита командной строки Windows, которую вы устанавливаете, она очень удобно позволяет использовать ее в различных сценариях или скриптах, например, на powershell.

Откройте утилиту VMware OVF Tool в командной строке или оболочке powershell и введите вот такую команду:

ovftool.exe "C:\Temp\OVF\OVF\test.ovf" "vcloud://testovfimport:Password@dcloud.ru/cloud?org=Имя организации&vdc=Имя виртуального datacenter&catalog=виртуальный датастор&vapp=имя, которое будет у vApps"

  • "C:\Temp\OVF\OVF\test.ovf" - это локальное расположение моего файла
  • vcloud - это адрес куда нужно подключаться, он состоит из разных параметров
  • testovfimport - это логин для доступа к облаку vCloud Director
  • Password - пароль для доступа к облаку vCloud Director
  • dcloud.ru/cloud - адрес подключения
  • org= - имя организации, можете посмотреть в меню "Administration".
  • vdc= - Имя виртуального, можете посмотреть в меню "Administration".

Имя организации в vCloud Director

  • catalog= - виртуальный датастор, можете посмотреть в "Storage Policies'.

Список дисков в vCloud Director

  • vapp=имя, которое будет у vApps, задаете какое вам угодно.

Выполняю команду в VMware OVF Tool. Начинается подключение к облаку vCloud Director. Проверяется файл манифест, который содержит все настройки и хэш суммы. Если проблем нет, то начнется передача данных (Disk progress)

VMware OVF Tool импорт виртуалки в VMware OVF Tool

Заметил такой глюк, что если вашем пароле к vCloud Director присутствуют такие символы, как `~", то у вас будет появляться ошибка: Missing media, vappTemplate, or vapp key in locator

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

Missing media, vappTemplate, or vapp key in locator

Так же утилита VMware OVF Tool позволяет использовать скрипты powershell, вот вам пример такого:

param (
[Parameter(Mandatory=$true)]
[string]$FILE_TO_UPLOAD,
[Parameter(Mandatory=$true)]
[string]$FILE_FILENAME_IN_VCA,
[switch]$ISvappTemplate = $false,
[switch]$SaveConfig = $false,
[switch]$ClearConfig = $false
)
# Global variables
$OVFTOOL = "$env:programfiles\VMware\VMware OVF Tool\ovftool.exe"
$Config = "$env:userprofile\vCloudAir\vCloud-air.conf"
if(!(Test-Path $OVFTOOL)){
throw "ovftool.exe was not found!
#
###
Hey Yo!
What's UP - Something went wrong
Couldn't find ovftool.exe in it default location!
Have you installed it, why not ? https://www.vmware.com/support/developer/ovf/
You claim to have... hmm happy hacking then
###
#
"
}
if($ISvappTemplate -eq $true){
$vappType = "vappTemplate"
$vCloudTemplate = "true"
}else{
$vappType = "vapp"
$vCloudTemplate = "false"
}
#Delete config if $ClearConfig is true
if($ClearConfig -eq $True){
del $config
}
#Get input from console if config files doesn't exist or get it from file if file exists
if(!(Test-path $Config)){
# vCloud Air On-Demand VCD URL
$VCA_URL = Read-Host "Enter your url for vCloud Air"
# VCD Org Name
$VCA_ORG_NAME = Read-Host "Enter your org name"
# VCD VDC Name
$VCA_ORG_VDC_NAME = Read-host "Enter your VDC name"
# VCD Catalog Name
$VCA_CATALOG_NAME = Read-Host "Enter your catalog name"
}elseif(Test-path $Config){
$File = gc $Config
$VCA_URL = $File[0]
$VCA_ORG_NAME = $File[1]
$VCA_ORG_VDC_NAME = $File[2]
$VCA_CATALOG_NAME = $File[3]
}
#Save input to config file
if($SaveConfig -eq $True){
if(!(Test-path $Config.TrimEnd("vCloud-air.conf"))){New-Item $Config.TrimEnd("vCloud-air.conf") -type directory}
if(!(Test-path $Config)){New-Item $Config -type file | out-null}
$VCA_URL > $Config
$VCA_ORG_NAME >> $Config
$VCA_ORG_VDC_NAME >> $Config
$VCA_CATALOG_NAME >> $Config
}
#Upload data
if($FILE_TO_UPLOAD.Split(".")[($FILE_TO_UPLOAD.Split(".").length)-1] -match "iso"){
&${OVFTOOL} ${FILE_TO_UPLOAD} vcloud://${VCA_URL}?org=${VCA_ORG_NAME}"&"vdc=${VCA_ORG_VDC_NAME}"&"catalog=${VCA_CATALOG_NAME}"&"media=${FILE_FILENAME_IN_VCA}
}elseif($FILE_TO_UPLOAD.Split(".")[($FILE_TO_UPLOAD.Split(".").length)-1] -match "ovf"){
&${OVFTOOL} --acceptAllEulas --skipManifestCheck --vCloudTemplate=$vCloudTemplate --allowExtraConfig ${FILE_TO_UPLOAD} vcloud://${VCA_URL}?org=${VCA_ORG_NAME}"&"vdc=${VCA_ORG_VDC_NAME}"&"catalog=${VCA_CATALOG_NAME}"&"${vappType}=${FILE_FILENAME_IN_VCA}
}elseif($FILE_TO_UPLOAD.Split(".")[($FILE_TO_UPLOAD.Split(".").length)-1] -match "ova"){
&${OVFTOOL} --acceptAllEulas --skipManifestCheck --vCloudTemplate=$vCloudTemplate --allowExtraConfig ${FILE_TO_UPLOAD} vcloud://${VCA_URL}?org=${VCA_ORG_NAME}"&"vdc=${VCA_ORG_VDC_NAME}"&"catalog=${VCA_CATALOG_NAME}"&"${vappType}=${FILE_FILENAME_IN_VCA}
}
Скачать готовый скрипт powershell для импорта виртуальной машины в облако vCloud Director, спасибо автору https://michaelryom.dk/ovftool-wrapper-for-vcloud-air/?doing_wp_cron=1532609258.1365499496459960937500
Когда запустите скрипт, у вас будут выдаваться поля для заполнения:
  • FILE_TO_UPLOAD - тут указываете полный путь до файла OVF
  • FILE_FILENAME_IN_VCA - пишите любое название vApps
  • Enter your url for vCloud Air - задается ваш адрес, в формате login:Password@dcloud.ru/cloud
  • Enter your org name - имя организации
  • Enter your VDC name - имя виртуального датацентра
  • Enter your catalog name - имя виртуального диска

Начнется подключение к вашему облаку и передача файлов. Надеюсь этот сценарий вам сэкономит время. Материал сайта pyatilistnik.org,

Импорт VM через скрипт в vCloud Director

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

One Response to Как импортировать OVF и OVA шаблон в vCloud Director

  1. Евгений:

    Добрый день. Может быть подскажите: как из OVF импортировать несколько дисков на разные датасторы?

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

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