summaryrefslogtreecommitdiff
path: root/docs/vyos.rest.vyos_command_module.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/vyos.rest.vyos_command_module.rst')
-rw-r--r--docs/vyos.rest.vyos_command_module.rst252
1 files changed, 252 insertions, 0 deletions
diff --git a/docs/vyos.rest.vyos_command_module.rst b/docs/vyos.rest.vyos_command_module.rst
new file mode 100644
index 0000000..7075ec6
--- /dev/null
+++ b/docs/vyos.rest.vyos_command_module.rst
@@ -0,0 +1,252 @@
+.. _vyos.rest.vyos_command_module:
+
+
+**********************
+vyos.rest.vyos_command
+**********************
+
+**Run show commands on VyOS devices using REST API**
+
+
+Version added: 1.0.0
+
+.. contents::
+ :local:
+ :depth: 1
+
+
+Synopsis
+--------
+- Sends show commands to VyOS devices via the REST API ``/show`` endpoint and returns the output.
+- Equivalent to ``vyos_command`` in the CLI collection but uses the REST API.
+- Uses REST API (``connection=httpapi``) instead of CLI.
+
+
+
+
+Parameters
+----------
+
+.. raw:: html
+
+ <table border=0 cellpadding=0 class="documentation-table">
+ <tr>
+ <th colspan="1">Parameter</th>
+ <th>Choices/<font color="blue">Defaults</font></th>
+ <th width="100%">Comments</th>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="parameter-"></div>
+ <b>commands</b>
+ <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
+ <div style="font-size: small">
+ <span style="color: purple">list</span>
+ / <span style="color: purple">elements=raw</span>
+ / <span style="color: red">required</span>
+ </div>
+ </td>
+ <td>
+ </td>
+ <td>
+ <div>List of show commands to run on the device.</div>
+ <div>Each command is a list of path elements passed to the <code>/show</code> endpoint.</div>
+ <div>Commands may be specified as a string (space-separated) or a list.</div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="parameter-"></div>
+ <b>interval</b>
+ <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
+ <div style="font-size: small">
+ <span style="color: purple">integer</span>
+ </div>
+ </td>
+ <td>
+ <b>Default:</b><br/><div style="color: blue">1</div>
+ </td>
+ <td>
+ <div>Configures the interval in seconds to wait between retries of the command.</div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="parameter-"></div>
+ <b>match</b>
+ <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
+ <div style="font-size: small">
+ <span style="color: purple">string</span>
+ </div>
+ </td>
+ <td>
+ <ul style="margin: 0; padding: 0"><b>Choices:</b>
+ <li>any</li>
+ <li><div style="color: blue"><b>all</b>&nbsp;&larr;</div></li>
+ </ul>
+ </td>
+ <td>
+ <div>The <code>match</code> argument is used in conjunction with the <code>wait_for</code> argument to specify the match policy.</div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="parameter-"></div>
+ <b>retries</b>
+ <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
+ <div style="font-size: small">
+ <span style="color: purple">integer</span>
+ </div>
+ </td>
+ <td>
+ <b>Default:</b><br/><div style="color: blue">10</div>
+ </td>
+ <td>
+ <div>Specifies the number of retries a command should be run before it is considered failed.</div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="parameter-"></div>
+ <b>wait_for</b>
+ <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
+ <div style="font-size: small">
+ <span style="color: purple">list</span>
+ / <span style="color: purple">elements=string</span>
+ </div>
+ </td>
+ <td>
+ </td>
+ <td>
+ <div>Specifies what to evaluate from the output of the command and what conditionals to apply. This argument will cause the task to wait for a particular conditional to be true before moving forward.</div>
+ <div style="font-size: small; color: darkgreen"><br/>aliases: waitfor</div>
+ </td>
+ </tr>
+ </table>
+ <br/>
+
+
+Notes
+-----
+
+.. note::
+ - Requires ``ansible_connection=httpapi`` with the VyOS httpapi plugin.
+ - ``ansible_network_os`` must be set to ``vyos.rest.vyos``.
+ - Only ``show`` commands are supported via the REST API.
+ - Commands are passed as path lists to the ``/show`` endpoint.
+
+
+
+Examples
+--------
+
+.. code-block:: yaml
+
+ - name: Run show version
+ vyos.rest.vyos_command:
+ commands:
+ - - version
+ register: result
+
+ - name: Run multiple show commands
+ vyos.rest.vyos_command:
+ commands:
+ - - interfaces
+ - - ip
+ - route
+ - - system
+ - uptime
+ register: result
+
+ - name: Run show commands as strings
+ vyos.rest.vyos_command:
+ commands:
+ - "interfaces"
+ - "ip route"
+ - "version"
+ register: result
+
+ - name: Wait for BGP to establish
+ vyos.rest.vyos_command:
+ commands:
+ - - ip
+ - bgp
+ - summary
+ wait_for:
+ - result[0] contains Established
+ retries: 10
+ interval: 5
+
+
+
+Return Values
+-------------
+Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module:
+
+.. raw:: html
+
+ <table border=0 cellpadding=0 class="documentation-table">
+ <tr>
+ <th colspan="1">Key</th>
+ <th>Returned</th>
+ <th width="100%">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="return-"></div>
+ <b>failed_conditions</b>
+ <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a>
+ <div style="font-size: small">
+ <span style="color: purple">list</span>
+ </div>
+ </td>
+ <td>failed</td>
+ <td>
+ <div>List of conditions that failed.</div>
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="return-"></div>
+ <b>stdout</b>
+ <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a>
+ <div style="font-size: small">
+ <span style="color: purple">list</span>
+ </div>
+ </td>
+ <td>always</td>
+ <td>
+ <div>List of output from each command.</div>
+ <br/>
+ <div style="font-size: smaller"><b>Sample:</b></div>
+ <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[&#x27;VyOS 1.5.0\n...&#x27;, &#x27;Interface IP Address\n...&#x27;]</div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1">
+ <div class="ansibleOptionAnchor" id="return-"></div>
+ <b>stdout_lines</b>
+ <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a>
+ <div style="font-size: small">
+ <span style="color: purple">list</span>
+ </div>
+ </td>
+ <td>always</td>
+ <td>
+ <div>List of output split into lines for each command.</div>
+ <br/>
+ </td>
+ </tr>
+ </table>
+ <br/><br/>
+
+
+Status
+------
+
+
+Authors
+~~~~~~~
+
+- VyOS Community (@vyos)