## Vagrant (OpenSuse and IDEs)

From: andrew cooke <andrew@...>

Date: Wed, 11 Dec 2013 19:12:31 -0300

Vagrant is a wrapper around VMs.  I do almost all my development in VMs, and
it seems like Vagrant could be a big help, automating the process of starting
a new VM and preparing it for the project.

So I thought I'd give it a try.

First problem was that there was no download for OpenSuse, and no "source" to
build from.  However, it turns out that the entire Vagrant download is
completely self-contained (it installs everything it uses in /opt/vagrant) so
you can download the RedHat rpm and install it in OpenSuse with zypper.  It
just works (well, you need to add /opt/vagrant/bin to your path, but that is
all).

Next, I followed the online intro and started up a VM.  It worked nicely,
but...

Second problem is that the VM is headless.  It seems (I checked on IRC) that
you're supposed to:

* Develop locally and ship stuff over for deployment

* Develop remotely on the command line (emacs / vim)

* Use an eclipse plugin

Which is a little disappointing.

In case you're wondering what on earth I want, perhaps I should explain.
VirtualBox has this great mode where windows on the VM and local windows are
all present on your local screen.  So it's quite normal for me to be working
on a screen with konsole open for mail, chrome for web, and Intellij idea for
devloping code.  Of those, only idea will be running on the VM.  This all
works nicely - you can cut + paste between the two "worlds", use the mouse,
drag, etc.  Very integrated.

Now you may ask why I don't run the IDE locally.  The trouble is that the
project is very old and has to run on ancient versions of CentOS.  There are
dependencies that will only install there.  And these include header files and
the like, which the IDE uses.

So the take-away is that vagrant could be quite cool in a modern project,
where you are using similar technology on both the server and development.
But it's not so good when you're using a VM that has a very different
environment.  You'd have similar issues with Linux/Windows, for example - you
wouldn't want to write Windows code on Linux and then push it to a Windows
vagrant "box" for testing.  That just doesn't make sense.

So yeah - disappoining.

But maybe it's configurable?  When I have more time, I will see what can be
done.

Andrew