<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>DevStack - eucarc</title>
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="assets/css/bootstrap.css" rel="stylesheet">
    <link href="assets/css/local.css" rel="stylesheet">
    <style type="text/css">
      body { padding-top: 60px; }
      dd { padding: 10px; }
    </style>
    
    <!-- Le javascripts -->
    <script src="../assets/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="../assets/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
  </head>

  <body>

    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="/">DevStack</a>
          <ul class="nav pull-right">
            <li><a href="overview.html">Overview</a></li>
            <li><a href="changes.html">Changes</a></li>
            <li><a href="faq.html">FAQ</a></li>
            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
            <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
          </ul>
        </div>
      </div>
    </div>

    <div class="container">

      <section class="span12">
        <div class="page-header">
          <h2>eucarc <small>EC2 settings</small></h2>
          <p><code>eucarc</code> creates EC2 credentials for the current user as
            defined by <code>OS_TENANT_NAME:OS_USERNAME</code>.
            <code>eucarc</code> sources <code>openrc</code> at the beginning
            (which in turn sources <code>stackrc</code> and <code>localrc</code>)
            in order to set credentials to create EC2 credentials in Keystone.
        </div>
        <dl>

          <dt>EC2_URL</dt>
          <dd>Set the EC2 url for euca2ools.  The endpoint is extracted from the
            service catalog for <code>OS_TENANT_NAME:OS_USERNAME</code>.
            <pre>EC2_URL=$(keystone catalog --service ec2 | awk '/ publicURL / { print $4 }')</pre></dd>

          <dt>S3_URL</dt>
          <dd>Set the S3 endpoint for euca2ools.  The endpoint is extracted from the
            service catalog for <code>OS_TENANT_NAME:OS_USERNAME</code>.
            <pre>export S3_URL=$(keystone catalog --service s3 | awk '/ publicURL / { print $4 }')</pre></dd>

          <dt>EC2_ACCESS_KEY, EC2_SECRET_KEY</dt>
          <dd>Create EC2 credentials for the current tenant:user in Keystone.
            <pre>CREDS=$(keystone ec2-credentials-create)
export EC2_ACCESS_KEY=$(echo "$CREDS" | awk '/ access / { print $4 }')
export EC2_SECRET_KEY=$(echo "$CREDS" | awk '/ secret / { print $4 }')</pre></dd>

          <dt>Certificates for Bundling</dt>
          <dd>Euca2ools requires certificate files to enable bundle uploading.
            The exercise script <code>exercises/bundle.sh</code> demonstrated
            retrieving certificates using the Nova CLI.
            <pre>EC2_PRIVATE_KEY=pk.pem
EC2_CERT=cert.pem
NOVA_CERT=cacert.pem
EUCALYPTUS_CERT=${NOVA_CERT}</pre></dd>

        </dl>
      </section

      <footer>
        <p>&copy; Openstack Foundation 2011-2013 &mdash; An
        <a href="https://wiki.openstack.org/wiki/Programs">OpenStack program</a>
        created by <a href="http://www.rackspace.com/cloud/private_edition/">Rackspace Cloud Builders</a></p>
      </footer>

    </div> <!-- /container -->

  </body>
</html>
