Files
ansible-docs/docs/docsite/rst/plugins/httpapi.rst
Andrew Klychkov bf86a30bef Replace communication links with a link to communication guide, part 2 (#1864)
* Replace old communication refs with Communication guide ref or forum

* Update docs/docsite/rst/community/documentation_contributions.rst

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-09-12 09:41:36 +02:00

73 lines
2.5 KiB
ReStructuredText

.. _httpapi_plugins:
Httpapi plugins
===============
.. contents::
:local:
:depth: 2
Httpapi plugins tell Ansible how to interact with a remote device's HTTP-based API and execute tasks on the
device.
Each plugin represents a particular dialect of API. Some are platform-specific (Arista eAPI, Cisco NXAPI), while others might be usable on a variety of platforms (RESTCONF). Ansible loads the appropriate httpapi plugin automatically based on the ``ansible_network_os`` variable.
.. _enabling_httpapi:
Adding httpapi plugins
-------------------------
You can extend Ansible to support other APIs by dropping a custom plugin into the ``httpapi_plugins`` directory. See :ref:`developing_plugins_httpapi` for details.
.. _using_httpapi:
Using httpapi plugins
------------------------
The httpapi plugin to use is determined automatically from the ``ansible_network_os`` variable.
Most httpapi plugins can operate without configuration. Additional options may be defined by each plugin.
Plugins are self-documenting. Each plugin should document its configuration options.
The following sample playbook shows the httpapi plugin for an Arista network device, assuming an inventory variable set as ``ansible_network_os=eos`` for the httpapi plugin to trigger off:
.. code-block:: yaml
- hosts: leaf01
connection: httpapi
gather_facts: false
tasks:
- name: type a simple arista command
eos_command:
commands:
- show version | json
register: command_output
- name: print command output to terminal window
debug:
var: command_output.stdout[0]["version"]
See the full working example `on GitHub <https://github.com/network-automation/httpapi>`_.
.. _httpapi_plugin_list:
Viewing httpapi plugins
-----------------------
These plugins have migrated to collections on `Ansible Galaxy <https://galaxy.ansible.com>`_. If you installed Ansible version 2.10 or later using ``pip``, you have access to several httpapi plugins.
You can use ``ansible-doc -t httpapi -l`` to see the list of available plugins.
Use ``ansible-doc -t httpapi <plugin name>`` to see plugin-specific documentation and examples.
.. seealso::
:ref:`Ansible for Network Automation<network_guide>`
An overview of using Ansible to automate networking devices.
:ref:`Developing network modules<developing_modules_network>`
How to develop network modules.
:ref:`Communication<communication>`
Got questions? Need help? Want to share your ideas? Visit the Ansible communication guide