fortinet.fortimanager.fmgr_dvm_cmd_add_device 模块 – 将设备添加到设备管理器数据库。

注意

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

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

要安装它,请使用: ansible-galaxy collection install fortinet.fortimanager

要在剧本中使用它,请指定: fortinet.fortimanager.fmgr_dvm_cmd_add_device

fortinet.fortimanager 1.0.0 中的新增功能

概要

  • 此模块能够配置 FortiManager 设备。

  • 示例包括所有需要在使用前调整为数据源的参数和值。

参数

参数

注释

access_token

字符串

无需使用用户名和密码即可访问 FortiManager 的令牌。

bypass_validation

布尔值

仅当模块模式与 FortiManager API 结构不同时设置为 True,模块将继续执行而无需验证参数。

选项

  • false ← (默认)

  • true

dvm_cmd_add_device

字典

设置的顶级参数。

adom

字符串

要在其上执行命令的 ADOM 的名称或 ID。

device

字典

设备。

adm_pass

任意

(列表) 添加真实设备并提升设备。

adm_usr

字符串

添加真实设备并提升设备。

authorization_template

别名:授权模板

字符串

仅添加模型设备。

desc

字符串

适用于所有操作。

device_action

别名:设备操作

字符串

指定添加设备操作,或留空以添加真实设备

add_model - 添加模型设备。

promote_unreg - 使用数据库中的信息将未注册的设备提升为由 FortiManager 管理。

device_blueprint

别名:设备蓝图

字符串

仅添加模型设备。

faz_quota

别名:faz.quota

整数

适用于所有操作。

ip

字符串

仅添加真实设备。

meta_fields

别名:元字段

任意

(字典或字符串) 元字段。

mgmt_mode

字符串

添加真实设备和模型设备。

选项

  • "unreg"

  • "fmg"

  • "faz"

  • "fmgfaz"

mr

整数

仅添加模型设备。

name

字符串

所有操作都需要。

os_type

字符串

仅添加模型设备。

选项

  • "unknown"

  • "fos"

  • "fsw"

  • "foc"

  • "fml"

  • "faz"

  • "fwb"

  • "fch"

  • "fct"

  • "log"

  • "fmg"

  • "fsa"

  • "fdd"

  • "fac"

  • "fpx"

  • "fna"

os_ver

字符串

仅添加模型设备。

选项

  • "unknown"

  • "0.0"

  • "1.0"

  • "2.0"

  • "3.0"

  • "4.0"

  • "5.0"

  • "6.0"

  • "7.0"

  • "8.0"

patch

整数

仅添加模型设备。

platform_str

字符串

仅添加模型设备。

sn

字符串

仅添加模型设备。

flags

列表 / 元素=字符串

create_task - 在任务管理器数据库中创建一个新任务。

nonblocking - API 将立即返回非阻塞调用。

选项

  • "none"

  • "create_task"

  • "nonblocking"

  • "log_dev"

groups

列表 / 元素=字典

组。

name

字符串

名称。

vdom

字符串

Vdom。

enable_log

布尔值

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

选项

  • false ← (默认)

  • true

forticloud_access_token

字符串

使用 forticloud API 访问令牌对 Ansible 客户端进行身份验证。

rc_failed

列表 / 元素=整数

将被覆盖的失败条件的 rc 代码列表。

rc_succeeded

列表 / 元素=整数

将被覆盖的成功条件的 rc 代码列表。

workspace_locking_adom

字符串

在工作区模式下运行 FortiManager 时要锁定的 adom,该值可以是全局的和其他值,包括 root。

workspace_locking_timeout

整数

等待其他用户释放工作区锁的最大时间(秒)。

默认: 300

注释

