Co-authored-by: Alicia Cozine <acozine@users.noreply.github.com>
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.freenode.net
-
#ansible-network IRC chat channel