<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <title>Getting Started with ARIA TOSCA • Apache ARIA TOSCA</title>





  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->

  <!-- CSS -->
  <link rel="stylesheet" href="http://localhost:4000/css/owl.carousel.css">
  <link rel="stylesheet" href="http://localhost:4000/css/bootstrap.min.css">
  <link rel="stylesheet" href="http://localhost:4000/css/font-awesome.min.css">
  <link rel="stylesheet" href="http://localhost:4000/css/style.css">
  <link rel="stylesheet" href="http://localhost:4000/css/ionicons.min.css">
  <link rel="stylesheet" href="http://localhost:4000/css/animate.css">
  <link rel="stylesheet" href="http://localhost:4000/css/responsive.css">

  <link rel="stylesheet" href="http://localhost:4000/css/attach/xterm.css">
  <link rel="stylesheet" href="http://localhost:4000/css/attach/style.css">


  <!-- Js -->
  <script src="http://localhost:4000/js/vendor/modernizr-2.6.2.min.js"></script>
  <script src="http://localhost:4000/js/vendor/jquery-1.10.2.min.js"></script>
  <script>window.jQuery || document.write('<script src="http://localhost:4000/js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
  <script src="http://localhost:4000/js/bootstrap.min.js"></script>
  <script src="http://localhost:4000/js/owl.carousel.min.js"></script>
  <script src="http://localhost:4000/js/plugins.js"></script>

  <script src="http://localhost:4000/js/min/waypoints.min.js"></script>
  <script src="http://localhost:4000/js/jquery.counterup.js"></script>


    <script src="http://localhost:4000/js/attach/xterm.js"></script>
    <script src="http://localhost:4000/js/attach/attach.js"></script>






  <script src="http://localhost:4000/js/main.js"></script>
  <script src="http://localhost:4000/js/plugins/jquery.mixitup.min.js"></script>

</head>

  <body id="js-body">

    <!--[if lt IE 9]><div class="upgrade notice-warning"><strong>Your browser is quite old!</strong> Why not <a href="http://whatbrowser.org/">upgrade to a newer one</a> to better enjoy this site?</div><![endif]-->

    <!-- Header Start -->
<header>
<div class="container">
  <div class="row">
    <div class="col-md-12">
      <!-- header Nav Start -->
      <nav class="navbar navbar-default">
        <div class="container-fluid">
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="http://localhost:4000/">
              <img src="http://localhost:4000/images/aria-logo.png" alt="Apache ARIA TOSCA">
            </a>
          </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

              <nav role="navigation" class="menu top-menu">
                  <ul class="nav navbar-nav navbar-right">
	<li class="home"><a href="/">Apache ARIA TOSCA</a></li>


    <li><a href="http://localhost:4000/about/" >About
<<<<<<< HEAD:getting-started/index.html

				</a></li>


    <li><a href="http://localhost:4000/community/" >Community

				</a></li>


    <li><a href="http://localhost:4000/getting-started/" >Getting Started

				</a></li>


    <li><a href="http://ariatosca.incubator.apache.org/docs/html/index.html" target="_blank">Docs

			 <i class="fa fa-external-link" aria-hidden="true"></i>

				</a></li>


    <li><a href="http://localhost:4000/roadmap/" >Roadmap

				</a></li>

=======
			
  
    
    <li><a href="http://localhost:4000/community/" >Community
			
  
    
    <li><a href="http://localhost:4000/getting-started/" >Getting Started
			
  
    
    <li><a href="http://ariatosca.incubator.apache.org/docs/html/index.html" target="_blank">Docs
			
			<i class="fa fa-external-link" aria-hidden="true"></i></a></li> 
			
  
    
    <li><a href="http://localhost:4000/roadmap/" >Roadmap
			
  
>>>>>>> parent of 9c59ff4... Fixing docs location bug:_site/getting-started/index.html
</ul>

              </nav>
            </div><!-- /.navbar-collapse -->
          </div><!-- /.container-fluid -->
        </nav>
      </div>
    </div>
  </div>
</header><!-- header close -->



    <div id="page-wrapper">
      <div id="main" role="main">
	<article class="wrap" itemscope itemtype="http://schema.org/Article">



		<section id="global-header">
			<div class="container">
				<div class="row">
					<div class="col-md-12">
						<div class="block">
							<h1>Getting Started with ARIA TOSCA</h1>
							<p></p>
						</div>
					</div>
				</div>
			</div>
		</section>



		<div class="inner-wrap">
			<div id="content" class="page-content" itemprop="articleBody">
				<section id="intro">
		      <div class="container">
		        <div class="row">
								<h2 id="installation">Installation</h2>

<p>ARIA is <a href="https://pypi.python.org/pypi/apache-ariatosca">available on PyPI</a>.</p>

<p>ARIA requires Python 2.6/2.7. Python 3 is currently not supported.</p>

<p>To install ARIA directly from PyPI (using a <code class="highlighter-rouge">wheel</code>), use::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>pip install --upgrade pip setuptools
pip install apache-ariatosca
</code></pre>
</div>

<p>To install ARIA from source, download the source tarball from
<a href="https://pypi.python.org/pypi/apache-ariatosca">PyPI</a>, extract and <code class="highlighter-rouge">cd</code> into the extract dir, and run::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>pip install --upgrade pip setuptools
pip install .
</code></pre>
</div>

<table>
  <tbody>
    <tr>
      <td>The source package comes along with relevant examples, documentation, <code class="highlighter-rouge">requirements.txt</code> (for installing specifically the frozen dependencies’ versions with which ARIA was tested) and more.</td>
    </tr>
    <tr>
      <td> </td>
    </tr>
    <tr>
      <td> </td>
    </tr>
    <tr>
      <td>ARIA has additional optional dependencies. These are required for running operations over SSH.</td>
    </tr>
    <tr>
      <td>Below are instructions on how to install these dependencies, including required system dependencies per OS.</td>
    </tr>
    <tr>
      <td> </td>
    </tr>
    <tr>
      <td>Note: These dependencies may have varying licenses which may not be compatible with Apache license 2.0.</td>
    </tr>
    <tr>
      <td> </td>
    </tr>
  </tbody>
</table>

<p><strong>Ubuntu/Debian</strong> (tested on Ubuntu14.04, Ubuntu16.04)::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>apt-get install -y python-dev gcc libffi-dev libssl-dev
pip install aria[ssh]
</code></pre>
</div>

<p><strong>Centos</strong> (tested on Centos6.6, Centos7)::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>yum install -y python-devel gcc libffi-devel openssl-devel
pip install aria[ssh]
</code></pre>
</div>

<p><strong>Archlinux</strong>::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>pacman -Syu --noconfirm python2 gcc libffi openssl
pip2 install aria[ssh]
</code></pre>
</div>

<p><strong>Windows</strong> (tested on Win10)::</p>

<div class="highlighter-rouge"><pre class="highlight"><code># no additional system requirements are needed
pip install aria[ssh]
</code></pre>
</div>

<p><strong>MacOS</strong>::</p>

<div class="highlighter-rouge"><pre class="highlight"><code># TODO
</code></pre>
</div>

<p>To install <code class="highlighter-rouge">pip</code>, either use your distro’s package management system, or run::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>wget http://bootstrap.pypa.io/get-pip.py
python get-pip.py
</code></pre>
</div>

<h2 id="getting-started">Getting Started!</h2>

<p>This section will describe how to run a simple “Hello World” example.</p>

<p>First, provide ARIA with the ARIA “hello world”(can be download <a href="https://github.com/apache/incubator-ariatosca/tree/master/examples/hello-world">here</a>) service-template and name it (e.g.
<code class="highlighter-rouge">my-service-template</code>)::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>aria service-templates store examples/hello-world/helloworld.yaml my-service-template
</code></pre>
</div>

<p>Now create a service based on this service-template and name it (e.g. <code class="highlighter-rouge">my-service</code>)::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>aria services create my-service -t my-service-template
</code></pre>
</div>

<p>Finally, start an <code class="highlighter-rouge">install</code> workflow execution on <code class="highlighter-rouge">my-service</code> like so::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>aria executions start install -s my-service
</code></pre>
</div>

<p>You should now have a simple web-server running on your local machine. You can try visiting
<code class="highlighter-rouge">http://localhost:9090</code> to view your deployed application.</p>

<p>To uninstall and clean your environment, follow these steps::</p>

<div class="highlighter-rouge"><pre class="highlight"><code>aria executions start uninstall -s my-service
aria services delete my-service
aria service-templates delete my-service-template
</code></pre>
</div>

  <h2>
      ARIA Console
  </h2>
  <div class="container">
    <div id="terminal-container"></div>
  </div>



<h2 id="license">License</h2>

<p>ARIA is licensed under the
<a href="https://github.com/apache/incubator-ariatosca/blob/master/LICENSE">Apache License 2.0</a>.</p>

		        </div>
		      </div>
		    </section>
				<hr />
				<footer class="page-footer">



				</footer><!-- /.footer -->
				<aside>

				</aside>
			</div><!-- /.content -->
		</div><!-- /.inner-wrap -->

	</article><!-- ./wrap -->
</div><!-- /#main -->



<!-- Wrapper Start -->
<section id="intro" style="padding-top:30px; padding-bottom:30px">
	<div class="container">
		<div class="row">
			<div class="col-md-10 col-sm-12">
				<div class="block">
					<p>
						Apache ARIA TOSCA is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
					</p>
				</div>
			</div><!-- .col-md-7 close -->
			<div class="col-md-2 col-sm-12">
				<div class="block" valign="middle" style="vertical-align: middle;">
					<img src="http://localhost:4000/images/incubator_power_ring.png" alt="ARIA Podling"  >
				</div>
			</div><!-- .col-md-5 close -->
		</div>
	</div>
</section>

<footer>
	<div class="container">
		<div class="row">
			<div class="col-md-12">
				<div class="footer-manu">

					<ul class="menu-item">


						<li><a href="http://localhost:4000/about/" >About</a></li>


						<li><a href="http://localhost:4000/community/" >Community</a></li>


						<li><a href="http://localhost:4000/getting-started/" >Getting Started</a></li>


						<li><a href="http://localhost:4000/roadmap/" >Roadmap</a></li>

					</ul>
				</div>

				<p> Copyright © 2017 The Apache Software Foundation. Licensed under the Apache License, Version 2.0. <br />
				    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation.</p>
			</div>
		</div>
	</div>
</footer>

    </div>

    <script src="http://localhost:4000/js/vendor/jquery-1.10.2.min.js"></script>
    <script src="http://localhost:4000/js/plugins/jquery.mixitup.min.js"></script>
    <script src="http://localhost:4000/js/owl.carousel.min.js"></script>
    <script src="http://localhost:4000/js/jquery.counterup.js"></script>

    <script src="http://localhost:4000/js/main.js"></script>



    <script>

     // AJAX to get contianer uuid from http://127.0.0.1:8000/api/runaria

      var term = new Terminal();
      var url = "ws:/localhost:5000/v1.19/containers/a04417594831/attach/ws?logs=1&stream=1&stdin=1&stdout=1&stderr=1";
      sock = new WebSocket(url);
      term.attach(sock);
      term.open(document.getElementById('terminal-container'));
    </script>

  </body>

</html>
