fortinet.fortimanager.fmgr_dvm_cmd_discover_device 模块 – 探测远程设备并检索其设备信息和系统状态。
注意
此模块是 fortinet.fortimanager 集合 (版本 2.8.2) 的一部分。
如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用:ansible-galaxy collection install fortinet.fortimanager。
要在 playbook 中使用它,请指定:fortinet.fortimanager.fmgr_dvm_cmd_discover_device。
fortinet.fortimanager 1.0.0 中的新增功能
概要
- 此模块能够配置 FortiManager 设备。 
- 示例包含所有需要在使用前调整为数据源的参数和值。 
参数
| 参数 | 注释 | 
|---|---|
| 无需使用用户名和密码即可访问 FortiManager 的令牌。 | |
| 仅当模块模式与 FortiManager API 结构不同时设置为 True,模块将继续执行而无需验证参数。 选项 
 | |
| 设置的顶级参数。 | |
| 设备。 | |
| 管理员密码。 | |
| 管理员用户名。 | |
| IP 地址。 | |
| 启用/禁用任务日志记录。 选项 
 | |
| 使用 FortiCloud API 访问令牌验证 Ansible 客户端。 | |
| 将被覆盖的失败条件的 rc 代码列表。 | |
| 将被覆盖的成功条件的 rc 代码列表。 | |
| 在工作区模式下运行 FortiManager 时要锁定的 ADOM,值可以是 global 和其他包括 root。 | |
| 等待其他用户释放工作区锁定的最大时间(秒)。 默认值:  | 
备注
注意
- 从 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: Probe a remote device and retrieve its device information and system status.
      fortinet.fortimanager.fmgr_dvm_cmd_discover_device:
        bypass_validation: false
        dvm_cmd_discover_device:
          device:
            adm_pass: fortinet # device password
            adm_usr: admin # device user name
            ip: 0.0.0.0 # device ip
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 请求的结果。 返回:始终 | |
| 请求的完整 URL。 返回:始终 示例:  | |
| API 请求的状态。 返回:始终 示例:  | |
| API 响应。 返回:始终 | |
| API 响应的描述性消息。 返回:始终 示例:  | |
| 目标系统的信 息。 返回:始终 | |
| 请求的状态。 返回:始终 示例:  | |
| 如果 playbook 中使用的参数不受当前 FortiManager 版本支持,则会发出警告。 返回:复杂类型 | 
