This file is indexed.

/usr/share/doc/ansible-tower-cli/html/quickstart.html is in ansible-tower-cli-doc 3.2.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Quick Start &#8212; tower-cli  documentation</title>
    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="_static/mathjax/MathJax.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="API Reference" href="api_ref/index.html" />
    <link rel="prev" title="Installation" href="install.html" /> 
  </head>
  <body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="api_ref/index.html" title="API Reference"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="install.html" title="Installation"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="index.html">tower-cli  documentation</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="quick-start">
<h1>Quick Start<a class="headerlink" href="#quick-start" title="Permalink to this headline"></a></h1>
<p>This chapter walks you through the general process of setting up and using Tower CLI. It starts with CLI usage
and ends with API usage. For details, please see API and CLI references in subsequent chapters.</p>
<p>It is assumed you have a Tower backend available to talk to and Tower CLI installed. Please see ‘Installation’
chapter for instructions on installing Tower CLI.</p>
<p>First of all, make sure you know the name of the Tower backend, like <code class="docutils literal"><span class="pre">tower.example.com</span></code>, as well as the
username/password set of a user in that Tower backend, like <code class="docutils literal"><span class="pre">user/pass</span></code>. These are connection information
necessary for Tower CLI to communicate to Tower. With these prerequisites, run</p>
<div class="code bash highlight-default"><div class="highlight"><pre><span></span>$ tower-cli config host tower.example.com
$ tower-cli config username user
$ tower-cli config password pass
</pre></div>
</div>
<p>The first Tower CLI command, <code class="docutils literal"><span class="pre">tower-cli</span> <span class="pre">config</span></code>. writes the connection informations to a configuration file
(<code class="docutils literal"><span class="pre">~/.tower-cli.cfg</span></code> in this case), and subsequent commands and API calls will read this file, extract connection
information and talk to Tower as the specified user. See details of Tower CLI configuration in API reference and
<code class="docutils literal"><span class="pre">tower-cli</span> <span class="pre">config</span> <span class="pre">--help</span></code>.</p>
<p>Then, use Tower CLI to actually control your Tower backend. The CRUD operations against almost every Tower resource
can be done using Tower CLI. Suppose we want to see the available job templates to choose for running:</p>
<div class="code bash highlight-default"><div class="highlight"><pre><span></span>$ tower-cli job_template list
</pre></div>
</div>
<p>A command-line-formatted table would show up, giving general summary of (maybe part of) the available job templates.
Note the actual HTTP(S) response is in JSON format, you can choose to see the JSON response itself instead using
<code class="docutils literal"><span class="pre">--format</span></code> flag.</p>
<div class="code bash highlight-default"><div class="highlight"><pre><span></span>$ tower-cli job_template list --format json
</pre></div>
</div>
<p>Other than normal resource CRUD operations, Tower CLI can be used to launch and monitor executable resources like
job templates and projects. Suppose we have had the ID of the job template we want to execute from the previous
<code class="docutils literal"><span class="pre">list</span></code> call, we can launch the job template by:</p>
<div class="code bash highlight-default"><div class="highlight"><pre><span></span>$ tower-cli job launch -J &lt;ID of the job template&gt; --monitor
</pre></div>
</div>
<p>This command will POST to Tower backend to launch the job template to be executed, and monitor the triggered job
run by dumping job stdout in real-time, just as what Tower UI does.</p>
<p>The best CLI help you can get is from <code class="docutils literal"><span class="pre">--help</span></code> option. Each Tower CLI command is guaranteed to have a <code class="docutils literal"><span class="pre">--help</span></code>
option instructing the command hierarchy and detailed usage like command format the meaning of each available
command option. Use <code class="docutils literal"><span class="pre">--help</span></code> whenever you have questions about a Tower CLI command.</p>
<p>Under the hood, Tower CLI is composed of an API engine and a wrapper layer around it to make it a CLI. Using API
of Tower CLI gives you finer-grained control and makes it easy to integrate Tower CLI into your python scripts.</p>
<p>The usage of Tower CLI’s API is two-phased: get resource and call its API. First you get the type of resource
you want to interact with.</p>
<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">tower_cli</span>

<span class="n">res</span> <span class="o">=</span> <span class="n">tower_cli</span><span class="o">.</span><span class="n">get_resource</span><span class="p">(</span><span class="s1">&#39;job_template&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>Due to legacy reasons, we use a non-traditional way of importing resource class, <code class="docutils literal"><span class="pre">tower_cli.get_resource</span></code>.
Alternatively, you can use the old way by using import alias:</p>
<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">tower_cli.resources.job_template</span> <span class="kn">import</span> <span class="nn">Resource</span> <span class="k">as</span> <span class="nn">JobTemplate</span>

<span class="n">res</span> <span class="o">=</span> <span class="n">JobTemplate</span><span class="p">()</span>
</pre></div>
</div>
<p>Then, interaction with Tower would be as easy as straight-forward resource public method calls, like</p>
<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="n">jt_list</span> <span class="o">=</span> <span class="n">res</span><span class="o">.</span><span class="n">list</span><span class="p">()</span>
<span class="n">tower_cli</span><span class="o">.</span><span class="n">get_resource</span><span class="p">(</span><span class="s1">&#39;job&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span><span class="n">job_template</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">monitor</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>More API usage can be found in API reference.</p>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="install.html"
                        title="previous chapter">Installation</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="api_ref/index.html"
                        title="next chapter">API Reference</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="_sources/quickstart.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="api_ref/index.html" title="API Reference"
             >next</a> |</li>
        <li class="right" >
          <a href="install.html" title="Installation"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="index.html">tower-cli  documentation</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2017, Ansible by Red Hat.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.5.
    </div>
  </body>
</html>