community.routeros.api_modify 模块 – 使用 API 修改路径数据
注意
此模块是 community.routeros 集合(版本 3.1.0)的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。 它不包含在 ansible-core
中。 要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.routeros
。 您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定: community.routeros.api_modify
。
community.routeros 2.2.0 中的新增功能
概要
允许使用 API 修改路径的信息。
使用 community.routeros.api_find_and_modify 模块,根据一些搜索条件以受控方式修改一个或多个条目。
要备份可以使用此模块恢复的路径,请使用 community.routeros.api_info 模块。
该模块忽略动态和内置条目。
请注意,此模块仍处于大量开发中,仅支持某些路径。 如果您想支持新路径,或者认为您在现有路径中发现了问题,请首先 在 community.routeros 问题跟踪器中创建一个问题。
要求
执行此模块的主机需要以下要求。
Python 2.6 需要 ordereddict
Python >= 3.6(适用于 librouteros)
librouteros
参数
参数 |
注释 |
---|---|
PEM 格式的文件,其中包含用于证书验证的 CA 证书。 另请参阅 |
|
要确保此路径存在的数据。 未提供的字段将不会被修改。 如果 |
|
在与 RouterOS 设备通信时使用指定的编码。 默认值为 默认值: |
|
设置为 另请参阅 注意:这强制使用匿名 Diffie-Hellman (ADH) 密码。 该协议容易受到中间人攻击,因为交换中使用的密钥未经过身份验证。 不要只是在没有证书的情况下连接以“使事情正常工作”,请查看 选择
|
|
对于 如果 如果 如果 请注意, 选择
|
|
如何处理为只读字段传入的值。 如果 如果 如果 选择
|
|
如何处理为只写字段传入的值。 如果 如果 如果 选择
|
|
RouterOS 主机名 API。 |
|
RouterOS 用户密码。 |
|
要查询的路径。 一个示例值是 选择
|
|
RouterOS API端口。如果 HTTP API 的默认值为 |
|
将操作限制为与以下条件匹配的条目。 这与 例如,对于 |
|
要限制其值的字段。 |
|
是否应匹配禁用或未提供的值。 选择
|
|
匹配要限制的字段值的正则表达式。 请注意,所有值在匹配之前都将转换为字符串。 无法使用正则表达式匹配禁用的值。如果您还想匹配禁用的值,请设置 |
|
要限制的字段值。 请注意,值的类型很重要。如果提供字符串 |
|
请求的超时时间。 默认值: |
|
如果设置了,则 TLS 将用于 RouterOS API 连接。 选择
|
|
RouterOS 登录用户。 |
|
设置为 另请参阅 注意:与其简单地停用证书验证来“使事情正常工作”,请考虑创建您自己的 CA 证书并使用它来签署用于您的路由器的证书。您可以使用 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.routeros.api |
在 |
|
支持: 完全 |
可以在 |
|
支持: 完全 |
当处于 diff 模式时,将返回已更改的详细信息(或可能需要在 |
|
平台: RouterOS |
可以操作的目标操作系统/系列。 |
说明
注意
如果路径中存在只写字段,则该模块在严格意义上是非幂等的,因为它无法验证这些字段的当前值。该模块应假定的行为可以通过
handle_write_only
选项进行控制。
另请参阅
另请参阅
- community.routeros.api
用于 RouterOS API 的 Ansible 模块。
- community.routeros.api_facts
使用 API 从运行 MikroTik RouterOS 的远程设备收集事实。
- community.routeros.api_find_and_modify
使用 API 查找和修改信息。
- community.routeros.api_info
从 API 检索信息。
- 如何使用 RouterOS API 连接到 RouterOS 设备
如何使用 RouterOS API 连接到 RouterOS 设备
示例
---
- name: Setup DHCP server networks
# Ensures that we have exactly two DHCP server networks (in the specified order)
community.routeros.api_modify:
path: ip dhcp-server network
handle_absent_entries: remove
handle_entries_content: remove_as_much_as_possible
ensure_order: true
data:
- address: 192.168.88.0/24
comment: admin network
dns-server: 192.168.88.1
gateway: 192.168.88.1
- address: 192.168.1.0/24
comment: customer network 1
dns-server: 192.168.1.1
gateway: 192.168.1.1
netmask: 24
- name: Adjust NAT
community.routeros.api_modify:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: ip firewall nat
data:
- action: masquerade
chain: srcnat
comment: NAT to WAN
out-interface-list: WAN
# Three ways to unset values:
# - nothing after `:`
# - "empty" value (null/~/None)
# - prepend '!'
out-interface:
to-addresses: ~
'!to-ports':
- name: Block all incoming connections
community.routeros.api_modify:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: ip firewall filter
handle_absent_entries: remove
handle_entries_content: remove_as_much_as_possible
restrict:
# Do not touch any chain except the input chain
- field: chain
values:
- input
data:
- action: drop
chain: input
返回值
常用返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
更改后当前路径的所有元素的列表。 返回: 始终 示例: |
|
更改前当前路径的所有元素的列表。 返回: 始终 示例: |