<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Apache Aurora</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
    <link href="/assets/css/main.css" rel="stylesheet">
	<!-- Analytics -->
	<script type="text/javascript">
		  var _gaq = _gaq || [];
		  _gaq.push(['_setAccount', 'UA-45879646-1']);
		  _gaq.push(['_setDomainName', 'apache.org']);
		  _gaq.push(['_trackPageview']);

		  (function() {
		    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
		  })();
	</script>
  </head>
  <body>
    <div class="container-fluid section-header">
  <div class="container">
    <div class="nav nav-bar">
    <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" alt="Transparent Apache Aurora logo with dark background"/></a>
    <ul class="nav navbar-nav navbar-right">
      <li><a href="/documentation/latest/">Documentation</a></li>
      <li><a href="/community/">Community</a></li>
      <li><a href="/downloads/">Downloads</a></li>
      <li><a href="/blog/">Blog</a></li>
    </ul>
    </div>
  </div>
</div>
	
    <div class="container-fluid">
      <div class="container content">
        <div class="col-md-12 documentation">
<h5 class="page-header text-uppercase">Documentation
<select onChange="window.location.href='/documentation/' + this.value + '/vagrant/'"
        value="0.5.0-incubating">
  <option value="0.22.0"
    >
    0.22.0
      (latest)
  </option>
  <option value="0.21.0"
    >
    0.21.0
  </option>
  <option value="0.20.0"
    >
    0.20.0
  </option>
  <option value="0.19.1"
    >
    0.19.1
  </option>
  <option value="0.19.0"
    >
    0.19.0
  </option>
  <option value="0.18.1"
    >
    0.18.1
  </option>
  <option value="0.18.0"
    >
    0.18.0
  </option>
  <option value="0.17.0"
    >
    0.17.0
  </option>
  <option value="0.16.0"
    >
    0.16.0
  </option>
  <option value="0.15.0"
    >
    0.15.0
  </option>
  <option value="0.14.0"
    >
    0.14.0
  </option>
  <option value="0.13.0"
    >
    0.13.0
  </option>
  <option value="0.12.0"
    >
    0.12.0
  </option>
  <option value="0.11.0"
    >
    0.11.0
  </option>
  <option value="0.10.0"
    >
    0.10.0
  </option>
  <option value="0.9.0"
    >
    0.9.0
  </option>
  <option value="0.8.0"
    >
    0.8.0
  </option>
  <option value="0.7.0-incubating"
    >
    0.7.0-incubating
  </option>
  <option value="0.6.0-incubating"
    >
    0.6.0-incubating
  </option>
  <option value="0.5.0-incubating"
    selected="selected">
    0.5.0-incubating
  </option>
</select>
</h5>
<h1 id="getting-started">Getting Started</h1>

<p>To replicate a real cluster environment as closely as possible, we use
<a href="http://www.vagrantup.com/">Vagrant</a> to launch a complete Aurora cluster in a virtual machine.</p>

<h2 id="prerequisites">Prerequisites</h2>

<ul>
<li><a href="https://www.virtualbox.org/">VirtualBox</a></li>
<li><a href="http://www.vagrantup.com/">Vagrant</a></li>
<li>A clone of the Aurora repository, or source distribution.</li>
</ul>

<p>You can start a local cluster by running:</p>
<pre class="highlight plaintext"><code>vagrant up
</code></pre>

<p>Once started, several services should be running:</p>

<ul>
<li>scheduler is listening on <a href="http://192.168.33.7:8081">http://192.168.33.7:8081</a></li>
<li>observer is listening on <a href="http://192.168.33.7:1338">http://192.168.33.7:1338</a></li>
<li>master is listening on <a href="http://192.168.33.7:5050">http://192.168.33.7:5050</a></li>
<li>slave is listening on <a href="http://192.168.33.7:5051">http://192.168.33.7:5051</a></li>
</ul>

<p>You can SSH into the machine with <code>vagrant ssh</code> and execute aurora client commands using the
<code>aurora</code> command.  A pre-installed <code>clusters.json</code> file refers to your local cluster as
<code>devcluster</code>, which you will use in client commands.</p>

<h1 id="deleting-your-local-cluster">Deleting your local cluster</h1>

<p>Once you are finished with your local cluster, or if you would otherwise like to start from scratch,
you can use the command <code>vagrant destroy</code> to turn off and delete the virtual file system.</p>

<h1 id="rebuilding-components">Rebuilding components</h1>

<p>If you are changing Aurora code and would like to rebuild a component, you can use the <code>aurorabuild</code>
command on your vagrant machine to build and restart a component.  This is considerably faster than
destroying and rebuilding your VM.</p>

<p><code>aurorabuild</code> accepts a list of components to build and update.  You may invoke the command with
no arguments to get a list of supported components.</p>
<pre class="highlight plaintext"><code> vagrant ssh -c 'sudo aurorabuild client'
</code></pre>

<h1 id="troubleshooting">Troubleshooting</h1>

<p>Most of the vagrant related problems can be fixed by the following steps:
* Destroying the vagrant environment with <code>vagrant destroy</code>
* Killing any orphaned VMs (see AURORA-499) with <code>virtualbox</code> UI or <code>VBoxManage</code> command line tool
* Cleaning the repository of build artifacts and other intermediate output with <code>git clean -fdx</code>
* Bringing up the vagrant environment with <code>vagrant up</code></p>

</div>

      </div>
    </div>
  	<div class="container-fluid section-footer buffer">
      <div class="container">
        <div class="row">
		  <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
		  <ul>
		    <li><a href="/downloads/">Downloads</a></li>
            <li><a href="/community/">Mailing Lists</a></li>
			<li><a href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
			<li><a href="/documentation/latest/contributing/">How To Contribute</a></li>     
		  </ul>
	      </div>
		  <div class="col-md-2"><h3>The ASF</h3>
          <ul>
            <li><a href="http://www.apache.org/licenses/">License</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
            <li><a href="http://www.apache.org/security/">Security</a></li>
          </ul>
		  </div>
		  <div class="col-md-6">
			<p class="disclaimer">&copy; 2014-2017 <a href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX photo</a> displayed on the homepage is available under a <a href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
        </div>
      </div>
    </div>

  </body>
</html>
