Я хочу запустить образ облака Ubuntu на VMWare.
Мне просто нужно знать, как установить свойства OVF таким образом, который VMWare понимает для передачи параметров в cloud-init.
Установите VMWare Player 4.0.4, используя исправление vmware workstation 8.0.2 / player 4.0.2 для патча linux 3.2+ , чтобы обойти компиляцию сбой для виртуального модуля Ethernet.
Скачать Precision-Server-Cloudimg-Amd64.ovf , а также файл Precision-Server-Cloudimg-AMD64.img (сжатый формат QCOW2, 220 МБ)
Конвертировать изображение из От QCOW2 до VMDK:
qemu-img convert -O vmdk precise-server-cloudimg-amd64-disk1.img disk.vmdk
Отредактируйте элемент OVF <File>
, чтобы изменить ovf: href и ovf: size в соответствии с выходными данными qemu-img:
<File ovf:href="disk.vmdk" ovf:id="file1" ovf:size="689569792"/>
Отредактируйте Элемент <Disk>
для установки разреженного формата VMDK и желаемой емкости в байтах (здесь 8 ГБ):
<Disk ovf:capacity="8589934592" ovf:diskId="vmdisk1" ovf:fileRef="file1"
ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#sparse"/>
Удалите все элементы <Property>
, потому что vmplayer не распознает их.
Настройте раздел VirtualHardwareSection, чтобы настроить процессор и оперативную память по вкусу.
Либо запустите OVF в vmplayer, либо преобразуйте в vmx и запустите vmx:
ovftools custom.ovf mymachine.vmx
vmplayer mymachine.vmx
К сожалению, я не могу войти в систему как «ubuntu» в приглашении, потому что свойства OVF не были предоставлено cloud-init. Как мне это сделать?
Этот ответ основан на NoCloud README от CloudInit и дает Вам облако-init на плеере VMware.
Создайте файл "метаданные", с помощью "localhost" как гарантируемое твердости имя хоста для предотвращения тайм-аутов DNS, которые заставляют sudo взять возрасты в локальной среде гипервизора:
local-hostname: localhost
Создайте файл "пользовательских данных" файла для получения информации о CloudInit. Этот пароль наборов к человечности, и просит, чтобы я изменил его на первом входе в систему:
#cloud-config
password: ubuntu
Генерируйте seed.iso из этих файлов:
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
Присоедините "seed.iso" к VM перед первой начальной загрузкой (установите его для соединения на запуске), и когда личинка появляется, также добавьте этот параметр ядра для первой начальной загрузки:
ds=nocloud-net
Машина загрузит и настроит себя. Для будущих начальных загрузок мы должны отредактировать редактирование /etc/default/grub
и выполненный sudo update-grub
для сообщения этого, мы не находимся в EC2 (никакой облачный сервис метаданных):
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0 ds=nocloud"
Я нашел способ сделать Облачные Изображения Ubuntu загрузочными, и поместить мой ответ
Вот суть его:
mount -o loop cloud-image.img /mnt/image
extlinux --install /mnt/image/
echo "DEFAULT /vmlinuz" > /mnt/image/extlinux.conf
echo "APPEND root=/dev/sda init=/usr/lib/cloud-init/uncloud-init" \
"ubuntu-pass=ubuntu ds=nocloud" >> /mnt/image/extlinux.conf
umount /mnt/image
Результатом является в основном загрузочный жесткий диск. Можно преобразовать это использование безотносительно инструментов, которые Вы имеете в наличии для удовлетворения виртуализации, и (как Вы видите APPEND root=/dev/sda
) вещи, возможно, нуждались бы в тонкой настройке в зависимости от того, что Ваше виртуальное аппаратное обеспечение (scsi или язь или sata)...
Этот ответ относится к точному ящеру и описывает способ решения этой проблемы, не прибегая к образу компакт-диска (который я не мог заставить работать с помощью VMware ESX).
Похоже, что Ubuntu Cloud Images теперь содержат загрузочный сектор (что-то, что я не могу вспомнить, они делали ранее). Если вы конвертируете образ в vmdk с помощью qemu-img
и очистите OVF, как описано, вы можете фактически загрузить его в grub без лишних слов. Grub имеет тайм-аут по умолчанию в 5 секунд, поэтому вы должны иметь возможность e
изменить параметры загрузки при первой загрузке, чтобы включить:
init=/usr/lib/cloud-init/uncloud-init ubuntu-pass=ubuntu ds=nocloud-net console=tty0
Это выведет все на tty0, установите пароль для Ubuntu на что-то известно и форсирует «безоблачную» инициализацию. и позволит вам войти с предоставленными учетными данными. Обратите внимание, что командная строка видна всем, кто входит в систему (cat /proc/cmdline
), поэтому вы должны изменить конфигурацию grub после первой загрузки (см. Ниже) и перезагрузиться.
Я имел успех с этой техникой, используя VMware ESX с установленным локально только vncviewer; никакие инструменты VMware, кроме ovftool, не использовались для загрузки ovf в ESX. Предположительно, та же самая техника будет работать с VMware Player.
Чтобы сделать вещи более постоянными, измените /etc/default/grub
и снова добавьте в командную строку add ds = nocloud-net, чтобы не допустить каких-либо дальнейших изменений вашего образа в cloud-init. Запустите update-grub
, а затем закройте его и перезагрузите.