Httpapi plugins

Httpapi plugins tell Ansible how to interact with a remote device’s HTTP-based API and execute tasks on thedevice.

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

Adding httpapi plugins

You can extend Ansible to support other APIs by dropping a custom plugin into thehttpapi_plugins directory. SeeDeveloping httpapi plugins for details.

Using httpapi plugins

The httpapi plugin to use is determined automatically from theansible_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 asansible_network_os=eos for the httpapi plugin to trigger off:

-hosts:leaf01connection:httpapigather_facts:falsetasks:-name:type a simple arista commandeos_command:commands:-show version | jsonregister:command_output-name:print command output to terminal windowdebug:var:command_output.stdout[0]["version"]

See the full working exampleon GitHub.

Viewing httpapi plugins

These plugins have migrated to collections onAnsible Galaxy. If you installed Ansible version 2.10 or later usingpip, you have access to several httpapi plugins.You can useansible-doc-thttpapi-l to see the list of available plugins.Useansible-doc-thttpapi<pluginname> to see plugin-specific documentation and examples.

See also

Ansible for Network Automation

An overview of using Ansible to automate networking devices.

Developing network modules

How to develop network modules.

Communication

Got questions? Need help? Want to share your ideas? Visit the Ansible communication guide