Модуль community.routeros.api_modify — изменение данных по путям с помощью API
Примечание
Этот модуль входит в коллекцию community.routeros (версия 3.20.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.routeros. Для использования этого модуля могут потребоваться дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: 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
Параметры
Параметр | Комментарии |
|---|---|
ca_path path добавлено в community.routeros 1.2.0 | Файл в формате PEM, содержащий сертификат CA, который будет использоваться для проверки сертификата. См. также |
data list / elements=dictionary / обязательный | Данные, которые должны присутствовать по этому пути. Непредоставленные поля не будут изменены. Если в записи встречается |
encoding string добавлено в community.routeros 2.1.0 | Использовать указанную кодировку при обмене данными с устройством RouterOS. По умолчанию используется По умолчанию: |
ensure_order boolean | Следует ли обеспечивать тот же порядок конфигурации, что и в Требуется Варианты:
|
force_no_cert boolean добавлено в community.routeros 2.4.0 | Установите значение См. также Примечание: этот параметр принудительно включает шифры анонимного Диффи — Хеллмана (ADH). Протокол уязвим для атак типа «человек посередине», поскольку ключи, используемые при обмене, не проходят аутентификацию. Вместо того чтобы просто подключаться без сертификата, чтобы «заставить всё работать», ознакомьтесь с Варианты:
|
handle_absent_entries string | Как обрабатывать записи, присутствующие в текущей конфигурации, но отсутствующие в
Варианты:
|
handle_entries_content string | Для отдельной записи в Если задано Если задано Если задано Обратите внимание, что Варианты:
|
handle_read_only string добавлено в community.routeros 2.10.0 | Как обрабатывать значения, переданные для полей, доступных только для чтения. Если задано Если задано Если задано Варианты:
|
handle_write_only string добавлено в community.routeros 2.10.0 | Как обрабатывать значения, переданные для полей, доступных только для записи. Если задано Если задано Если задано Варианты:
|
hostname string / обязательный | Имя узла RouterOS для API. |
password string / обязательный | Пароль пользователя RouterOS. |
path string / обязательный | Путь для запроса. Пример значения: Варианты:
|
port integer | Порт API RouterOS. Если задано По умолчанию используется |
restrict list / elements=dictionary добавлено в community.routeros 2.18.0 | Ограничить операцию записями, соответствующими следующим критериям. Это может быть полезно в сочетании с Например, для |
|
field string / обязательный |
Поле, значения которого нужно ограничить. |
|
invert boolean |
Инвертировать условие. Это влияет на Варианты:
|
|
match_disabled boolean |
Должны ли совпадать отключённые значения или значения, которые не были указаны. Варианты:
|
|
regex string |
Регулярное выражение, которому должны соответствовать значения поля, чтобы попасть в выборку. Обратите внимание, что перед сопоставлением все значения преобразуются в строки. Невозможно сопоставлять отключённые значения с помощью регулярных выражений. Задайте |
|
values list / elements=any |
Значения поля, которыми нужно ограничить выборку. Обратите внимание, что типы значений имеют значение. Если указать строку |
timeout integer добавлено в community.routeros 2.3.0 | Тайм-аут запроса. По умолчанию: |
tls псевдонимы: ssl boolean | Если установлено, для подключения к API RouterOS будет использоваться TLS. Варианты:
|
username string / обязательно | Имя пользователя для входа в RouterOS. |
validate_cert_hostname boolean добавлено в community.routeros 1.2.0 | Установите значение См. также Варианты:
|
validate_certs boolean добавлено в community.routeros 1.2.0 | Установите значение См. также Примечание: вместо простого отключения проверки сертификатов, чтобы «заставить всё работать», рассмотрите возможность создания собственного сертификата УЦ и использования его для подписания сертификатов маршрутизатора. Вы можете указать модулю свой сертификат УЦ с помощью параметра Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.routeros.api | Используйте |
check_mode | Поддержка: полная | Может работать в |
diff_mode | Поддержка: полная | В режиме diff будут возвращены сведения о внесённых изменениях (или о возможных изменениях, которые необходимо внести в |
idempotent | Поддержка: полная | При повторном запуске с теми же аргументами вне режима проверки второй вызов сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или данные которой он запрашивает, не изменилась существенным образом. |
platform | Платформа: RouterOS | Целевые ОС и семейства ОС, с которыми можно работать. |
Примечания
Примечание
- Если путь содержит поля, доступные только для записи, модуль не является идемпотентным в строгом смысле, поскольку не может проверить текущие значения этих полей. Поведение, которое должен предполагать модуль, можно настроить с помощью параметра
handle_write_only. - Если вы хотите изменить путь, содержащий свойство с именем
cmd, используйте librouteros версии 4.0.0 или новее. Например, это относится кpath=container. В предыдущих версиях librouteros была ошибка, из-за которой невозможно было добавлять или изменять записи при указанииcmd.
См. также
См. также
- community.routeros.api
-
Модуль Ansible для API RouterOS.
- community.routeros.api_facts
-
Сбор сведений с удалённых устройств под управлением MikroTik RouterOS с помощью API.
- 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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
new_data list / элементы=dictionary | Список всех элементов текущего пути после внесения изменений. Возвращается: всегда Пример: |
old_data list / элементы=dictionary | Список всех элементов текущего пути до внесения изменений. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/routeros/api_modify_module.html