Доступен (http://www.vagrantup.com/blog/vagrant-1-4.html) релиз Vagrant 1.4 (http://vagrantup.com/), инструментария для упрощения формирования, установки и управления образами виртуальных машин при разработке и тестировании проектов с использованием различных систем виртуализации. В базовой поставке проект предоставляет средства интеграции с VirtualBox, но через подключение плагинов (http://docs.vagrantup.com/v2/getting-started/providers.html) позволяет использоваться и другие платформы виртулизации (VMware, AWS и т.д.). Код проекта (https://github.com/mitchellh/vagrant) распространяется под лицензией MIT.
Vagrant позволяет без лишних усложнений, используя единый конфигурационный файл, сгенерировать готовое к работе окружение для разработки, удовлетворяющее заданным параметрам. Создаваемые окружения содержат преднастроенные компоненты выбранной операционной системы, позволяют подключаться к ним по SSH и копировать данные через совместные папки (shared folders). Для упрощения развёртывания приложений внутри окружений могут быть предустановлены системы Chef и Puppet. В состав окружений также включается полный комплект для запуска и разработки приложений на языке Ruby. Среди известных компаний, использующих в своей работе Vagrant, отмечаются BBC, O'Reilly, Mozilla и Nokia.
Окружения можно создавать на базе различных операционных систем, в том числе Windows, Mac OS X, Ubuntu, Debian, Red Hat Enterprise Linux, CentOS, Arch Linux и Fedora. Например, для создания полностью готового к работе окружения на базе 32-разрядной сборки Ubuntu 12.04 достаточно выполнить команды:
<font color="#461b7e">
vagrant box add precise32 http://files.vagrantup.com/precise32.box
vagrant init precise32
vagrant up</font>
Выпуск Vagrant 1.4 не содержит нарушающих совместимость изменений и может быть использован для прозрачной замены прошлых версий без перестроения окружений. Ключевые улучшения новой версии:
- Поддержка (http://docs.vagrantup.com/v2/provisioning/docker.html) инструментария управления изолированными Linux-контейнерами Docker (http://www.opennet.me/opennews/art.shtml?num=38524) для поддержания runtime-окружений приложений;
- В утилите vagrant обеспечен режим "--machine-readable" для вывода результатов выполнения в формате, пригодном для использования в скриптах автоматизации;
- Обеспечена возможность привязки файлов конфигурации к определённым версиям Vagrant (добавлена директива Vagrant.require_version);
- Средства для синхронизации содержимого директорий внутри виртуального окружения со внешними системами теперь могут быть реализованы в форме плагинов. В частности, уже подготовлены плагины для синхронизации файлов с использованием NFS, rsync и scp.
- Добавлена поддержка возобновления загрузки системного образа с прерванной позиции;
- Добавлена поддержка проверки загруженного системного образа по контрольной сумме, заданной в файле конфигурации или через опцию командной строки;
- Для использования NFS а VirtualBox больше не требуется назначение статического IP-адреса (теперь можно использовать DHCP);
- Решены проблемы со стабильностью при параллельном выполнении нескольких команд "vagrant up";
- В файле конфигурации обеспечена возможность указания нескольких ключей SSH.
URL: http://www.vagrantup.com/blog/vagrant-1-4.html
Новость: http://www.opennet.me/opennews/art.shtml?num=38669
Отлично! Очень полезный инструмент.
Еще ROSA его использует, на сколько я понял.
Вот, а то навыдумывают "виртуалки для одного приложения", состоящие из своих велосипедов...
Vagrant.configure("2") do |config|config.vm.box = "saucy64"
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-s...# manually update: vagrant vbguest (vagrant plugin install vagrant-snap vagrant-vbguest)
if defined? VagrantVbguest
config.vbguest.auto_update = true
config.vbguest.iso_path = "/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso"
endconfig.vm.hostname = "phpdev"
#if Vagrant::Util::Platform.windows?
# config.vm.synced_folder "www", "/var/www", :mount_options => ["dmode=777","fmode=777"], :owner => "vagrant", :group => "vagrant"
#else
# config.vm.synced_folder "www", "/var/www", :nfs => { :mount_options => ["dmode=777","fmode=777"] }
#endconfig.vm.network :private_network, ip: "192.168.10.10"
config.vm.provision :shell, :inline => "echo \"Europe/Kiev\" | sudo tee /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--memory", "512"]
end#config.vm.provision :puppet do |puppet|
# puppet.facter = { "fqdn" => "local.phpdev", "hostname" => "phpdev" }
# puppet.manifests_path = "manifests"
# puppet.manifest_file = "base.pp"
# puppet.module_path = "modules"
# puppet.options = "--verbose --debug"
#endend
Интересно, пощупаем. Всяко лучше, чем вбивать не всегда очевидные команды для vboxmanage и подобных.
тоже его использую, отличная штука. Жаль только, что написан на Ruby :)
А на каком бы хотелось?
> vagrant box add precise32 http://files.vagrantup.com/precise32.boxИ какой символ здесь намекает на то что это ubuntu? Что гарантирует что это на самом деле не скриптованный пентест, который ищет уязвимости в моей локалке, сразу ломает их и не отсылает рута от всего до чего дотянулись руки авторам?
box легко создать из любого образа - используйте свои, уважаемый аноним :)
>> vagrant box add precise32 http://files.vagrantup.com/precise32.box
> И какой символ здесь намекает на то что это ubuntu?А какой не намекает?
Кто нибудь может объяснить смысл этого? Не это не брюзжание. Реально пытался пользоваться, но не понял зачем если все и так нормально разворачивается на девелоперской тачке, а для работы с тестовыми виртуалками это (кажется?) не подходит
Песочница без вреда системе (виртуальное окружение), деплой из коробки на другие сервера при помощи Chef, Puppet, SaltStack, etc..
>Если все и так нормально разворачивается на девелоперской тачкеДалеко не всегда, может отличаться ОС, дистрибутив, версия, окружение. Да и тянуть лишнее не деволоперскую машину не всегда нужно. А еще можно эмулировать SOA.
Или вот еще пример: у тебя штат программистов и один админ, например. Админ пишет бокс, адаптированный к твоим производственным процессам, а программисты разворачивают себе песочницы из этого бокса.Profit:
- человекочасы (программисты (_каждый_ из них) не тратят время на настройку своих собственных песочниц);
- однотипные песочницы -- что запустилось у одного программиста, с большой вероятностью запустится у замещающего;
- можно внедрять в песочницы какие-то собственные наработки;
Не поделитесь UseCase ? Что именно в голом VirtualBox сделать сложнее чем тут ?
>Не поделитесь UseCase ? Что именно в голом VirtualBox сделать сложнее чем тут ?Использую совместно с Intellij Idea, запуск, остановка непосредственно с IDE, весь проект в боксе с кучей специализированных программ библиотек, настроек для подключения нового участника проекта -- достаточно стянуть бокс с файлом настроек по http и на этом всё, у него рабочая среда полностью готова, остается только стянуть последние обновления из hg-репы и приступать к работе.
А настроить в VirtualBox машину с окружением и сделать ova образ для других это не тоже самое ?
> А настроить в VirtualBox машину с окружением и сделать ova образ для
> других это не тоже самое ?Vagrant автоматизирует эти действия (при большом количестве)