httpapi 插件

httpapi 插件告诉 Ansible,如何与远端设备基于 HTTP 的 API 交互,以及在该设备上执行任务。

各个插件代表一种特定的 API 方言。有些是特定于平台(Arista eAPI、Cisco NXAPI 等)的,而别的则可用于各种平台(RESTCONF)。Ansible 会根据 ansible_network_os 变量,自动加载相应的 httpapi 插件。

译注httpapi 是通过设备提供的 RESTful API,管理设备所需的插件。下图是 Arista® eAPI® 的架构图。

Arista eAPI 架构

添加 httpapi 插件

通过将自定义插件放入 httpapi_plugins 目录,咱们可扩展 Ansible 以支持别的 API。详情请参阅 开发 httpapi 插件

使用 httpapi 插件

要使用的 httpapi 插件,由 ansible_network_os 这个变量自动决定。

大多数 httpapi 插件无需配置即可运行。各个插件也可能会定义一些额外选项。

这些插件都自带文档。各个插件都应记录了其配置选项。

以下示例 playbook 展示了某个 Arista 网络设备的 httpapi 插件,假设有个仓库变量被设置为 ansible_network_os=eos,以触发该 httpapi 插件:

- 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"]

译注:这个 playbook 中的 hosts: leaf01 是指一般用于数据中心的 Spine-Leaf 网络拓扑 中的叶子交换机。

请查看 GitHub 上 的完整工作示例。

查看 httpapi 插件

这些插件都已迁移到 Ansible Galaxy 上的专辑。若咱们使用 pip 安装了 2.10 或更高版本的 Ansible,就可访问到多个 httpapi 插件。咱们可使用 ansible-doc -t httpapi -l 命令查看可用插件的列表。使用 ansible-doc -t httpapi <plugin name> 查看特定插件的文档与示例。

(End)

Last change: 2025-02-22, commit: 863eabf

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。