ansible/docs/docsite/rst/plugins/httpapi.rst
Toshio Kuratomi 80e7e1a17c
Due to the takeover of freenode we're moving to a different irc network. (#74775)
* Due to the takeover of freenode we're moving to a different irc network.

* Our channels updated to point at the same channel name on libera.chat
* Some links went to webchat.freenode.net.  At this time, libera.chat
  doesn't point you to an official webchat client so I changed these to
  https://libera.chat. (kiwi irc does work with libera.chat so that
  could be another option).
* In general, I used the name irc.libera.net for link names and
  https://libera.chat for link targets.  This is because the irc service
  is hosted on irc.libera.chat but the project web server is hosted on
  libera.chat.  (This appears to also be true for freenode but we were
  using http://irc.freenode.net which doesn't seem to work.  Oops).
* Removed http://irc.freenode.net from the linkcheck exceptions.
  linkcheck was actually correct to flag that as invalid (should have
  been http://frenode.net instead).

* Looks like hte important people in #yaml are now in libera.chat

* Link to where contributors should get help

Add a link target and then link to where contributors should get support
for developing groups of modules.

* Update docs/docsite/rst/dev_guide/developing_modules_in_groups.rst

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

Co-authored-by: John R Barker <john@johnrbarker.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2021-06-01 08:48:09 +01:00

2.6 KiB

Httpapi Plugins

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.

Adding httpapi plugins

You can extend Ansible to support other APIs by dropping a custom plugin into the httpapi_plugins directory. See developing_plugins_httpapi for details.

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:

- 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.

Viewing httpapi plugins

These plugins have migrated to collections on Ansible Galaxy. If you installed Ansible version 2.10 or later using pip, you have access to several httpapi plugins. To list all available httpapi plugins on your control node, type ansible-doc -t httpapi -l. To view plugin-specific documentation and examples, use ansible-doc -t httpapi.

Ansible for Network Automation<network_guide>

An overview of using Ansible to automate networking devices.

Developing network modules<developing_modules_network>

How to develop network modules.

User Mailing List

Have a question? Stop by the google group!

irc.libera.chat

#ansible-network IRC chat channel