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.
You can extend Ansible to support other APIs by dropping a custom plugin into the httpapi_plugins
directory. See Developing httpapi plugins for details.
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.
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
.
See also
An overview of using Ansible to automate networking devices.
How to develop network modules.
Have a question? Stop by the google group!
#ansible-network IRC chat channel
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/plugins/httpapi.html