Spec-Zone.ru › Ansible

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
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

ca_path

path

added in community.routeros 1.2.0

Файл в формате PEM, содержащий сертификат CA, который будет использоваться для проверки сертификата.

См. также validate_cert_hostname. Используется только когда tls=true и validate_certs=true.

data

list / elements=dictionary / required

Данные, которые должны присутствовать для этого пути.

Поля, которые не указаны, не будут изменены.

Если .id встречается в записи, она будет игнорироваться.

encoding

string

added in community.routeros 2.1.0

Используйте указанную кодировку при взаимодействии с устройством RouterOS.

По умолчанию ASCII. Обратите внимание, что UTF-8 требует librouteros 3.2.1 или новее.

По умолчанию: "ASCII"

ensure_order

boolean

Гарантировать ли тот же порядок конфигурации, что и в data.

Требуется handle_absent_entries=remove.

Варианты:

  • false ← (по умолчанию)
  • true

force_no_cert

boolean

added in community.routeros 2.4.0

Установите в true, чтобы подключиться без сертификата, когда tls=true.

См. также validate_certs.

Примечание: это приводит к использованию анонимных шифров Diffie-Hellman (ADH). Протокол подвержен атакам «человек посередине», поскольку ключи, используемые в обмене, не аутентифицированы. Вместо того, чтобы просто подключаться без сертификата, чтобы «заставить все работать», взгляните на validate_certs и ca_path.

Варианты:

  • false ← (по умолчанию)
  • true

handle_absent_entries

string

Как обрабатывать записи, которые присутствуют в текущей конфигурации, но отсутствуют в data.

ignore игнорирует их.

remove удаляет их.

Варианты:

  • "ignore" ← (по умолчанию)
  • "remove"

handle_entries_content

string

Для отдельной записи в data, это описывает, как обрабатывать поля, которые не упомянуты в этой записи, но появляются в фактической конфигурации.

Если ignore, они не изменяются.

Если remove, они удаляются. Если хотя бы одно поле не может быть удалено, модуль завершится с ошибкой.

Если remove_as_much_as_possible, все, что может быть удалено, будет удалено. Те, которые не могут быть удалены, будут сохранены.

Обратите внимание, что remove и remove_as_much_as_possible не применяются к полям только для записи.

Варианты:

  • "ignore" ← (по умолчанию)
  • "remove"
  • "remove_as_much_as_possible"

handle_read_only

string

added in community.routeros 2.10.0

Как обрабатывать значения, переданные для полей только для чтения.

Если ignore, они не передаются в API.

Если validate, значения не передаются для создания, а для обновления они сравниваются со значением, возвращенным для объекта. Если они отличаются, модуль завершается с ошибкой.

Если error, модуль завершится с ошибкой, если будут предоставлены поля только для чтения.

Варианты:

  • "ignore"
  • "validate"
  • "error" ← (по умолчанию)

handle_write-only

string

added in community.routeros 2.10.0

Как обрабатывать значения, переданные для полей только для записи.

Если create_only, они передаются при создании и игнорируются при обновлении.

Если always_update, они всегда передаются в API. Это означает, что если такое значение присутствует, модуль всегда приведет к changed, поскольку нет возможности проверить, изменилось ли значение на самом деле.

Если error, модуль завершится с ошибкой, если будут предоставлены поля только для записи.

Варианты:

  • "create_only" ← (по умолчанию)
  • "always_update"
  • "error"

hostname

string / required

Имя хоста RouterOS API.

password

string / required

Пароль пользователя RouterOS.

путь

строка / обязательно

Путь для запроса.

Пример значения: ip address. Это эквивалентно выполнению команд модификации в /ip address в консоли RouterOS.

