Development Environments Made Easy
Simple and Powerful
HashiCorp Vagrant provides the same, easy workflow regardless of your role as a developer, operator, or designer. It leverages a declarative configuration file which describes all your software requirements, packages, operating system configuration, users, and more.
Production Parity
The cost of fixing a bug exponentially increases the closer it gets to production. Vagrant aims to mirror production environments by providing the same operating system, packages, users, and configurations, all while giving users the flexibility to use their favorite editor, IDE, and browser. Vagrant also integrates with your existing configuration management tooling like Ansible, Chef, Docker, Puppet or Salt, so you can use the same scripts to configure Vagrant as production.
Works where you work
Vagrant works on Mac, Linux, Windows, and more. Remote development environments force users to give up their favorite editors and programs. Vagrant works on your local system with the tools you’re already familiar with. Easily code in your favorite text editor, edit images in your favorite manipulation program, and debug using your favorite tools, all from the comfort of your local laptop.
Trusted By
Vagrant is trusted by thousands of developers, operators, and designers everyday. Here are just a few of the organizations that choose Vagrant to automate their development environments, in lightweight and reproducible ways.
Источник
tbonesteaks / mac-vagrant-howto.rst
Vagrant on Mac w Virtualbox
NSoT engineers have built Vagrantfiles for you to deploy NSoT software in a multitude of linux environments. This tutorial will help you load a Macintonsh computer (OS X) with Vagrant, Virtual Box, and dependencies so that you can start virtual servers and test the software.
NSoT publishes complete installation instructions for linux distributions, branch versions, and Vagrantfiles in addition to, not an alternative for the pip install method:
Install Brew, VirtualBox, Vagrant and Vagrant-Manager, on a Macintosh 10.10.x system to deploy test versions of NSOT. When done we will be able to load a variety of linux distributions with NSOT pre-configured, as virtual servers inside a test environment.
We will use Vagrant and associated Virtual Server software to build NSoT on a variety of Linux distributions elsewhere in these documents. This guide is to help those unfamiliar with how to install and use Vagrant and Virtualbox, making the Vagrantfiles published more useful.
Vagrant allows us to provision complete virtual machines (Unix, Linux, Mac, or Windows) inside the Mac Operating system as virtual machines. The vagrant virtual servers are configured with a single file (called a “Vagrantfile.”) started with a single command (vagrant up), are contained within a single folder, and can be destroyed with a single command (vagrant destroy). This environment is nicely segregated from your day to day computing, and allows you to test our software in a variety of environments.
You are running a computer with Mac OS X 10.10.x installed.
1 Install Prerequisite Software (XCode)*. 2 Install Brew. 3 Brew Vagrant. 4 “Hello World” Vagrant.
1. Install Prerequisite Software — XCode & XCode Tools:
Click link to Get Xcode —>
Agree to EULA and Install.
Install Prerequisite Software (XCode Tools from Command Line): Open a Terminal (Launchpad —> Other —> Terminal). At the command prompt run the following command to install XCode Tools
- Accept the EULA.
- Agree to install at Prompt.
2. Install Prerequisite Software (Homebrew from Command Line):
Using the terminal, download and install Homebrew with this command:
Run this command from the terminal to update and confirm install of Homebrew:
From Command line run these commands to update Brew and view the version (licenses):
3. Install Vagrant and Virtualbox via Homebrew:
Download, verify, and install VirtualBox:
Download, verify, and install VirtualBox extension pack for your version of virtualbox:
Download, verify, and install Vagrant:
Download, verify, and install Vagrant-Manager:
4. Start a Virtual Ubuntu Server:
Now that we have it all installed, let’s spin up an Ubuntu server, log in to it, play, log out, and then destroy it.
From Command line enter the following to make a sandbox directory, cd into it, and then download the Ubuntu:
Initialize the installation inside the sandbox folder (aka make the Vagrantfile). (You can modify the Vagrantfile and look at it after this step.):
Start the Ubuntu server via Vagrant by typing this at command line:
To login to the new server via ssh, enter the following via command line:
Change what you like. Mess it up if you care to. Once done poking around logout:
To destroy the Ubuntu virtual server installation:
To rebuild from the OS again:
Conclusion: After the login regimen finishes, you should be inside the new server you just created, for the second time. You have built a new server, Destroyed it, and built another in less time than it takes to drink a cup of coffee.
Based on the Vagrant installation guide published here.
Источник
Vagrant для mac os
Vagrant setup for OSX
Vagrant environment for testing and experiments inside OSX running via VMWare.
- Download a fresh copy of OSX installer from AppStore.
- Create a Vagrant OSX box via timsutton/osx-vm-templates
- Use —only=vmware-iso to only use VMWare builder
- Increase the disk size (default is 20480 MB) as installing large packages from Homebrew and elsewhere may take up 20GB pretty quickly
- Remove Parallels and Chef scripts as we won’t need these
- Place the result box in the root of this repo as mac-osx-10-10-vmware.box
- Install Homebrew (which implies having XCode CLI Tools installed)
- Install Brewcask brew install caskroom/cask/brew-cask
- Install other tools: brew install —cask vagrant vmware-fusion
- Install Vagrant VMWare plugin: vagrant plugin install vagrant-vmware-fusion and add license vagrant plugin license vagrant-vmware-fusion license.lic
Boxen & synced folders
Boxen uses file-locking to ensure it’s only running once. This doesn’t work with the default VMWare file-sync mechanism.
This is why we use NFS, but that has a different caveat — each time you run vagrant [up|reload] , Vagrant will try to modify /etc/exports on your host machine, which will by default require your sudo password.
A workaround could be allowing write for all admins on that system & restarting nfsd without password:
Just a pure OSX with no extra mountpoints/provisioners, works out of the box.
Expects ./our-boxen directory in the root, Vagrant will mount it & install accordingly.
Available ENV variables:
- GH_TOKEN — Github token for Boxen
- UNLOCK_BOXEN (empty or 1) — whether to unlock boxen (sometimes necessary when you kill the instance in mid-flight)
- NO_PULL (empty or 1) — whether to pull down latest version of mounted our-boxen or not
This will install latest Homebrew + Brewcask, turn Brewcask into DEV mode and mount any directories named as homebrew-* as taps into the VM.
Источник
Создание новой виртуальной машины за одну минуту или «vagrant up!»
Те, кто раньше сталкивался с созданием виртуальных машин, представляют себе процесс и могут оценить его по времени. Нужно создать саму виртуальную машину, указать для неё необходимые параметры (размер и тип диска, количество оперативной памяти), после этого подключить установочный диск с операционной системой (будь то настоящий оптический привод или образ ISO), дождаться загрузки, запустить установку, дождаться её завершения, отключить установочный диск и перезагрузиться. На всё это может уйти около 20 минут — в каких-то случаях меньше, в каких-то больше, но всё равно это много времени. А если виртуальная машина по каким-то причинам будет удалена, то всё это придётся делать заново.
Vagrant — способ значительно упростить и убыстрить создание новых виртуальных машин. Вместо установочного диска используется специальный box-файл, который автоматически разворачивается в новое виртуальное окружение. После этого с сетевого интерфейса виртуальной машины могут быть перенаправлены порты, может быть выделен IP-адрес, может быть установлено и настроено необходимое ПО. Всё это указывается настройках Vagrant, которые подробно описаны в документации.
Vagrant работает в Linux, Mac OS X, Solaris и Windows.
Для установки Vagrant понадобится менеджер пакетов RubyGems.
Установить RubyGems можно так.
wget -c http://production.cf.rubygems.org/rubygems/rubygems-1.5.0.tgz
tar xvzf rubygems-1.5.0.tgz
cd rubygems-1.5.0
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
Обновим RubyGems. Стоит сделать как после свежей установки, так и в случае, если он уже был установлен.
sudo gem update —system
Теперь установим Vagrant. Тут следует предупредить об особенностях разных версий. Дело в том, что ветка 0.6 поддерживает только VirtualBox 3.2, а новая ветка 0.7 поддерживает только VirtualBox 4.0, без обратной совместимости.
Итак, если у вас VirtualBox 3.2:
gem install —version ‘= 0.6.9’ vagrant
А если новый VirtualBox, то просто ставьте последнюю версию:
gem install vagrant
Теперь нужно скачать box-файл. Загрузим Ubuntu 10.04 Lucid Lynx — 32 бита, 64 бита.
И добавим этот box-файл.
vagrant box add lucid64 lucid64.box
В принципе, эта команда может принимать вместо пути до файла ссылку на него, но я думаю, что надёжнее сохранить box-файл у себя.
Теперь создадим новую директорию для виртуального окружения Vagrant и создадим там файл настроек Vagrantfile.
mkdir my_virtual_env
cd my_virtual_env
vagrant init
Отредактируем Vagrantfile, заменив
config.vm.box = «base»
на
config.vm.box = «lucid64»
Кстати, если планируется использовать только один box-файл, то при его добавлении можно указать в качестве названия просто base (vagrant box add base lucid64.box). В этом случае такая правка Vagrantfile вообще не требуется.
Теперь запустим виртуальную машину.
В первый раз это занимает немного больше времени, поскольку происходит разворачивание виртуального окружения, а затем времени требуется меньше, поскольку требуется просто загрузить виртуальную машину.
Теперь мы можем подключиться к виртуальной машине.
Если нужно выполнять команды от имени суперпользователя, достаточно sudo su (ввод пароля не требуется).
Состояние виртуальных машин можно посмотреть с помощью команды vagrant status.
Виртуальную машину можно поместить в ждущий режим. В этом случае возобновление работы происходит очень быстро. Для этого используется команда vagrant suspend (возобновление работы — vagrant up).
Выключить виртуальную машину можно с помощью vagrant halt. А если виртуальная машина больше не требуется, то удалить её (вместе с диском) можно командой vagrant destroy.
Этого достаточно, чтобы создавать новые виртуальные машины и пользоваться ими. Конечно, есть ещё много возможностей, включая создание своих собственных box-файлов, а также автоматическую установку и настройку программного обеспечения — и об этом можно почитать в документации проекта.
Здорово, что многие вещи можно делать быстрее и проще, чем раньше. И отлично, что можно делать их именно тем способом, который удобен и нравится больше всего.
Источник
OS X, Vagrant и Parallels Desktop. Строим свои коробки с помощью veewee
В этой заметке я хочу поделиться своим опытом по созданию свой Vagrant boxes в OS X с системой виртуализации Parallels Desktop. Если есть интерес, добро пожаловать под cut.
Однако, если вы, как и я, используете Parallels Desktop, возникает проблема. Дело в том, что Parallels и VirtualBox не могут быть запущены одновременно. Поэтому можно воспользоваться провайдером виртуальных машин vagrant-parallels.
Процедура установки и использования довольно подробно описана на странице плагина на Github, но я, на всякий случай продублирую процесс.
Лично я для устанрвки разнообразных полезных приложений использую Homebrew — им и воспользуемся.
В общем-то, все готово для работы. Не хватает самой мелочи — собственно box’ов. На сайте с плагином есть ссылка на devbox, но нам же хочется чего-то более разнообразного и своего.
И тут на сцену выходит veewee. К сожалению, готового пакета veewee нет, поэтому будем собирать сами.
Чтобы не зосорять систему лишними gem’ами, установим rvm:
Ruby готов. Теперь собственно veewee:
Теперь, чтобы начать создавать ящики, нужно установить Parallels SDK, скачав его по ссылке SDK
Скачали, установили, можно приступать.
Для создания ящика предлагается воспользоваться шаблоном. Список шаблонов можно получить так:
Список довольно большой, приводить не буду. Для наших целей воспользуемся старой доброй Ubuntu 12.04 LTS:
Дальше нам предлагается запустить сборку командой veewee parallels build , однако нас постигнет неудача. Хотя, казалось бы, мы использовали шаблон для работы с parallels, данный шаблон пытается установить guest tools для VirtualBox и VMWare, но ничего не знает про Parallels. Исправим этот недостаток:
Здесь необходимо создать файл parallels.sh со следующим содержимым (я подсмотрел в шаблоне для ubuntu-13.10-server-amd64, но там другая проблема, расскажу позже):
Затем редактируем definition.rb , убираем из списка postinstall_files упоминания про virtualbox и vmfusion, и добавляем parallels.sh .
Вот теперь можно приступать:
Можно сходить пообедать, процесс довольно длительный. В конце концов все благополучно завершится и мы увидим примерно следующее:
На этом этапе можно зайти на машину (пароль vagrant ), убедиться, что все нормально, что-нибудь добавить (например поддержку русского). После того, как мы убедились, что все установлено как надо, можно упаковать в коробку для Vagrant.
Но тут нас поджидает еще один подводный камень. При попытке сделать экспорт получаем следующую ошибку:
Это известная ошибка, для ее решения нужно закомментировать строчку optimize_disk в файле gems/veewee-0.3.12/lib/veewee/provider/parallels/box/export.rb (относительно используемой версии gemset’а) — у меня это была 69-я строка.
После этого экспорт отработает штатно, и в текущем каталоге мы увидим наш заветный ящик:
Добавляем его в копилку:
Теперь выбираем место для тестового запуска и стартуем получившийся ящик:
Что и хотели получить.
Теперь про Ubuntu 13.10. Там шаблон практически не требует изменений, надо только в definition.rb раскомментировать строчку для Parallels и, соответственно, закомментировать VirtualBox. Дальше все точно также.
Тем не менее, при попытке сделать vagrant up нашего ящика с 13.10 происходит таймаут ожидания запуска машины, хотя машина успешно стартует. Связано это с ошибкой драйверов Parallels для Linux. Parallels знает об этой ошибке и обещает в ближайшем обновлении ее исправить. Прочитать об этом можно на vagrant-parallels issue tracker
В качестве временного решения предлагается, в момент запуска, помочь vagrant руками: зайти в машину с консоли и перезапустить dhclient на eth0.
Надеюсь, мои несколько сумбурные заметки кому-нибудь пригодятся, и позволят съекономить время.
Источник