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