37 comments

[ 4.7 ms ] story [ 90.3 ms ] thread
How does vagrant work with the licensing of windows guests? Do you have to use a technet iso or something like that?
I know you can find many bundles on microsoft.com with vagrant file and box ready for you. It's for testing on various versions of Internet Explorer but I guess you can use it for whatever you want.
It's treated the same as any other Windows VM (and thus depends on the product/edition and what channel you acquired the license from).

In practical terms, the proper license would usually be a MSDN subscription; they're intended for development and testing, which is what Vagrant is mostly used for.

(As an aside, the Technet ISOs have been discontinued for a while now; time-limited evaluation licenses are available instead.)

I've tried to figure this out before, but everything I've read suggests that Microsoft doesn't support VM licensing/activation in a meaningful way unless you have Software Assurance, and even then it's kind of confusing.
They really need to make the VMware integration free. Hard to consider paying when something like docker-compose works well.
the problem isn't that vmware integration isn't free. The problem is more that every vmware fusion/workstation upgrade costs a new vagrant license swell, that makes this combination expensive.
Yep. Nailed it. I think I've bought 3 upgrades already...
> `vagrant up` times will be much faster and the amount of disk space used will be significantly reduced. As an anecdotal measure, a small Linux box on my machine went from a 10 second import to less than second. And a Windows box (typically very large) went from a 40 second import also to less than a second.

I tried this, but it does not seem faster to me. All my projects set up on vagrant from halted state (`vagrant halt`) to up (`vagrant up`) take same amount of time as it was with `vagrant 1.7`.

Or I am doing/understand this wrong?

Since they're talking about the "import" maybe they're not talking about from the halted state? Maybe just the initial `vagrant up`?
That's correct. Each time you make a new VM, instead of copying the base box's disk image it creates an new disk image that will only store the differences between your VM's disk and the base box's disk.
Any idea how this feature will work with base box's images that are regularly updated? I've been using ubuntu/trusty64 and it seems to get an update at least once a week.
Base boxes are versioned. You have to keep the old version around if you have any VMs using it.
It concerns imports, not booting.
"SudoAlex" adjacent has the correct answer. We'll make it default at some point in 1.8.x. We decided last minute to remove the default so that any bugs that are found can be flushed out. So far, none on this feature. But yeah, you have to enable it.

After you enable it, you'll have to `vagrant destroy` before you see the benefits though. Linked clones are from scratch.

The announcement is a bit misleading then:

> Linked cloning will happen automatically if your system supports it. Providers other than VirtualBox and VMware can be updated outside of Vagrant to support linked cloning automatically.

Didn't they say Vagrant got replaced by otto?
Not really; official statement from https://www.hashicorp.com/blog/otto.html:

> Vagrant is a mature, healthy project that is continuing to grow every day. We are committed to supporting Vagrant for the foreseeable future and will continue to release new versions. Otto is our vision for the next generation and will be developed alongside Vagrant.

Otto uses vagrant (as well as other hashicorp software) under the hood.
Otto replaces Vagrant for the common use case: if you're just a person who wants to run a personal dev server, they'd like you to move onto Otto.

However, Otto is just a layer on top of Vagrant that automates a lot of the decisions that a dev would usually make. Vagrant is still relevant for other use cases, so they'll continue to develop it as a standalone product, too.

The biggest source of this confusion is the header of Otto's site - https://ottoproject.io/ - where it says "Meet the successor to Vagrant"
It's unfortunate that they announced Otto as the "successor to Vagrant" when in reality it seems Vagrant and Otto solve different, albeit related problems. Otto seems like it's solving the high level issues, to introduce a sort of hive-mind conformity; whereas Vagrant solves the issue of efficiently automating the creation of specific environments. It makes sense then that Otto uses Vagrant to achieve it's goal, but it's a bit confusing to call it a "successor" then. Vagrant is a great piece of tooling, and it's good to see that it lives on despite confusing messaging.

Just reading this announcement, it seems 1.8 is an amazing release. The linked clones by the sounds of it seems like it'll solve on of the major issues I've had with Vagrant. Additionally, this little nugget is hidden under minor features, but should really have a heading of its own:

> Vagrant now automatically installs VirtualBox for a smoother getting started experience on Mac OS X and Windows.

Awesome, kudos!

> Vagrant now automatically installs VirtualBox for a smoother getting started experience on Mac OS X and Windows.

Anyone know if it does this when VMWare is already installed?

This is a dumb default for Windows users that use Hyper-V (like I do). You can't run Hyper-V and Virtualbox at the same time.
This is a dumb default for anyone on any platform that has a virtualisation tool already installed.

But then again, this is the person/organisation that defaults to a bash login shell during provisioningg (which in turn causes the famous "stdin: is not a tty" warning/error), just to avoid having to source some files in their default base box.

Agreed. For those who didn't read to the end of the post they tacked this on the end:

"Vagrant 1.8 is our first major Vagrant release since releasing Otto. There was a lot of concern around the future of Vagrant since announcing Otto as the "successor to Vagrant". Many of the features of Vagrant 1.8 are the result of Otto needing them to reach that goal. Vagrant 1.8 is an example of how Vagrant will continue to improve – in major ways – alongside Otto."

Getting vm clone and local ansible configured took some time, but now provisioning seems to work quite fast. Great!

I'd like to find a way to get Ubuntu to boot faster and Vagrant waiting unnecessarily long for the machine to become available. Judging by VirtualBox console, Vagrant could notice machine readiness a few seconds faster. Also, for a virtual environment 10 secs or more for startup seems a little excessive.

Though this bit is not necessary Vagrant specific...

Looking forward to using the new snapshot functionality to test my Ansible scripts in isolation.

Also, looking through these bits I found this: https://gist.github.com/juanje/3797297

I noticed that for repeatedly installing same packages, like when debugging provisioning, using apt cache on host machine's synced folder speeds up the process immensely.

For someone who doesn't know a lot about this why use vagrant over docker?
Vagrant is a way of setting up virtual machines. For example I am not using docker (yet, it's in progress) but I use Vagrant on my Mac to run an Ubuntu vm for my dev environment. I even use it on my Ubuntu desktop which is running a different version of Ubuntu. I don't have to pollute my mac by installing a bunch of stuff and I get to work in an environment that is more or less identical to my deployment server. You don't use Vagrant for deployment, its just a tool for making sure that everyone on the team is using the same environment. Vagrant just makes it very easy to set up because you have a "Vagrant file" that gets checked into the repo which will automatically set up the vm using shell scripts, Puppet, Chef, etc.

Docker on the other hand is a tool that assists in isolating Linux processes. You might have many VMs running in a private cloud and process isolation makes it simpler and easier to more efficiently utilize computing resources.

It's different levels of VMs. I use Vagrant + Docker. Because docker have some problems on Mac OS with shared folders. So I run a Vagrant image with Ubuntu configured as docker machine. Also I can setup few Vagrant VMS with Docker containers inside, to simulate cluster.