Модуль community.routeros.api — модуль Ansible для API RouterOS
Примечание
Этот модуль входит в коллекцию community.routeros (версия 3.20.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.routeros. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.routeros.api.
Краткое описание
- Модуль Ansible для API RouterOS с библиотекой Python
librouteros. - Этот модуль позволяет добавлять, удалять, обновлять, запрашивать и выполнять произвольные команды в RouterOS через API.
Требования
На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.
- librouteros
- Python >= 3.6 (для librouteros)
Параметры
Параметр | Комментарии |
|---|---|
add string | Добавляет выбранные аргументы в выбранный путь конфигурации RouterOS. Пример Эквивалент в CLI RouterOS: |
ca_path path добавлено в community.routeros 1.2.0 | Файл в формате PEM, содержащий сертификат центра сертификации (CA), который будет использоваться для проверки сертификатов. См. также |
cmd string | Выполняет любую/произвольную команду в выбранном пути; после команды можно добавить Путь Путь |
encoding string добавлено в community.routeros 2.1.0 | Использовать указанную кодировку при взаимодействии с устройством RouterOS. По умолчанию используется По умолчанию: |
extended_query dictionary | Расширенный запрос к указанному пути для выбранных атрибутов запроса из API RouterOS. Расширенный запрос позволяет задавать условия совместно. Если совпадений нет, будет возвращён пустой список. |
|
attributes list / elements=string / обязательный |
Список атрибутов, которые нужно вернуть. Каждый атрибут, используемый в условии |
|
where list / elements=dictionary |
Позволяет ограничить возвращаемые объекты. Все указанные здесь условия должны выполняться. В условии |
|
attribute string |
Атрибут для сопоставления. Должен входить в Необходимо указать либо |
|
is string |
Оператор, используемый для сопоставления. Для проверки равенства используйте Используйте Необходимо указать либо Допустимые значения:
|
|
or list / elements=dictionary |
Список условий, из которых должно выполняться хотя бы одно. Необходимо указать либо |
|
attribute string / обязательный |
Атрибут для сопоставления. Должен входить в |
|
is string / обязательный |
Оператор, используемый для сопоставления. Для проверки равенства используйте Используйте Допустимые значения:
|
|
value any / обязательный |
Значение для сравнения. Для |
|
value any |
Значение для сравнения. Для Необходимо указать либо |
force_no_cert boolean добавлено в community.routeros 2.4.0 | Установите значение См. также Примечание: это принудительно включает шифры анонимного Диффи — Хеллмана (ADH). Протокол уязвим для атак «человек посередине», поскольку ключи, используемые при обмене, не проходят аутентификацию. Вместо того чтобы просто подключаться без сертификата, чтобы «заставить всё работать», ознакомьтесь с Допустимые значения:
|
hostname string / обязательный | Имя хоста RouterOS API. |
password string / обязательный | Пароль пользователя RouterOS. |
path string / обязательный | Основной путь для всех остальных аргументов. Если другие аргументы не заданы, модуль вернёт все элементы выбранного пути. Пример |
port integer | Порт RouterOS API. Если задано Порты по умолчанию: |
query string | Запрос к указанному пути для выбранных атрибутов запроса из API RouterOS. WHERE — ключевое слово, расширяющее запрос. Формат WHERE: ключ оператор значение, разделённые пробелами. Допустимые операторы WHERE: Пример: путь Пример: путь Пример: путь Эквивалент в CLI RouterOS: |
remove string | Удаляет конфигурацию/значение из RouterOS по «.id». Пример Эквивалент в CLI RouterOS: Обратите внимание: |
timeout integer добавлено в community.routeros 2.3.0 | Тайм-аут запроса. По умолчанию: |
tls псевдонимы: ssl boolean | Если параметр включён, для подключения к RouterOS API будет использоваться TLS. Допустимые значения:
|
update string | Обновляет конфигурацию/значение в RouterOS по «.id» в выбранном пути. Пример Эквивалент в CLI RouterOS: Обратите внимание: |
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 добавлено в community.routeros 2.1.0 | Используйте |
check_mode | Поддержка: нет | Может выполняться в режиме |
diff_mode | Поддержка: нет | В режиме сравнения возвращает сведения об изменениях (или о том, что, возможно, потребуется изменить в |
idempotent | Поддержка: не применимо Идемпотентность выполненной команды зависит от выполняемой операции. | При повторном запуске с теми же аргументами вне режима проверки второй вызов сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом. |
platform | Платформа: RouterOS | Целевая ОС/семейства ОС, с которыми можно работать. |
Примечания
Примечание
-
add,remove,update,cmdиqueryявляются взаимоисключающими. - Для более точечного изменения используйте модули community.routeros.api_modify и community.routeros.api_find_and_modify, а для более контролируемого возврата всех записей указанного пути — модуль community.routeros.api_info.
См. также
См. также
- Как заключать команды и аргументы в кавычки и удалять кавычки
-
Как заключать команды и аргументы в кавычки и удалять кавычки.
- community.routeros.api_facts
-
Сбор фактов с удалённых устройств под управлением MikroTik RouterOS с помощью API.
- community.routeros.api_find_and_modify
-
Поиск и изменение данных с помощью API.
- community.routeros.api_info
-
Получение информации через API.
- community.routeros.api_modify
-
Изменение данных по путям с помощью API.
- Как подключаться к устройствам RouterOS с помощью API RouterOS
-
Как подключаться к устройствам RouterOS с помощью API RouterOS.
Примеры
---
- name: Get example - ip address print
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "ip address"
register: ipaddrd_printout
- name: Dump "Get example" output
ansible.builtin.debug:
msg: '{{ ipaddrd_printout }}'
- name: Add example - ip address
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "ip address"
add: "address=192.168.255.10/24 interface=ether2"
- name: Query example - ".id, address" in "ip address WHERE address == 192.168.255.10/24"
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "ip address"
query: ".id address WHERE address == {{ ip2 }}"
register: queryout
- name: Dump "Query example" output
ansible.builtin.debug:
msg: '{{ queryout }}'
- name: Extended query example - ".id,address,network" where address is not 192.168.255.10/24 or is 10.20.36.20/24
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "ip address"
extended_query:
attributes:
- network
- address
- .id
where:
- attribute: "network"
is: "=="
value: "192.168.255.0"
- or:
- attribute: "address"
is: "!="
value: "192.168.255.10/24"
- attribute: "address"
is: "eq"
value: "10.20.36.20/24"
- attribute: "network"
is: "in"
value:
- "10.20.36.0"
- "192.168.255.0"
register: extended_queryout
- name: Dump "Extended query example" output
ansible.builtin.debug:
msg: '{{ extended_queryout }}'
- name: Update example - ether2 ip address with ".id = *14"
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "ip address"
update: >-
.id=*14
address=192.168.255.20/24
comment={{ 'Update 192.168.255.10/24 to 192.168.255.20/24 on ether2' | community.routeros.quote_argument_value }}
- name: Remove example - ether2 ip 192.168.255.20/24 with ".id = *14"
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "ip address"
remove: "*14"
- name: Arbitrary command example "/system identity print"
community.routeros.api:
hostname: "{{ hostname }}"
password: "{{ password }}"
username: "{{ username }}"
path: "system identity"
cmd: "print"
register: arbitraryout
- name: Dump "Arbitrary command example" output
ansible.builtin.debug:
msg: '{{ arbitraryout }}'
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
message list / elements=string | Все выходные данные представлены в виде списка со словарями, возвращёнными API RouterOS. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 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_module.html