VirtualBox. Как написать скрипт запуска машины и запустить инсталлятор (windows)
Я вижу, что я могу запускать и останавливать виртуальную машину с VirtualBox, используя VBoxManage. Я не уверен, что это инструмент, который мне нужен.
Я пытаюсь написать сценарий, который
- Будет загружаться виртуальная машина (разные версии Windows)
- Запустите специальную часть программного обеспечения (в моем случае установщик) и запишите результаты этого
- сила ВМ
Я знаю о существовании веб-сервисов и API, однако я не смог найти много онлайн о пункте 2.
Я был бы очень признателен за направление то есть я должен использовать vboxmanage, чтобы запускать и останавливать виртуальные машины, а затем запускать установщики другим способом? В качестве альтернативы я должен использовать COM API, если так, какие-либо идеи некоторых примеров о том, как сделать шаг 2?
Совсем не знаком с VirtualBox. Но я могу написать код.
ОБНОВЛЕНИЕ: я должен смотреть на Vagrant или Puppet? Как вы можете догадаться, это набор тестов для инсталляторов, и было бы здорово иметь возможность использовать его повторно.
Спасибо
2 ответа
Вы можете запустить ВМ с
VBoxManage startvm <vm>
и выключите его
VBoxManage controlvm <vm> poweroff
Вы можете выполнять команды на Гость, используя
VBoxManage guestcontrol execute ...
это прекрасно работает для программ командной строки, и вы можете перенаправить вывод на ваш хост. Однако я не уверен, насколько хорошо это работает с приложениями с графическим интерфейсом, такими как обычный установочный пакет Windows MSI. Также немного неясно, как записывать результаты. Записывает ли ваш установщик файл журнала, который вы можете отправить на сетевой ресурс перед выключением виртуальной машины?
Вы также можете сделать снимок виртуальной машины, а затем посмотреть на нее позже
Да, можно написать именно то, что вы описываете. Предположительно, это можно сделать из среды хоста Windows, но, по моему опыту, эти возможности полностью работают только в Linux. (Сценарии также отлично работают в OS X, но вы не можете получить аутентификацию RDP, что делает сценарии в удаленной системе менее интересным процессом.)
Добавив несколько различных прыжков, вы также можете удаленно обновлять гостевые дополнения, устанавливать / удалять программное обеспечение, запускать скрипты Powershell и использовать WUInstall для обновления Windows. Это действительно довольно гладко.
Эрик