community.routeros.api_modify модуль — Изменение данных по пути с помощью API
Примечание
Этот модуль входит в коллекцию community.routeros (версия 2.19.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
Параметры
Параметр | Комментарии |
|---|---|
ca_path path added in community.routeros 1.2.0 | Файл в формате PEM, содержащий сертификат CA, который будет использоваться для проверки сертификата. См. также |
data list / elements=dictionary / required | Данные, которые должны присутствовать для этого пути. Поля, которые не указаны, не будут изменены. Если |
encoding string added in community.routeros 2.1.0 | Используйте указанную кодировку при взаимодействии с устройством RouterOS. По умолчанию По умолчанию: |
ensure_order boolean | Гарантировать ли тот же порядок конфигурации, что и в Требуется Варианты:
|
force_no_cert boolean added in community.routeros 2.4.0 | Установите в См. также Примечание: это приводит к использованию анонимных шифров Diffie-Hellman (ADH). Протокол подвержен атакам «человек посередине», поскольку ключи, используемые в обмене, не аутентифицированы. Вместо того, чтобы просто подключаться без сертификата, чтобы «заставить все работать», взгляните на Варианты:
|
handle_absent_entries string | Как обрабатывать записи, которые присутствуют в текущей конфигурации, но отсутствуют в
Варианты:
|
handle_entries_content string | Для отдельной записи в Если Если Если Обратите внимание, что Варианты:
|
handle_read_only string added in community.routeros 2.10.0 | Как обрабатывать значения, переданные для полей только для чтения. Если Если Если Варианты:
|
handle_write-only string added in community.routeros 2.10.0 | Как обрабатывать значения, переданные для полей только для записи. Если Если Если Варианты:
|
hostname string / required | Имя хоста RouterOS API. |
password string / required | Пароль пользователя RouterOS. |
путь строка / обязательно | Путь для запроса. Пример значения: Допустимые значения:
|
порт целое число | Порт API RouterOS. Если Значения по умолчанию |
ограничить список / элементы=словарь добавлено в community.routeros 2.18.0 | Ограничить операцию записями, соответствующими следующим критериям. Это может быть полезно в сочетании с Например, для |
|
поле строка / обязательно |
Поле, значения которого следует ограничить. |
|
инвертировать булево |
Инвертировать условие. Это влияет на Допустимые значения:
|
|
соответствовать_отключенным булево |
Нужно ли соответствовать отключенным или не заданным значениям. Допустимые значения:
|
|
regex string |
Регулярное выражение, сопоставляющее значения поля для ограничения. Обратите внимание, что все значения будут преобразованы в строки перед сопоставлением. Невозможно сопоставить отключенные значения с помощью регулярных выражений. Установите |
|
values list / elements=any |
Значения поля, которые нужно ограничить. Обратите внимание, что типы значений важны. Если вы предоставите строку |
timeout integer добавлен в community.routeros 2.3.0 | Таймаут запроса. По умолчанию: |
tls aliases: ssl boolean | Если установлено, для подключения к RouterOS API будет использоваться TLS. Варианты:
|
username string / обязательно | Пользователь RouterOS для входа. |
validate_cert_hostname boolean добавлен в community.routeros 1.2.0 | Установите См. также Варианты:
|
validate_certs boolean добавлен в community.routeros 1.2.0 | Установите См. также Примечание: вместо простого отключения проверки сертификатов для «работы», рассмотрите создание собственного сертификата CA и использование его для подписи сертификатов, используемых для вашего маршрутизатора. Вы можете сообщить модулю о своем сертификате CA с помощью параметра Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.routeros.api | Используйте |
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: полная | В режиме сравнения вернёт подробности о том, что изменилось (или, возможно, должно быть изменено в |
platform | Платформа: RouterOS | Целевые ОС/семейства, по которым можно выполнять операции. |
Примечания
Примечание
- Если в пути присутствуют только поля для записи, модуль не является идемпотентным в строгом смысле, так как он не может проверить текущее значение этих полей. Поведение, которое модуль должен принять, можно контролировать с помощью параметра
handle_write_only.
См. также
См. также
- 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 список / элементы=словарь | Список всех элементов для текущего пути после внесения изменений. Возвращается: всегда Пример: |
old_data список / элементы=словарь | Список всех элементов для текущего пути до внесения изменений. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/routeros/api_modify_module.html