<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/vagrant">
  <channel>
    <title>Vagrant</title>
    <link>https://www.linuxjournal.com/tag/vagrant</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Vagrant Simplified</title>
  <link>https://www.linuxjournal.com/content/vagrant-simplified</link>
  <description>  &lt;div data-history-node-id="1338833" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/11803f1.png" width="574" height="480" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
I admit it, some tools confuse me. I know they must be amazing, because
programs don't get popular by being dumb (well, reality TV, but that's
another story). I have the same sort of confusion with Vagrant that I
have with Wine, Docker, Chef and countless other amazing tools people
constantly rave about. So in this article, I'm going to break down Vagrant into
its simplest form.
&lt;/p&gt;

&lt;p&gt;
Don't get me wrong, I could follow along with the tutorials and get a
virtual machine running by typing the magic &lt;code&gt;vagrant
up&lt;/code&gt; command. The
thing is, I really don't like magic when it comes to computers. I like
to know what is happening, why it's happening and where to look when
things go wrong. Ultimately that's my goal, to be able to fix it when
it breaks. Without an understanding of how things truly work, it gets
really scary when the magic button quits working.
&lt;/p&gt;


&lt;h3&gt;
What It Is&lt;/h3&gt;

&lt;p&gt;
Simply put, Vagrant is a front end to an underlying virtualization
program. By default, the back-end program is VirtualBox, although Vagrant
can work with other underlying virtualization systems. This realization
was important for me, because the line between what had to be inside
VirtualBox and what Vagrant actually did on its own was murky. If you
use Vagrant, you don't ever need to start VirtualBox—truly. It won't
hurt anything if you do start it, but Vagrant uses VirtualBox more like
a tool than a system.
&lt;/p&gt;

&lt;p&gt;
Another reason this is important is because it means there is no
intermingled dependencies between Vagrant and VirtualBox. By that I mean
you can take your Vagrantfiles to another computer, and it will work
just fine. It simply will use the copy of VirtualBox you have installed
on the new computer and work exactly the same.
&lt;/p&gt;

&lt;h3&gt;
When Does It Make Sense to Use Vagrant?&lt;/h3&gt;

&lt;p&gt;
Much like brushing your teeth with a hairbrush doesn't make much sense,
using Vagrant for setting up your permanent data center might not be
the best idea. Sure, you could use it, but Vagrant really excels at
building VMs very fast and destroying them when you're finished. In fact,
most people use Vagrant for one of two things: creating a development
environment to test their code and creating temporary servers on demand
when the workload requires it.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/vagrant-simplified" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 25 Sep 2015 17:30:13 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1338833 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Vagrant</title>
  <link>https://www.linuxjournal.com/content/vagrant</link>
  <description>  &lt;div data-history-node-id="1338451" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/11684f1.jpg" width="550" height="412" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/richard-delaney" lang="" about="https://www.linuxjournal.com/users/richard-delaney" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Richard Delaney&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
How many times you have been hit by unit tests failing because of environment
differences between you and other team members? How easy is it to build
your project and have it ready for development? Vagrant provides a
method for creating repeatable development environments across a range of
operating systems for solving these problems. It is a thin layer that sits
on top of existing technologies that allows people working on a project
to reproduce development environments with a single command: &lt;code&gt;vagrant
up&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
Vagrant is open-source software, and it sees lots of contributions
from its community in every release. It was first released in 2010. Its
founder Mitchell Hashimoto founded the company HashiCorp to work on
Vagrant and a number of other DevOps tools in November 2012. HashiCorp
has since released a number of other tools that are worth checking
out, such as Packer, Consul and Serf. These are for different areas of the
development lifecycle.
&lt;/p&gt;

&lt;p&gt;
Vagrant uses virtual machines from various providers. It allows for easy
configuration using a Vagrantfile. This allows development teams to
set up the virtual machine the same way every time in a programmable
fashion. This repeatability encourages developers to tear down and
bring up environments more often. The development environment that all
team members are developing against now can be "stored" in the version
control system in such a way that anyone (new or otherwise) can have an
environment set up after issuing a single command. 
&lt;/p&gt;

&lt;p&gt;
Continuous integration
systems can use the same method. Building an environment and setting up
a project in this way allows the developer to be sure that once other
environments are provisioned in the same way, the project will run
as it did in development. Environment-specific unit test failures is a
class of problems completely removed by Vagrant.
&lt;/p&gt;