Допустимые значения:

  • "caps-man aaa"
  • "caps-man access-list"
  • "caps-man channel"
  • "caps-man configuration"
  • "caps-man datapath"
  • "caps-man manager"
  • "caps-man manager interface"
  • "caps-man provisioning"
  • "caps-man security"
  • "certificate settings"
  • "interface bonding"
  • "interface bridge"
  • "interface bridge mlag"
  • "interface bridge port"
  • "interface bridge port-controller"
  • "interface bridge port-extender"
  • "interface bridge settings"
  • "interface bridge vlan"
  • "interface detect-internet"
  • "interface eoip"
  • "interface ethernet"
  • "interface ethernet poe"
  • "interface ethernet switch"
  • "interface ethernet switch port"
  • "interface gre"
  • "interface gre6"
  • "interface l2tp-server server"
  • "interface list"
  • "interface list member"
  • "interface ovpn-client"
  • "interface ovpn-server server"
  • "interface ppp-client"
  • "interface pppoe-client"
  • "interface pppoe-server server"
  • "interface pptp-server server"
  • "interface sstp-server server"
  • "interface vlan"
  • "interface vrrp"
  • "interface wifi"
  • "interface wifi aaa"
  • "interface wifi access-list"
  • "interface wifi cap"
  • "interface wifi capsman"
  • "interface wifi channel"
  • "interface wifi configuration"
  • "interface wifi datapath"
  • "interface wifi interworking"
  • "interface wifi provisioning"
  • "interface wifi security"
  • "interface wifi steering"
  • "interface wifiwave2"
  • "interface wifiwave2 aaa"
  • "interface wifiwave2 access-list"
  • "interface wifiwave2 cap"
  • "interface wifiwave2 capsman"
  • "interface wifiwave2 channel"
  • "interface wifiwave2 configuration"
  • "interface wifiwave2 datapath"
  • "interface wifiwave2 interworking"
  • "interface wifiwave2 provisioning"
  • "interface wifiwave2 security"
  • "interface wifiwave2 steering"
  • "interface wireguard"
  • "interface wireguard peers"
  • "interface wireless"
  • "interface wireless align"
  • "interface wireless cap"
  • "interface wireless security-profiles"
  • "interface wireless sniffer"
  • "interface wireless snooper"
  • "iot modbus"
  • "ip accounting"
  • "ip accounting web-access"
  • "ip address"
  • "ip arp"
  • "ip cloud"
  • "ip cloud advanced"
  • "ip dhcp-client"
  • "ip dhcp-client option"
  • "ip dhcp-relay"
  • "ip dhcp-server"
  • "ip dhcp-server config"
  • "ip dhcp-server lease"
  • "ip dhcp-server matcher"
  • "ip dhcp-server network"
  • "ip dhcp-server option"
  • "ip dhcp-server option sets"
  • "ip dns"
  • "ip dns adlist"
  • "ip dns static"
  • "ip firewall address-list"
  • "ip firewall connection tracking"
  • "ip firewall filter"
  • "ip firewall layer7-protocol"
  • "ip firewall mangle"
  • "ip firewall nat"
  • "ip firewall raw"
  • "ip firewall service-port"
  • "ip hotspot service-port"
  • "ip ipsec identity"
  • "ip ipsec peer"
  • "ip ipsec policy"
  • "ip ipsec profile"
  • "ip ipsec proposal"
  • "ip ipsec settings"
  • "ip neighbor discovery-settings"
  • "ip pool"
  • "ip proxy"
  • "ip route"
  • "ip route rule"
  • "ip route vrf"
  • "ip service"
  • "ip settings"
  • "ip smb"
  • "ip socks"
  • "ip ssh"
  • "ip tftp settings"
  • "ip traffic-flow"
  • "ip traffic-flow ipfix"
  • "ip traffic-flow target"
  • "ip upnp"
  • "ip upnp interfaces"
  • "ip vrf"
  • "ipv6 address"
  • "ipv6 dhcp-client"
  • "ipv6 dhcp-server"
  • "ipv6 dhcp-server option"
  • "ipv6 firewall address-list"
  • "ipv6 firewall filter"
  • "ipv6 firewall mangle"
  • "ipv6 firewall nat"
  • "ipv6 firewall raw"
  • "ipv6 nd"
  • "ipv6 nd prefix"
  • "ipv6 nd prefix default"
  • "ipv6 route"
  • "ipv6 settings"
  • "mpls"
  • "mpls interface"
  • "mpls ldp"
  • "mpls ldp accept-filter"
  • "mpls ldp advertise-filter"
  • "mpls ldp interface"
  • "port firmware"
  • "port remote-access"
  • "ppp aaa"
  • "ppp profile"
  • "ppp secret"
  • "queue interface"
  • "queue simple"
  • "queue tree"
  • "queue type"
  • "radius"
  • "radius incoming"
  • "routing bgp aggregate"
  • "routing bgp connection"
  • "routing bgp instance"
  • "routing bgp network"
  • "routing bgp peer"
  • "routing bgp template"
  • "routing filter"
  • "routing filter num-list"
  • "routing filter rule"
  • "routing filter select-rule"
  • "routing id"
  • "routing igmp-proxy"
  • "routing igmp-proxy interface"
  • "routing mme"
  • "routing ospf area"
  • "routing ospf area range"
  • "routing ospf instance"
  • "routing ospf interface-template"
  • "routing ospf static-neighbor"
  • "routing pimsm instance"
  • "routing pimsm interface-template"
  • "routing rip"
  • "routing ripng"
  • "routing rule"
  • "routing table"
  • "snmp"
  • "snmp community"
  • "system clock"
  • "system clock manual"
  • "system health settings"
  • "system identity"
  • "system leds settings"
  • "system logging"
  • "system logging action"
  • "system note"
  • "system ntp client"
  • "system ntp client servers"
  • "system ntp server"
  • "system package update"
  • "system resource irq rps"
  • "system routerboard settings"
  • "system scheduler"
  • "system script"
  • "system upgrade mirror"
  • "system ups"
  • "system watchdog"
  • "tool bandwidth-server"
  • "tool e-mail"
  • "tool graphing"
  • "tool graphing interface"
  • "tool graphing resource"
  • "tool mac-server"
  • "tool mac-server mac-winbox"
  • "tool mac-server ping"
  • "tool netwatch"
  • "tool romon"
  • "tool sms"
  • "tool sniffer"
  • "tool traffic-generator"
  • "user"
  • "user aaa"
  • "user group"
  • "user settings"

