What are virtual machines?

In terms of using virtual machines what does the term "provisioning" mean?

  • I learned about http://www.vagrantup.com/  from an article ( http://www.phptherightway.com/ ), I realized that I don't have an intuitive understanding of what the term "provisioning" means, and how it might be important to me as a web-developer.

  • Answer:

    "Provisioning" in this context means to setup, configure, and deploy a development environment on top of a virtual machine so that it's ready for you to start writing and launching code from it. Given that you read this in a PHP book we can use the example of setting up a LAMP stack on a virtual machine. You could use Vagrant to spin up a virtual server on VMware that has a certain distro and version of Linux installed on it. But to understand what provisioning is - and why automatic provisoners are amazing - let's look at what it would take to do everything by hand. Without provisioning from here you'd have to start the onerous task of using something like apt or another package manager to start setting up and installing PHP (or to go mega cruise control for cool and to compile from source), downloading and installing MySQL, downloading and installing Apache, and then stringing together the whole menagerie in a permissions friendly way so that everything works. This sucks. And if you're running a dev ops organization of any size, it's prohibitively difficult or impossible to set up dev environments like this and keep the cadence necessary for iterating on a webapp or site with the typical week/less release cycles you see at most startups. Instead of manually installing and configuring everything on your own, you can use a provisoner like Chef or Puppet to do all of the above for you according to your instructions on what needs to be installed and how. You would include these instructions in a template that's read by the provisoner (recipes for Puppet, cookbooks for Chef), and the provisoner would handle the heavy lifting behind setting up and deploying the server that Vagrant first spun up according to the template. It may not matter a ton to you as the developer whether someone manually instrumented your environment's creation or whether it was provisioned by something like Chef. But to the devops guys working to supply you with your environment, provisioning with an automatic tool like Puppet or Chef is the necessary and proper way to give you everything you need to edit and run your code.

Andy Manoske at Quora Visit the source

Was this solution helpful to you?

Other answers

It's simpler than you think.  Vagrant creates the machine.. a virtual one..  it uses something like Chef to "provision", which means to install/configure software on it.  So you could provision a VM created by Vagrant, a VM on Amazon's Elastic Cloud, or just a "bare metal" (non-virtual) machine.  Whatever it is, it starts out as a "base image" with some operating system, then you need to provision it with the specific software that the machine needs to run.

Scott Danzig

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.