community.routeros.api_info 模块 – 从 API 中检索信息

注意

此模块是 community.routeros 集合(版本 3.1.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install community.routeros。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.routeros.api_info

community.routeros 2.2.0 中的新增功能

概要

要求

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

  • librouteros

  • Python >= 3.6 (用于 librouteros)

参数

参数

注释

ca_path

路径

在 community.routeros 1.2.0 中添加

PEM 格式的文件,其中包含用于证书验证的 CA 证书。

另请参阅 validate_cert_hostname。仅当 tls=truevalidate_certs=true 时使用。

encoding

字符串

在 community.routeros 2.1.0 中添加

与 RouterOS 设备通信时使用指定的编码。

默认为 ASCII。请注意,UTF-8 需要 librouteros 3.2.1 或更高版本。

默认: "ASCII"

force_no_cert

布尔值

在 community.routeros 2.4.0 中添加

tls=true 时,设置为 true 以在没有证书的情况下连接。

另请参阅 validate_certs

注意: 这会强制使用匿名 Diffie-Hellman (ADH) 密码。该协议容易受到中间人攻击,因为交换中使用的密钥未经过身份验证。与其仅仅在没有证书的情况下连接以“使事情正常工作”,不如看看 validate_certsca_path

选择

  • false ←(默认)

  • true

handle_disabled

字符串

如何处理未设置的值。

exclamation 在输出中使用值 null 将键加上 ! 前缀。

null-value 使用具有值 null 的常规键。

omit 从结果中省略这些值。

选择

  • "exclamation" ←(默认)

  • "null-value"

  • "omit"

hide_defaults

布尔值

是否隐藏默认值。

选择

  • false

  • true ←(默认)

hostname

字符串 / 必需

RouterOS 主机名 API。

include_builtin

布尔值

在 community.routeros 2.4.0 中添加

是否包含内置值。

默认情况下,它们不返回,并且省略 builtin 键。

如果设置为 true,它们也会被返回,并且 builtin 键也会被返回。

选择

  • false ←(默认)

  • true

include_dynamic

布尔值

是否包含动态值。

默认情况下,它们不会被返回,并且 dynamic 键会被省略。

如果设置为 true,它们也会被返回,并且 dynamic 键也会被返回。

选择

  • false ←(默认)

  • true

include_read_only

布尔值

在 community.routeros 2.10.0 中添加

是否包含只读字段。

默认情况下,它们不会被返回。

选择

  • false ←(默认)

  • true

password

字符串 / 必需

RouterOS 用户密码。

路径

字符串 / 必需

要查询的路径。

一个示例值是 ip address。这等同于在 RouterOS CLI 中运行 /ip address print

选择

  • "caps-man aaa"

  • "caps-man access-list"

  • "caps-man channel"

  • "caps-man configuration"

  • "caps-man datapath"

  • "caps-man manager"

  • "caps-man manager interface"

  • "caps-man provisioning"

  • "caps-man security"

  • "certificate settings"

  • "interface bonding"

  • "interface bridge"

  • "interface bridge mlag"

  • "interface bridge port"

  • "interface bridge port-controller"

  • "interface bridge port-extender"

  • "interface bridge settings"

  • "interface bridge vlan"

  • "interface detect-internet"

  • "interface eoip"

  • "interface ethernet"

  • "interface ethernet poe"

  • "interface ethernet switch"

  • "interface ethernet switch port"

  • "interface gre"

  • "interface gre6"

  • "interface l2tp-client"

  • "interface l2tp-server server"

  • "interface list"

  • "interface list member"

  • "interface ovpn-client"

  • "interface ovpn-server server"

  • "interface ppp-client"

  • "interface pppoe-client"

  • "interface pppoe-server server"

  • "interface pptp-server server"

  • "interface sstp-server server"

  • "interface vlan"

  • "interface vrrp"

  • "interface wifi"

  • "interface wifi aaa"

  • "interface wifi access-list"

  • "interface wifi cap"

  • "interface wifi capsman"

  • "interface wifi channel"

  • "interface wifi configuration"

  • "interface wifi datapath"

  • "interface wifi interworking"

  • "interface wifi provisioning"

  • "interface wifi security"

  • "interface wifi steering"

  • "interface wifiwave2"

  • "interface wifiwave2 aaa"

  • "interface wifiwave2 access-list"

  • "interface wifiwave2 cap"

  • "interface wifiwave2 capsman"

  • "interface wifiwave2 channel"

  • "interface wifiwave2 configuration"

  • "interface wifiwave2 datapath"

  • "interface wifiwave2 interworking"

  • "interface wifiwave2 provisioning"

  • "interface wifiwave2 security"

  • "interface wifiwave2 steering"

  • "interface wireguard"

  • "interface wireguard peers"

  • "interface wireless"

  • "interface wireless align"

  • "interface wireless cap"

  • "interface wireless security-profiles"

  • "interface wireless sniffer"

  • "interface wireless snooper"

  • "iot modbus"

  • "ip accounting"

  • "ip accounting web-access"

  • "ip address"

  • "ip arp"

  • "ip cloud"

  • "ip cloud advanced"

  • "ip dhcp-client"

  • "ip dhcp-client option"

  • "ip dhcp-relay"

  • "ip dhcp-server"

  • "ip dhcp-server config"

  • "ip dhcp-server lease"

  • "ip dhcp-server matcher"

  • "ip dhcp-server network"

  • "ip dhcp-server option"

  • "ip dhcp-server option sets"

  • "ip dns"

  • "ip dns adlist"

  • "ip dns static"

  • "ip firewall address-list"

  • "ip firewall connection tracking"

  • "ip firewall filter"

  • "ip firewall layer7-protocol"

  • "ip firewall mangle"

  • "ip firewall nat"

  • "ip firewall raw"

  • "ip firewall service-port"

  • "ip hotspot service-port"

  • "ip ipsec identity"

  • "ip ipsec peer"

  • "ip ipsec policy"

  • "ip ipsec profile"

  • "ip ipsec proposal"

  • "ip ipsec settings"

  • "ip neighbor discovery-settings"

  • "ip pool"

  • "ip proxy"

  • "ip route"

  • "ip route rule"

  • "ip route vrf"

  • "ip service"

  • "ip settings"

  • "ip smb"

  • "ip socks"

  • "ip ssh"

  • "ip tftp settings"

  • "ip traffic-flow"

  • "ip traffic-flow ipfix"

  • "ip traffic-flow target"

  • "ip upnp"

  • "ip upnp interfaces"

  • "ip vrf"

  • "ipv6 address"

  • "ipv6 dhcp-client"

  • "ipv6 dhcp-server"

  • "ipv6 dhcp-server option"

  • "ipv6 firewall address-list"

  • "ipv6 firewall filter"

  • "ipv6 firewall mangle"

  • "ipv6 firewall nat"

  • "ipv6 firewall raw"

  • "ipv6 nd"

  • "ipv6 nd prefix"

  • "ipv6 nd prefix default"

  • "ipv6 route"

  • "ipv6 settings"

  • "mpls"

  • "mpls interface"

  • "mpls ldp"

  • "mpls ldp accept-filter"

  • "mpls ldp advertise-filter"

  • "mpls ldp interface"

  • "port firmware"

  • "port remote-access"

  • "ppp aaa"

  • "ppp profile"

  • "ppp secret"

  • "queue interface"

  • "queue simple"

  • "queue tree"

  • "queue type"

  • "radius"

  • "radius incoming"

  • "routing bgp aggregate"

  • "routing bgp connection"

  • "routing bgp instance"

  • "routing bgp network"

  • "routing bgp peer"

  • "routing bgp template"

  • "routing filter"

  • "routing filter num-list"

  • "routing filter rule"

  • "routing filter select-rule"

  • "routing id"

  • "routing igmp-proxy"

  • "routing igmp-proxy interface"

  • "routing mme"

  • "routing ospf area"

  • "routing ospf area range"

  • "routing ospf instance"

  • "routing ospf interface-template"

  • "routing ospf static-neighbor"

  • "routing pimsm instance"

  • "routing pimsm interface-template"

  • "routing rip"

  • "routing ripng"

  • "routing rule"

  • "routing table"

  • "snmp"

  • "snmp community"

  • "system clock"

  • "system clock manual"

  • "system health settings"

  • "system identity"

  • "system leds settings"

  • "system logging"

  • "system logging action"

  • "system note"

  • "system ntp client"

  • "system ntp client servers"

  • "system ntp server"

  • "system package update"

  • "system resource irq rps"

  • "system routerboard settings"

  • "system scheduler"

  • "system script"

  • "system upgrade mirror"

  • "system ups"

  • "system watchdog"

  • "tool bandwidth-server"

  • "tool e-mail"

  • "tool graphing"

  • "tool graphing interface"

  • "tool graphing resource"

  • "tool mac-server"

  • "tool mac-server mac-winbox"

  • "tool mac-server ping"

  • "tool netwatch"

  • "tool romon"

  • "tool sms"

  • "tool sniffer"

  • "tool traffic-generator"

  • "user"

  • "user aaa"

  • "user group"

  • "user settings"

port

integer

RouterOS API端口。如果设置了 tls,则端口将应用于TLS/SSL连接。

HTTP API的默认值为 8728,HTTPS API的默认值为 8729

restrict

list / elements=dictionary

在 community.routeros 2.18.0 中添加。

将输出限制为匹配以下条件的条目。

field

字符串 / 必需

要限制其值的字段。

invert

布尔值

反转条件。这会影响 restrict[].match_disabledrestrict[].valuesrestrict[].regex

选择

  • false ←(默认)

  • true

match_disabled

布尔值

是否应匹配禁用或未提供的值。

选择

  • false ←(默认)

  • true

regex

字符串

与要限制的字段值匹配的正则表达式。

请注意,所有值在匹配前都将转换为字符串。

无法使用正则表达式匹配禁用的值。如果要匹配禁用的值,请设置 restrict[].match_disabled=true

values

list / elements=any

要限制的字段的值。

请注意,值的类型很重要。如果您提供字符串 "0",而 librouteros 将 API 返回的值转换为整数 0,则这将不匹配。如果您不确定,最好同时包含这两种变体:字符串和整数。

timeout

integer

在 community.routeros 2.3.0 中添加。

请求的超时时间。

默认值: 10

tls

别名:ssl

布尔值

如果设置,TLS将用于RouterOS API连接。

选择

  • false ←(默认)

  • true

unfiltered

布尔值

是否输出所有字段,而不仅仅是 community.routeros.api_modify 支持的输入字段。

未经过滤的输出可能包含计数器和其他状态信息。

选择

  • false ←(默认)

  • true

username

字符串 / 必需

RouterOS登录用户。

validate_cert_hostname

布尔值

在 community.routeros 1.2.0 中添加

设置为 true 以验证证书中的主机名。

另请参阅 validate_certs。仅当 tls=true 并且 validate_certs=true 时使用。

选择

  • false ←(默认)

  • true

validate_certs

布尔值

在 community.routeros 1.2.0 中添加

设置为 false 以跳过 TLS 证书的验证。

另请参阅 validate_cert_hostname。仅当 tls=true 时使用。

注意: 不要简单地禁用证书验证来“使事情正常工作”,请考虑创建自己的 CA 证书,并使用它来签署用于您的路由器的证书。您可以使用 ca_path 选项告知模块您的 CA 证书。

选择

  • false

  • true ←(默认)

属性

属性

支持

描述

action_group

操作组: community.routeros.api

module_defaults 中使用 group/community.routeros.api 为此模块设置默认值。

check_mode

支持: 完整

此操作不修改状态。

可以在 check_mode 中运行并返回更改的状态预测,而无需修改目标。

diff_mode

支持: 不适用

此操作不修改状态。

当处于 diff 模式时,将返回有关已更改(或可能需要在 check_mode 中更改)的详细信息。

platform

平台: RouterOS

可以对其进行操作的目标操作系统/系列。

另请参阅

另请参阅

community.routeros.api

用于 RouterOS API 的 Ansible 模块。

community.routeros.api_facts

使用 API 从运行 MikroTik RouterOS 的远程设备收集事实。

community.routeros.api_find_and_modify

使用 API 查找和修改信息。

community.routeros.api_modify

使用 API 修改路径中的数据。

如何使用 RouterOS API 连接到 RouterOS 设备

如何使用 RouterOS API 连接到 RouterOS 设备

示例

---
- name: Get IP addresses
  community.routeros.api_info:
    hostname: "{{ hostname }}"
    password: "{{ password }}"
    username: "{{ username }}"
    path: ip address
  register: ip_addresses

- name: Print data for IP addresses
  ansible.builtin.debug:
    var: ip_addresses.result

- name: Get IP addresses
  community.routeros.api_info:
    hostname: "{{ hostname }}"
    password: "{{ password }}"
    username: "{{ username }}"
    path: ip address
  register: ip_addresses

- name: Print data for IP addresses
  ansible.builtin.debug:
    var: ip_addresses.result

返回值

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

描述

result

list / elements=dictionary

当前路径的所有元素的列表。

已返回: 始终

示例: [{".id": "*1", "actual-interface": "bridge", "address": "192.168.88.1/24", "comment": "defconf", "disabled": false, "dynamic": false, "interface": "bridge", "invalid": false, "network": "192.168.88.0"}]

作者

  • Felix Fontein (@felixfontein)