порт

целое число

Порт API RouterOS. Если tls задан, порт будет применяться к TLS/SSL соединению.

Значения по умолчанию 8728 для HTTP API и 8729 для HTTPS API.

ограничить

список / элементы=словарь

добавлено в community.routeros 2.18.0

Ограничить операцию записями, соответствующими следующим критериям.

Это может быть полезно в сочетании с handle_absent_entries=remove для работы с подмножеством значений.

Например, для path=ip firewall filter, можно установить restrict[].field=chain и restrict[].values=input для ограничения операции на входной цепи и игнорирования цепей пересылки и вывода.

поле

строка / обязательно

Поле, значения которого следует ограничить.

инвертировать

булево

Инвертировать условие. Это влияет на restrict[].match_disabled, restrict[].values, и restrict[].regex.

Допустимые значения:

  • false ← (по умолчанию)
  • true

соответствовать_отключенным

булево

Нужно ли соответствовать отключенным или не заданным значениям.

Допустимые значения:

  • false ← (по умолчанию)
  • true

regex

string

Регулярное выражение, сопоставляющее значения поля для ограничения.

Обратите внимание, что все значения будут преобразованы в строки перед сопоставлением.

Невозможно сопоставить отключенные значения с помощью регулярных выражений. Установите restrict[].match_disabled=true, если вы также хотите сопоставить отключенные значения.

values

list / elements=any

Значения поля, которые нужно ограничить.

Обратите внимание, что типы значений важны. Если вы предоставите строку "0", а librouteros преобразует возвращаемое значение API в целое число 0, то это не будет соответствовать. Если вы не уверены, лучше включить оба варианта: как строку, так и целое число.

timeout

integer

добавлен в community.routeros 2.3.0

Таймаут запроса.

По умолчанию: 10

tls

aliases: ssl

boolean

Если установлено, для подключения к RouterOS API будет использоваться TLS.

Варианты:

  • false ← (по умолчанию)
  • true

username

string / обязательно

Пользователь RouterOS для входа.

validate_cert_hostname

boolean

добавлен в community.routeros 1.2.0

Установите true для проверки имен хостов в сертификатах.

См. также validate_certs. Используется только при tls=true и validate_certs=true.

Варианты:

  • false ← (по умолчанию)
  • true

validate_certs

boolean

добавлен в community.routeros 1.2.0

Установите false для пропуска проверки TLS-сертификатов.

См. также validate_cert_hostname. Используется только при tls=true.

Примечание: вместо простого отключения проверки сертификатов для «работы», рассмотрите создание собственного сертификата CA и использование его для подписи сертификатов, используемых для вашего маршрутизатора. Вы можете сообщить модулю о своем сертификате CA с помощью параметра ca_path.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группа действий: community.routeros.api

Используйте group/community.routeros.api в module_defaults для установки значений по умолчанию для этого модуля.

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз статуса изменения без изменения целевого объекта.

diff_mode

Поддержка: полная

В режиме сравнения вернёт подробности о том, что изменилось (или, возможно, должно быть изменено в check_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

список / элементы=словарь

Список всех элементов для текущего пути после внесения изменений.

Возвращается: всегда

Пример: [{".id": "*1", "actual-interface": "bridge", "address": "192.168.1.1/24", "comment": "awesome", "disabled": false, "dynamic": false, "interface": "bridge", "invalid": false, "network": "192.168.1.0"}]

old_data

список / элементы=словарь

Список всех элементов для текущего пути до внесения изменений.

Возвращается: всегда

Пример: [{".id": "*1", "actual-interface": "bridge", "address": "192.168.88.1/24", "comment": "defconf", "disabled": false, "dynamic": false, "interface": "bridge", "invalid": false, "network": "192.168.88.0"}]

Авторы

  • Felix Fontein (@felixfontein)

Ссылки на коллекцию

  • Система отслеживания задач
  • Репозиторий (исходные коды)
  • Задать вопрос (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_modify_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API