community.routeros.api_find_and_modify 模块 – 使用 API 查找和修改信息
注意
此模块是 community.routeros 集合 (版本 3.1.0) 的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.routeros
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.routeros.api_find_and_modify
。
community.routeros 2.1.0 中的新增功能
概要
允许根据条件查找路径的条目并修改这些条目的值。
使用 community.routeros.api_find_and_modify 模块将路径的所有条目设置为特定值,或者一步更改多个条目的不同方式。
要求
以下要求是在执行此模块的主机上需要的。
librouteros
Python >= 3.6 (适用于 librouteros)
参数
参数 |
注释 |
---|---|
包含用于证书验证的 CA 证书的 PEM 格式文件。 另请参见 |
|
与 RouterOS 设备通信时使用指定的编码。 默认为 默认值: |
|
设置为 另请参见 注意:这强制使用匿名 Diffie-Hellman (ADH) 密码。该协议容易受到中间人攻击,因为交换中使用的密钥未经身份验证。与其简单地无需证书连接以“使事情正常工作”,不如查看 选项
|
|
RouterOS 主机名 API。 |
|
RouterOS 用户密码。 |
|
要查询的路径。 例如 |
|
RouterOS api 端口。如果设置了 HTTP API 的默认值为 |
|
确保匹配项不超过此数量。 如果有更多匹配项,则失败而不是修改任何内容。 如果未指定,则没有上限。 |
|
确保匹配项不少于此数量。 如果匹配项较少,则失败而不是修改任何内容。 默认值: |
|
请求超时。 默认值: |
|
如果设置,将使用 TLS 连接 RouterOS API。 选项
|
|
RouterOS 登录用户名。 |
|
设置为 另见 注意: 请不要仅仅为了“使程序运行”而停用证书验证,请考虑创建您自己的 CA 证书并使用它来签署用于路由器的证书。您可以使用 选项
|
|
对于与 使用 YAML |
属性
属性 |
支持 |
描述 |
---|---|---|
动作组: community.routeros.api |
在 |
|
支持: 完全支持 |
可以在 |
|
支持: 完全支持 |
在差异模式下,将返回关于已更改内容(或在 |
|
平台: RouterOS |
可以对其进行操作的目标操作系统/系列。 |
备注
注意
如果您想根据旧值更改值(例如,将所有注释“foo”更改为“bar”)并确保至少有 N 个这样的值,则可以使用
require_matches_min=N
和allow_no_matches=true
。如果此类条目少于 N 个,则模块将失败,但如果没有匹配项则不会失败。后一种情况对于任务的幂等性是必要的:一旦值被更改,就不应该再有匹配项了。
另见
另见
- community.routeros.api
用于 RouterOS API 的 Ansible 模块。
- community.routeros.api_facts
使用 API 从运行 MikroTik RouterOS 的远程设备收集事实。
- community.routeros.api_modify
使用 API 修改路径中的数据。
- community.routeros.api_info
从 API 检索信息。
- 如何使用 RouterOS API 连接到 RouterOS 设备
如何使用 RouterOS API 连接到 RouterOS 设备
示例
---
- name: Rename bridge from 'bridge' to 'my-bridge'
community.routeros.api_find_and_modify:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: interface bridge
find:
name: bridge
values:
name: my-bridge
- name: Change IP address to 192.168.1.1 for interface bridge - assuming there is only one
community.routeros.api_find_and_modify:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: ip address
find:
interface: bridge
values:
address: "192.168.1.1/24"
# If there are zero entries, or more than one: fail! We expected that
# exactly one is configured.
require_matches_min: 1
require_matches_max: 1
返回值
常见返回值已在此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
已修改的条目数。 返回: 成功 示例: |
|
进行更改后当前路径的所有元素列表。 返回: 成功 示例: |
|
进行更改前当前路径的所有元素列表。 返回: 成功 示例: |