Система управления виртуалками для разработки/тестирования - посоветуйте
Захотелось попробовать использовать виртуальные машины для эмуляции боевого окружения. Сделал тестовую виртуалку и простой набор шелл-скриптов для provisioning. Но захотелось бОльшего функционала. Начал гуглить и увидел, что обычно советуют Vagrant и Virt-Manager. Но примеров со сценарием, близким к приведённому ниже, я не заметил.
Vagrant расстроил Ruby скриптами для конфигурации - я как-то эстетически с Ruby не совместим. Virt-manager пока не смотрел. Оба расстроили необходимостью какой-то конфигурации (для меня идеально, что бы виртуалки лежали в определённом каталоге в моём $HOME, не затрагивая уровней выше, а некая тулза их запускала бы).
Хочется следующего: 1) что бы тулза получала на вход некие параметры (сопоставление пакетов и идентификаторов коммитов соответствующих реп) и на их основе поднимала бы виртуалку, сообщая присвоенный автоматически свободный порт для ssh и порт для http. 2) что бы созданные виртуалки можно было выключать с сохранением на диск. 3) нужно, что бы виртуалкам можно было бы разрешать определённые внешние соединения (остальные должны быть запрещены).
Так вот, вопрос: на что стоит посмотреть для начала? Какой-то из двух вариантов, приведённых выше? Или есть какой-то минималистичный вариант?
Честно говоря, что-то монструозное не люблю. Мне, в принципе, для запуска одной единственной виртуалки сейчас хватает простого шелл-скрипта с аргументами для qemu-system, выполняемого из-под screen. Но хотелось бы как-то автоматизировать работу с версиями одной и той же виртуалки, да и место на диске сэкономить. :)