注意

  • 从 2.4.0 版本开始,所有输入参数都使用下划线命名约定 (snake_case)。请将诸如“var-name”之类的参数更改为“var_name”。旧的参数名称仍然可用,但您将收到弃用警告。您可以通过在 ansible.cfg 中设置 deprecation_warnings=False 来忽略此警告。

  • 此 FortiManager 模块支持在工作区锁定模式下运行,顶级参数 workspace_locking_adom 和 workspace_locking_timeout 有助于完成这项工作。

  • 通常,当返回非零 rc 时,运行一个模块可能会失败。您还可以使用参数 rc_failed 和 rc_succeeded 覆盖失败或成功的条件。

示例

- name: Add a FOS device to FMG
  hosts: fortimanagers
  gather_facts: false
  connection: httpapi
  vars:
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_httpapi_port: 443
    fos_user: "admin"
    fos_pass: "password"
    fos_ip: "192.168.190.151"
  tasks:
    - name: Discover device
      fortinet.fortimanager.fmgr_dvm_cmd_discover_device:
        bypass_validation: true
        dvm_cmd_discover_device:
          device:
            adm_pass: "{{ fos_pass }}"
            adm_usr: "{{ fos_user }}"
            ip: "{{ fos_ip }}"
      register: probed_device
    - name: Add device
      fortinet.fortimanager.fmgr_dvm_cmd_add_device:
        bypass_validation: true
        dvm_cmd_add_device:
          adom: "root"
          flags:
            - "create_task"
            - "nonblocking"
          device:
            adm_usr: "{{ probed_device.meta.response_data.device.adm_usr }}"
            adm_pass: "{{ probed_device.meta.response_data.device.adm_pass }}"
            desc: "The device is added via FortiManager Ansible"
            ip: "{{ probed_device.meta.response_data.device.ip }}"
            mgmt_mode: "fmg"
            name: "{{ probed_device.meta.response_data.device.name }}"
            sn: "{{ probed_device.meta.response_data.device.sn }}"
      register: installing_task
    - name: Poll the task
      fortinet.fortimanager.fmgr_fact:
        facts:
          selector: "task_task"
          params:
            task: "{{ installing_task.meta.response_data.taskid }}"
      register: taskinfo
      until: taskinfo.meta.response_data.percent == 100
      retries: 30
      delay: 5
      failed_when: taskinfo.meta.response_data.state == 'error' and 'devsnexist' not in taskinfo.meta.response_data.line[0].detail

- name: Example playbook
  hosts: fortimanagers
  connection: httpapi
  vars:
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_httpapi_port: 443
  tasks:
    - name: Add a device to the Device Manager database.
      fortinet.fortimanager.fmgr_dvm_cmd_add_device:
        bypass_validation: false
        dvm_cmd_add_device:
          adom: ansible
          device:
            adm_pass: fortinet # device password
            adm_usr: admin # device user name
            ip: 0.0.0.0 # device ip
            mgmt_mode: fmg # <value in [unreg, fmg, faz, ...]>
            name: FGT_AWS
          flags:
            - none
            - create_task
            - nonblocking
            - log_dev

返回值

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

描述

meta

字典

请求的结果。

返回: 始终

request_url

字符串

请求的完整 URL。

返回: 始终

示例: "/sys/login/user"

response_code

整数

API 请求的状态。

返回: 始终

示例: 0

response_data

列表 / 元素=字符串

API 响应。

返回: 始终

response_message

字符串

API 响应的描述性消息。

返回: 始终

示例: "OK."

system_information

字典

目标系统的信息。

返回: 始终

rc

整数

请求的状态。

返回: 始终

示例: 0

version_check_warning

列表 / 元素=字符串

如果剧本中使用的参数不受当前 FortiManager 版本支持,则会发出警告。

返回: 复杂

作者

  • 杜欣蔚 (@dux-fortinet)

  • 李兴 (@lix-fortinet)

  • 薛杰 (@JieX19)

  • 郑琳 (@chillancezen)

  • 沈芳 (@fshen01)

  • 陆宏斌 (@fgtdev-hblu)