lix_fortinet / lix_fortinet.fortios / 102.2.120 / module / fortios_json_generic Config Fortinet's FortiOS and FortiGate with json generic method. | "added in version" 2.0.0 of lix_fortinet.fortios" Authors: Frank Shen (@frankshen01), Hongbin Lu (@fgtdev-hblu) preview | supported by communitylix_fortinet.fortios.fortios_json_generic (102.2.120) — module
Install with ansible-galaxy collection install lix_fortinet.fortios:==102.2.120
collections: - name: lix_fortinet.fortios version: 102.2.120
This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify json feature and generic category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.4
--- # host # [fortigates] # fortigate01 ansible_host=192.168.52.177 ansible_user="admin" ansible_password="admin" # [fortigates:vars] # ansible_network_os=fortinet.fortios.fortios # sample1.yml - hosts: fortigates collections: - fortinet.fortios connection: httpapi vars: vdom: "root" ansible_httpapi_use_ssl: yes ansible_httpapi_validate_certs: no ansible_httpapi_port: 443 tasks: - name: test add with string fortios_json_generic: vdom: "{{ vdom }}" 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}}"
# sample2.yml - hosts: fortigates collections: - fortinet.fortios connection: httpapi vars: vdom: "root" ansible_httpapi_use_ssl: yes ansible_httpapi_validate_certs: no ansible_httpapi_port: 443 tasks: - name: test delete fortios_json_generic: vdom: "{{ vdom }}" json_generic: method: "DELETE" path: "/api/v2/cmdb/firewall/address/111" register: info - name: display vars debug: msg="{{info}}" - name: test add with dict fortios_json_generic: vdom: "{{ vdom }}" json_generic: method: "POST" path: "/api/v2/cmdb/firewall/address" dictbody: 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: test delete fortios_json_generic: vdom: "{{ vdom }}" json_generic: method: "DELETE" path: "/api/v2/cmdb/firewall/address/111" register: info - name: display vars debug: msg="{{info}}" - name: test add with string fortios_json_generic: vdom: "{{ vdom }}" 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: test speical params fortios_json_generic: vdom: "{{ vdom }}" json_generic: method: "PUT" path: "/api/v2/cmdb/firewall/policy/1" specialparams: "action=move&after=2" register: info - name: display vars debug: msg="{{info}}"
vdom: default: root description: - Virtual domain, among those defined previously. A vdom is a virtual instance of the FortiGate that can be configured and used as a different unit. type: str enable_log: default: false description: - Enable/Disable logging for task. required: false type: bool access_token: description: - Token-based authentication. Generated from GUI of Fortigate. required: false type: str json_generic: default: null description: - json generic suboptions: dictbody: description: - Body with YAML list of key/value format type: dict jsonbody: description: - Body with JSON string format, will always give priority to jsonbody type: str method: choices: - GET - PUT - POST - DELETE description: - HTTP methods required: true type: str path: description: - URL path, e.g./api/v2/cmdb/firewall/address required: true type: str specialparams: description: - Extra URL parameters, e.g.start=1&count=10 type: str type: dict
build: description: Build number of the fortigate image returned: always sample: '1547' type: str http_method: description: Last method used to provision the content into FortiGate returned: always sample: PUT type: str http_status: description: Last result given by FortiGate on last operation applied returned: always sample: '200' type: str mkey: description: Master key (id) used in the last call to FortiGate returned: success sample: id type: str name: description: Name of the table used to fulfill the request returned: always sample: urlfilter type: str path: description: Path of the table used to fulfill the request returned: always sample: webfilter type: str revision: description: Internal revision number returned: always sample: 17.0.2.10658 type: str serial: description: Serial number of the unit returned: always sample: FGVMEVYYQT3AB5352 type: str status: description: Indication of the operation's result returned: always sample: success type: str vdom: description: Virtual domain used returned: always sample: root type: str version: description: Version of the FortiGate returned: always sample: v5.6.3 type: str