&lt;p&gt;
Vagrant takes the building and provisioning of your software from tribal
knowledge within your team to a reproducible provisioning script that
is stored alongside your code. Others can read your Vagrantfile and
provisioning scripts and have your project working on their system in
minutes. This helps integrate new developers into your team quickly. It
is easier to enable cross-team development within a larger company as
it's easier to get up and running with a project. It also allows designers
or technical writers to get quick access to your project without having
to know any technical details about how to set up your project.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/vagrant" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 13 Oct 2014 21:54:37 +0000</pubDate>
    <dc:creator>Richard Delaney</dc:creator>
    <guid isPermaLink="false">1338451 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Using Salt Stack and Vagrant for Drupal Development</title>
  <link>https://www.linuxjournal.com/content/using-salt-stack-and-vagrant-drupal-development</link>
  <description>  &lt;div data-history-node-id="1085109" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/druplicon.large_%20%281%29.png" width="100" height="100" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/ben-hosmer" lang="" about="https://www.linuxjournal.com/users/ben-hosmer" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Ben Hosmer&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
What if, just like Bill Murray in &lt;em&gt;Groundhog Day&lt;/em&gt;, you could wake up
to a fresh and identical development environment completely free of
yesterday's experiments and mistakes?
Vagrant lets you do exactly that.
&lt;/p&gt;

&lt;p&gt;
Or, what if, like Jake Epping in Stephen King's &lt;em&gt;11/22/63&lt;/em&gt;, you could make
changes and script the past without fear, play around with some new
Drupal modules, and quickly reset everything just by leaving and then
walking back down the stairs of the pantry again?
&lt;/p&gt;

&lt;p&gt;
Would you like to automate the creation and installation of a pristine
Drupal environment, instead of manually installing Apache, PHP and all
of the needed libraries?
&lt;/p&gt;

&lt;p&gt;
Recently, I read a post from Treehouse
Agency titled, &lt;a href="http://treehouseagency.com/blog/steven-merrill/2011/11/02/end-works-my-machine-surprises-vagrant"&gt;"End 'Works on My Machine' Surprises with
Vagrant"&lt;/a&gt;,
which is about using Vagrant and Puppet for Drupal development. You may have seen
it as well on &lt;a href="http://planet.drupal.org"&gt;Drupal Planet&lt;/a&gt; and wondered
about the benefits described there.
&lt;/p&gt;

&lt;p&gt;
This is a great technique that outlines using various tools to 
build a consistent development environment quickly that is repeatable and
shareable with everyone on your team.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Linux Journal&lt;/em&gt; also recently featured &lt;a href="http://www.linuxjournal.com/content/introducing-vagrant"&gt;an
article that introduced Vagrant&lt;/a&gt;.
After you're finished here, I urge you to
go read that one too, because it offers more general information about
Vagrant itself.
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://saltstack.org"&gt;Salt Stack&lt;/a&gt; is a tool similar
to Puppet, but it's powered by Python, instead of Ruby. If you are interested
in standalone Salt installation and use, check out my &lt;a href="http://www.linuxjournal.com/content/getting-started-salt-stack-other-configuration-management-system-built-python"&gt;November
2012 &lt;em&gt;LJ&lt;/em&gt; article on that topic&lt;/a&gt;,
where I introduce Salt Stack and show how
to install it to control one or thousands of other machines. I won't
go in depth into Salt's installation here, because Salty-Vagrant takes
care of all of that for you.
&lt;/p&gt;

&lt;p&gt;
I've been using Salt,
&lt;a href="http://vagrantup.com"&gt;Vagrant&lt;/a&gt; and a Vagrant gem called
&lt;a href="https://github.com/saltstack/salty-vagrant"&gt;Salty-Vagrant&lt;/a&gt; for Drupal
development quite a bit lately. I've found that having a standard
configuration that mirrors my development, testing, staging and
production environments has streamlined my workflow and helped prevent
a lot of the unknowns between different stages of the Drupal development
life cycle. I've been able to minimize a lot of the errors and headaches
that come with integrating multiple software stacks
and speed up my workflow too.
&lt;/p&gt;

&lt;p&gt;
I also enjoy being able to try new things quickly and easily without
spending hours reconfiguring and re-installing the entire software stack
needed for Drupal development.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/using-salt-stack-and-vagrant-drupal-development" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 20 May 2013 21:21:52 +0000</pubDate>
    <dc:creator>Ben Hosmer</dc:creator>
    <guid isPermaLink="false">1085109 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
