<!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

				</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>

</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>
