community.routeros.api модуль – Ansible модуль для RouterOS API
Примечание
Этот модуль входит в коллекцию community.routeros (версия 2.19.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.routeros. Для использования этого модуля необходимы дополнительные требования, см. Требования для подробностей.
Чтобы использовать его в книге задач, укажите: community.routeros.api.
Описание
- Ansible модуль для RouterOS API с библиотекой Python
librouteros. - Этот модуль может добавлять, удалять, обновлять, запросы и выполнять произвольные команды в RouterOS через API.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- librouteros
- Python >= 3.6 (для librouteros)
Параметры
Параметр | Комментарии |
|---|---|
add строка | Добавит выбранные аргументы в указанный путь конфигурации RouterOS. Пример Эквивалент в CLI RouterOS |
ca_path путь добавлено в community.routeros 1.2.0 | Файл в формате PEM, содержащий сертификат CA, который будет использоваться для проверки сертификатов. См. также |
cmd строка | Выполнить произвольную команду в указанном пути, после команды можно добавить Пример пути Пример пути |
encoding строка добавлено в community.routeros 2.1.0 | Использование указанного кодирования при общении с устройством RouterOS. По умолчанию По умолчанию: |
extended_query словарь | Расширенный запрос по указанному пути для выбранных атрибутов запроса из API RouterOS. Расширенный запрос позволяет использовать сопряженные входные данные. Если соответствующей записи нет, будет возвращен пустой список. |
|
attributes список / элементы=строка / обязательно |
Список атрибутов для возврата. Каждый атрибут, используемый в |
|
where список / элементы=словарь |
Позволяет ограничить возвращаемые объекты. Условиям здесь необходимо соответствовать всем. Условию |
|
attribute строка |
Атрибут для сопоставления. Должен входить в Должно быть указано либо |
|
is строка |
Оператор для сопоставления. Для равенства используйте Используйте Должно быть указано либо Варианты:
|
|
or список / элементы=словарь |
Список условий, так что хотя бы одному из них должно соответствовать. Должно быть указано либо |
|
attribute строка / обязательно |
Атрибут для сопоставления. Должен входить в |
|
is строка / обязательно |
Оператор для сопоставления. Для равенства используйте Используйте Варианты:
|
|
value любой / обязательно |
Значение для сравнения. Должно быть списком для |
|
value любой |
Значение для сравнения. Должно быть списком для Должно быть указано либо |
force_no_cert логическое добавлено в community.routeros 2.4.0 | Установите в См. также Примечание: это принудительно использует анонимные шифры Diffie-Hellman (ADH). Протокол уязвим для атак «человек посередине», потому что ключи, используемые в обмене, не аутентифицированы. Вместо того, чтобы просто подключаться без сертификата, чтобы «заставить работать», ознакомьтесь с Варианты:
|
hostname строка / обязательно | Имя хоста RouterOS API. |
пароль строка / обязательно | Пароль пользователя RouterOS. |
путь строка / обязательно | Основной путь для всех других аргументов. Если другие аргументы не заданы, API вернёт все элементы в выбранном пути. Пример |
порт целое число | Порт API RouterOS. Если Значения по умолчанию |
запрос строка | Используйте заданный путь для поиска выбранных атрибутов запроса в RouterOS API. Ключевое слово WHERE расширяет запрос. Формат WHERE: ключ оператор значение - с пробелами. Допустимые операторы: Пример пути Пример пути Пример пути Эквивалент в RouterOS CLI |
удалить строка | Удаляет конфигурацию/значение из RouterOS по идентификатору ‘.id’. Пример Эквивалент в RouterOS CLI Обратите внимание, что |
таймаут целое число добавлен в community.routeros 2.3.0 | Таймаут для запроса. Значение по умолчанию: |
tls псевдонимы: ssl булево | Если установлено, TLS будет использоваться для подключения к API RouterOS. Варианты:
|
обновить строка | Обновляет конфигурацию/значение в RouterOS по идентификатору ‘.id’ в выбранном пути. Пример Эквивалент в RouterOS CLI Обратите внимание, что |
имя_пользователя строка / обязательно | Логин пользователя RouterOS. |
проверка_имени_хоста_сертификата булево добавлен в community.routeros 1.2.0 | Установите в См. также Варианты:
|
проверка_сертификатов булево добавлен в community.routeros 1.2.0 | Установите в См. также Примечание: вместо простого отключения проверки сертификатов, чтобы «заставить работать», рассмотрите возможность создания собственного сертификата CA и использования его для подписи сертификатов, используемых для вашего маршрутизатора. Вы можете сообщить модулю о своём сертификате CA с помощью опции Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
группа_действий | Группа действий: community.routeros.api добавлен в community.routeros 2.1.0 | Используйте |
режим_проверки | Поддержка: нет | Может работать в режиме |
режим_сравнения | Поддержка: нет | Вернёт детали изменений (или, возможно, требующих изменения в |
платформа | Платформа: 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 список / элементы=строка | Все выводы находятся в списке со словарями, возвращаемыми API RouterOS. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 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_module.html