<p>This module does not support change hooks and returns the return code from the program as well as timing information about how long the command was running for.</p>
</div>
<divclass="section"id="copy">
<h2>copy<aclass="headerlink"href="#copy"title="Permalink to this headline">¶</a></h2>
<p>The copy module moves a file on the local box to remote locations.</p>
<p><em>src</em>:</p>
<p>Local absolute path to a file to copy to the remote server</p>
<p><em>dest</em>:</p>
<p>Remote absolute path where the file should end up</p>
<p>This module also returns md5sum information about the resultant file.</p>
</div>
<divclass="section"id="facter">
<h2>facter<aclass="headerlink"href="#facter"title="Permalink to this headline">¶</a></h2>
<p>Runs the discovery program ‘facter’ on the remote system, returning
JSON data that can be useful for inventory purposes.</p>
<p>Requires that ‘facter’ and ‘ruby-json’ be installed on the remote end.</p>
<p>This module is informative only - it takes no parameters & does not support change hooks,
nor does it make any changes on the system.</p>
</div>
<divclass="section"id="git">
<h2>git<aclass="headerlink"href="#git"title="Permalink to this headline">¶</a></h2>
<p>Deploys software from git checkouts.</p>
<p><em>repo</em>:</p>
<p>git or http protocol address of the repo to checkout</p>
<p><em>dest</em>:</p>
<p>where to check it out, an absolute directory path</p>
<p><em>version</em>:</p>
<p>what version to check out – either the git SHA, the literal string ‘HEAD’, or a tag name</p>
</div>
<divclass="section"id="ohai">
<h2>ohai<aclass="headerlink"href="#ohai"title="Permalink to this headline">¶</a></h2>
<p>Similar to the facter module, this returns JSON inventory data. Ohai
data is a bit more verbose and nested than facter.</p>
<p>Requires that ‘ohai’ be installed on the remote end.</p>
<p>This module is information only - it takes no parameters & does not
support change hooks, nor does it make any changes on the system.</p>
</div>
<divclass="section"id="ping">
<h2>ping<aclass="headerlink"href="#ping"title="Permalink to this headline">¶</a></h2>
<p>A trivial test module, this module always returns the integer ‘1’ on
successful contact.</p>
<p>This module does not support change hooks.</p>
<p>This module is informative only - it takes no parameters & does not
support change hooks, nor does it make any changes on the system.</p>
</div>
<divclass="section"id="service">
<h2>service<aclass="headerlink"href="#service"title="Permalink to this headline">¶</a></h2>
<p>Controls services on remote machines.</p>
<p><em>state</em></p>
<p>Values are ‘started’, ‘stopped’, or ‘restarted’. Started/stopped
are idempotent actions that will not run commands unless neccessary.
‘restarted’ will always bounce the service</p>
<p><em>name</em></p>
<p>The name of the service</p>
</div>
<divclass="section"id="setup">
<h2>setup<aclass="headerlink"href="#setup"title="Permalink to this headline">¶</a></h2>
<p>Writes a JSON file containing key/value data, for use in templating.
Call this once before using the template modules. Playbooks will
execute this module automatically as the first step in each play.</p>
<p>If facter or ohai are installed, variables from these programs will also
be snapshotted into the JSON file for usage in templating. These variables
are prefixed with ‘<aclass="reference internal"href="#facter">facter</a>‘ and ‘<aclass="reference internal"href="#ohai">ohai</a>” so it’s easy to tell their source.</p>
<p><em>metadata</em></p>
<p>Optionally overrides the default JSON file location of /etc/ansible/setup or ~/ansible/setup
depending on what remote user has been specified.</p>
<p>If used, also supply the metadata parameter to the template module.</p>
<p><em>anything</em></p>
<p>any other parameters can be named basically anything, and set a key=value
pair in the JSON file for use in templating.</p>
</div>
<divclass="section"id="template">
<h2>template<aclass="headerlink"href="#template"title="Permalink to this headline">¶</a></h2>
<p>Templates a file out to a remote server. Call the setup module prior to usage.</p>
<p><em>src</em></p>
<p>path of a Jinja2 formatted template on the local server</p>
<p><em>dest</em></p>
<p>location to render the template on the remote server</p>
<p><em>metadata</em></p>
<p>location of a JSON file to use to supply template data. Default is /etc/ansible/setup
which is the same as the default for the setup module. Change if running as a non-root
remote user who does not have permissions on /etc/ansible.</p>
<p>This module also returns md5sum information about the resultant file.</p>
</div>
<divclass="section"id="user">
<h2>user<aclass="headerlink"href="#user"title="Permalink to this headline">¶</a></h2>
<p>This module is in plan.</p>
</div>
<divclass="section"id="yum">
<h2>yum<aclass="headerlink"href="#yum"title="Permalink to this headline">¶</a></h2>
<p>This module is in plan.</p>
</div>
<divclass="section"id="writing-your-own-modules">
<h2>WRITING YOUR OWN MODULES<aclass="headerlink"href="#writing-your-own-modules"title="Permalink to this headline">¶</a></h2>
<p>To write your own modules, simply follow the convention of those already available in
/usr/share/ansible. Modules must return JSON but can be written in any language.
Modules should return hashes, but hashes can be nested.
To support change hooks, modules should return hashes with a changed: True/False
element at the top level. Modules can also choose to indicate a failure scenario
by returning a top level ‘failure’ element with a True value, and a ‘msg’ element
describing the nature of the failure. Other values are up to the module.</p>