fortinet.fortios.fortios_json_generic 模块 – 使用 json 通用方法配置 Fortinet 的 FortiOS 和 FortiGate。

注意

此模块是 fortinet.fortios 集合(版本 2.3.8)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。 它不包含在 ansible-core 中。 要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install fortinet.fortios。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定: fortinet.fortios.fortios_json_generic

fortinet.fortios 2.0.0 中的新增功能

概要

  • 该模块能够通过允许用户设置和修改 json 功能和通用类别来配置 FortiGate 或 FortiOS (FOS) 设备。示例包括在使用前需要调整为数据源的所有参数和值。已使用 FOS v6.0.4 测试。

要求

执行此模块的主机上需要以下要求。

  • fortiosapi>=0.9.8

参数

参数

注释

access_token

字符串

基于令牌的身份验证。从 Fortigate 的 GUI 生成。

enable_log

布尔值

启用/禁用任务日志记录。

选项

  • false ←(默认)

  • true

json_generic

字典

json 通用

dictbody

字典

具有键/值格式的 YAML 列表的主体

jsonbody

字符串

具有 JSON 字符串格式的主体,始终优先于 jsonbody

方法

字符串 / 必需

HTTP 方法

选项

  • "GET"

  • "PUT"

  • "POST"

  • "DELETE"

path

字符串 / 必需

URL 路径,例如 /api/v2/cmdb/firewall/address

specialparams

字符串

额外的 URL 参数,例如 start=1&count=10

vdom

字符串

虚拟域,在先前定义的那些域中。vdom 是 FortiGate 的虚拟实例,可以配置并用作不同的单元。

默认值: "root"

说明

注意

  • 需要 Fortinet 开发的 fortiosapi 库

  • 在您的 playbook 中作为 local_action 运行

示例

- name: add firewall address
  fortinet.fortios.fortios_json_generic:
      vdom: "root"
      json_generic:
          method: "POST"
          path: "/api/v2/cmdb/firewall/address"
          jsonbody: |
              {
                  "name": "111",
                  "type": "geography",
                  "fqdn": "",
                  "country": "AL",
                  "comment": "ccc",
                  "visibility": "enable",
                  "associated-interface": "port1",
                  "allow-routing": "disable"
              }
  register: info

- name: display vars
  debug: msg="{{info}}"

- name: delete firewall address
  fortinet.fortios.fortios_json_generic:
      vdom: "root"
      json_generic:
          method: "DELETE"
          path: "/api/v2/cmdb/firewall/address/111"
  register: info

- name: display vars
  debug: msg="{{info}}"

- name: test add with dict
  fortinet.fortios.fortios_json_generic:
      vdom: "root"
      json_generic:
          method: "POST"
          path: "/api/v2/cmdb/firewall/address"
          dictbody:
              name: "111"
              type: "geography"
              fqdn: ""
              country: "AL"
              comment: "it's a test"
              visibility: "enable"
              associated-interface: "port1"
              allow-routing: "disable"
  register: info

- name: display vars
  debug: msg="{{info}}"

- name: test speical params
  fortinet.fortios.fortios_json_generic:
      vdom: "root"
      json_generic:
          method: "PUT"
          path: "/api/v2/cmdb/firewall/policy/1"
          specialparams: "action=move&after=2"
  register: info

- name: display vars
  debug: msg="{{info}}"

返回值

常见的返回值记录在此处,以下是此模块特有的字段

描述

build

字符串

Fortigate 镜像的构建号

返回: 始终

示例: "1547"

http_method

字符串

上次用于将内容配置到 FortiGate 的方法

返回: 始终

示例: "PUT"

http_status

字符串

FortiGate 在上次应用的操作中给出的最后结果

返回: 始终

示例: "200"

mkey

字符串

上次调用 FortiGate 时使用的主键 (id)

返回: 成功

示例: "id"

name

字符串

用于满足请求的表的名称

返回: 始终

示例: "urlfilter"

path

字符串

用于满足请求的表的路径

返回: 始终

示例: "webfilter"

revision

字符串

内部修订号

返回: 始终

示例: "17.0.2.10658"

serial

字符串

单元的序列号

返回: 始终

示例: "FGVMEVYYQT3AB5352"

status

字符串

指示操作结果

返回: 始终

示例: "success"

vdom

字符串

使用的虚拟域

返回: 始终

示例: "root"

version

字符串

FortiGate 的版本

返回: 始终

示例: "v5.6.3"

作者

  • Frank Shen (@frankshen01)

  • Hongbin Lu (@fgtdev-hblu)