fortinet.fortianalyzer.faz_generic (1.4.0) — module

Build and send generic FortiAnalyzer API request.

| "added in version" 1.0.0 of fortinet.fortianalyzer"

Authors: Xinwei Du (@dux-fortinet), Link Zheng (@zhengl), Jie Xue (@JieX19), Frank Shen (@fshen01), Hongbin Lu (@fgtdev-hblu)

preview | supported by community

Install collection

Install with ansible-galaxy collection install fortinet.fortianalyzer:==1.4.0


Add to requirements.yml

  collections:
    - name: fortinet.fortianalyzer
      version: 1.4.0

Description

This module is for generic fortianalyzer requests. it receives raw json-rpc data, and sends it to fortianalyzer, finally returns the response to users.

This module also rely on fortianalyzer httpapi plugin as the transport.

the payload doesn't include session, the httpapi plugin will automatically fill the session later.

the username and password is not managed by the module, but by the plugin.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Example playbook
  hosts: fortianalyzers
  connection: httpapi
  vars:
    adom: "root"
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_httpapi_port: 443
  tasks:
    - name: Login a user
      fortinet.fortianalyzer.faz_generic:
        method: "exec"
        params:
          - url: "sys/login/user"
            data:
              - user: "APIUser"
                passwd: "Fortinet1!e"
    - name: Login another user
      fortinet.fortianalyzer.faz_generic:
        json: |
          {
           "method":"exec",
           "params":[
            {
                 "url":"sys/login/user",
                 "data":[
                    {
                       "user":"APIUser",
                       "passwd":"Fortinet1!"
                    }
                  ]
             }
            ]
          }

Inputs

    
json:
    description:
    - the raw json-formatted payload to send to fortianalyzer
    type: str

method:
    description:
    - the method of the json-rpc
    - it must be in [get, add, set, update, delete, move, clone, exec]
    type: str

params:
    description:
    - the parameter collection.
    elements: dict
    type: list

log_path:
    default: /tmp/fortianalyzer.ansible.log
    description:
    - The path to save log. Used if enable_log is true.
    - Please use absolute path instead of relative path.
    - If the log_path setting is incorrect, the log will be saved in /tmp/fortianalyzer.ansible.log
    type: str

rc_failed:
    description: the rc codes list with which the conditions to fail will be overriden
    elements: int
    type: list

enable_log:
    default: false
    description: Enable/Disable logging for task
    type: bool

access_token:
    description: The token to access FortiManager without using username and password.
    type: str

rc_succeeded:
    description: the rc codes list with which the conditions to succeed will be overriden
    elements: int
    type: list

forticloud_access_token:
    description: Authenticate Ansible client with forticloud API access token.
    type: str

Outputs

meta:
  contains:
    request_url:
      description: The full url requested
      returned: always
      sample: /sys/login/user
      type: str
    response_code:
      description: The status of api request
      returned: always
      sample: 0
      type: int
    response_data:
      description: The api response
      returned: always
      type: list
    response_message:
      description: The descriptive message of the api response
      returned: always
      sample: OK.
      type: str
    system_information:
      description: The information of the target system.
      returned: always
      type: dict
  description: The result of the request.
  returned: always
  type: dict
rc:
  description: The status the request.
  returned: always
  sample: 0
  type: int
version_check_warning:
  description: Warning if the parameters used in the playbook are not supported by
    the current fortianalyzer version.
  returned: complex
  type: list