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 用户密码。 |
|
要查询的路径。 一个示例值是 选项
|
|
“RADIUS” "radius incoming" |
|
"routing bgp connection" “路由 BGP 连接” "routing bgp instance" |
|
"routing bgp network" |
|
"routing bgp peer" 选项
|
|
"routing bgp template" 选项
|
|
"routing filter" “路由过滤器” "routing filter num-list" |
|
“路由过滤器规则” "routing filter select-rule" |
|
“路由 ID” 默认值: |
|
如果设置此项,将使用 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
返回值
常见的返回值记录在此处,以下是此模块独有的字段
键 |
描述 |
---|---|
更改后当前路径的所有元素的列表。 返回: 始终 示例: |
|
更改前当前路径的所有元素的列表。 返回: 始终 示例: |