fresh starts vm tools

devops/ vagrant

So as a new developer, there’s a lot of questions to ask before you work out where you want to start. What code do I write in? What frameworks do I use? Before those two questions can be answered there is the more local issue of what type of machine do I use to develop on?

The fashion at the moment is to use Apple’s Mac OSX machines, as a ‘Mac’ user for work purposes I can see the attraction, the great screen resolution and linux like terminal. However for people breaking into web development, we don’t always have the budget for an Apple product. Most people will be likely to start on an existing home PCs, which are most likely to be windows based. There is always the option to change the OS to a linux flavour, however that comes with the hassle of trying to get cross compatibility. Dual booting is also an option but some may not like the work involved in setting this up.

As someone who works on a Microsoft Windows machine it has been a bit tricky to handle and develop towards the linux based configurations we see in most hosting environments. I have found that the best solution is to use VM images through Oracle’s Virtualbox and Vagrant by Hashicorp.

To get up and running simply install Virtualbox using Oracle’s installer available at the Virtual Box website. You can then install vagrant on the same machine using the downloadable installer.

Once complete, you should be able to use the terminal or command prompt to automatically download the virtual machine you need. Commands for installing each type of box can be found on Hashicorp’s Atlas website.

For example to create a ubuntu box, simply use:

vagrant init ubuntu/trusty64

You should see this download. When complete, simply start the box using:

vagrant up

Working on a windows machine, you don’t normally get ssh functionality through the ms-dos console. You will need to install a more advanced terminal tool such as putty to get around this. Once you have putty, simply use the vagrant ssh in you dos terminal to see more information on what you need to do next.

vagrant ssh