It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallcommunity.routeros.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: community.routeros.api_facts.
Collects a base set of device facts from a remote device that is running RouterOS. This module prepends all of the base network fact keys with ansible_net_<fact>. The facts module will always collect a base set of facts from the device and can enable or disable collection of additional facts.
Note: this forces the use of anonymous Diffie-Hellman (ADH) ciphers. The protocol is susceptible to Man-in-the-Middle attacks, because the keys used in the exchange are not authenticated. Instead of simply connecting without a certificate to “make things work” have a look at validate_certs and ca_path.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
gather_subset
+
list / elements=string
+
+
When supplied, this argument will restrict the facts collected to a given subset. Possible values for this argument include all, hardware, interfaces, and routing.
+
Can specify a list of values to include a larger subset. Values can also be used with an initial ! to specify that a specific subset should not be collected.
+
Default:["all"]
+
+
+
+
hostname
+
string / required
+
+
RouterOS hostname API.
+
+
+
+
password
+
string / required
+
+
RouterOS user password.
+
+
+
+
port
+
integer
+
+
RouterOS API port. If tls is set, port will apply to TLS/SSL connection.
+
Defaults are 8728 for the HTTP API, and 8729 for the HTTPS API.
+
+
+
+
timeout
+
integer
+
added in community.routeros 2.3.0
+
+
Timeout for the request.
+
Default:10
+
+
+
+
+
tls
+
aliases: ssl
+
boolean
+
+
If is set TLS will be used for RouterOS API connection.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
username
+
string / required
+
+
RouterOS login user.
+
+
+
+
validate_cert_hostname
+
boolean
+
added in community.routeros 1.2.0
+
+
Set to true to validate hostnames in certificates.
Note: instead of simply deactivating certificate validations to “make things work”, please consider creating your own CA certificate and using it to sign certificates used for your router. You can tell the module about your CA certificate with the ca_path option.
Facts returned by this module are added/updated in the hostvars host facts and can be referenced by name just like any other host fact. They do not need to be registered in order to use them.
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallcommunity.routeros.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: community.routeros.api_find_and_modify.
Allows to find entries for a path by conditions and modify the values of these entries.
+
Use the community.routeros.api_find_and_modify module to set all entries of a path to specific values, or change multiple entries in different ways in one step.
Note: this forces the use of anonymous Diffie-Hellman (ADH) ciphers. The protocol is susceptible to Man-in-the-Middle attacks, because the keys used in the exchange are not authenticated. Instead of simply connecting without a certificate to “make things work” have a look at validate_certs and ca_path.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
hostname
+
string / required
+
+
RouterOS hostname API.
+
+
+
+
password
+
string / required
+
+
RouterOS user password.
+
+
+
+
path
+
string / required
+
+
Path to query.
+
An example value is ipaddress. This is equivalent to running /ipaddress in the RouterOS CLI.
+
+
+
+
port
+
integer
+
+
RouterOS API port. If tls is set, port will apply to TLS/SSL connection.
+
Defaults are 8728 for the HTTP API, and 8729 for the HTTPS API.
+
+
+
+
require_matches_max
+
integer
+
+
Make sure that there are no more matches than this number.
+
If there are more matches, fail instead of modifying anything.
+
If not specified, there is no upper limit.
+
+
+
+
require_matches_min
+
integer
+
+
Make sure that there are no less matches than this number.
+
If there are less matches, fail instead of modifying anything.
+
Default:0
+
+
+
+
timeout
+
integer
+
added in community.routeros 2.3.0
+
+
Timeout for the request.
+
Default:10
+
+
+
+
+
tls
+
aliases: ssl
+
boolean
+
+
If is set TLS will be used for RouterOS API connection.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
username
+
string / required
+
+
RouterOS login user.
+
+
+
+
validate_cert_hostname
+
boolean
+
added in community.routeros 1.2.0
+
+
Set to true to validate hostnames in certificates.
Note: instead of simply deactivating certificate validations to “make things work”, please consider creating your own CA certificate and using it to sign certificates used for your router. You can tell the module about your CA certificate with the ca_path option.
+
Choices:
+
+
false
+
true← (default)
+
+
+
+
+
values
+
dictionary / required
+
+
On all entries matching the conditions in find, set the keys of this option to the values specified here.
+
Use YAML ~, or prepend keys with !, to specify to unset a value.
If you want to change values based on their old values (like change all comments ‘foo’ to ‘bar’) and make sure that there are at least N such values, you can use require_matches_min=N together with allow_no_matches=true. This will make the module fail if there are less than N such entries, but not if there is no match. The latter case is needed for idempotency of the task: once the values have been changed, there should be no further match.
-name:Rename bridge from 'bridge' to 'my-bridge'
+community.routeros.api_find_and_modify:
+hostname:"{{hostname}}"
+password:"{{password}}"
+username:"{{username}}"
+path:interface bridge
+find:
+name:bridge
+values:
+name:my-bridge
+
+-name:Change IP address to 192.168.1.1 for interface bridge - assuming there is only one
+community.routeros.api_find_and_modify:
+hostname:"{{hostname}}"
+password:"{{password}}"
+username:"{{username}}"
+path:ip address
+find:
+interface:bridge
+values:
+address:"192.168.1.1/24"
+# If there are zero entries, or more than one: fail! We expected that
+# exactly one is configured.
+require_matches_min:1
+require_matches_max:1
+
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallcommunity.routeros.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: community.routeros.api_info.
Entries are normalized, dynamic and builtin entries are not returned. Use the handle_disabled and hide_defaults options to control normalization, the include_dynamic and include_builtin options to also return dynamic resp. builtin entries, and use unfiltered to return all fields including counters.
+
Note that this module is still heavily in development, and only supports some paths. If you want to support new paths, or think you found problems with existing paths, please first create an issue in the community.routeros Issue Tracker.
Note: this forces the use of anonymous Diffie-Hellman (ADH) ciphers. The protocol is susceptible to Man-in-the-Middle attacks, because the keys used in the exchange are not authenticated. Instead of simply connecting without a certificate to “make things work” have a look at validate_certs and ca_path.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
handle_disabled
+
string
+
+
How to handle unset values.
+
exclamation prepends the keys with ! in the output with value null.
+
null-value uses the regular key with value null.
+
omit omits these values from the result.
+
Choices:
+
+
"exclamation"← (default)
+
"null-value"
+
"omit"
+
+
+
+
+
hide_defaults
+
boolean
+
+
Whether to hide default values.
+
Choices:
+
+
false
+
true← (default)
+
+
+
+
+
hostname
+
string / required
+
+
RouterOS hostname API.
+
+
+
+
include_builtin
+
boolean
+
added in community.routeros 2.4.0
+
+
Whether to include builtin values.
+
By default, they are not returned, and the builtin keys are omitted.
+
If set to true, they are returned as well, and the builtin keys are returned as well.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
include_dynamic
+
boolean
+
+
Whether to include dynamic values.
+
By default, they are not returned, and the dynamic keys are omitted.
+
If set to true, they are returned as well, and the dynamic keys are returned as well.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
include_read_only
+
boolean
+
added in community.routeros 2.10.0
+
+
Whether to include read-only fields.
+
By default, they are not returned.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
password
+
string / required
+
+
RouterOS user password.
+
+
+
+
path
+
string / required
+
+
Path to query.
+
An example value is ipaddress. This is equivalent to running /ipaddressprint in the RouterOS CLI.
+
Choices:
+
+
"caps-manaaa"
+
"caps-manaccess-list"
+
"caps-manchannel"
+
"caps-manconfiguration"
+
"caps-mandatapath"
+
"caps-manmanager"
+
"caps-manmanagerinterface"
+
"caps-manprovisioning"
+
"caps-mansecurity"
+
"certificatesettings"
+
"interface6to4"
+
"interfacebonding"
+
"interfacebridge"
+
"interfacebridgemlag"
+
"interfacebridgeport"
+
"interfacebridgeport-controller"
+
"interfacebridgeport-extender"
+
"interfacebridgesettings"
+
"interfacebridgevlan"
+
"interfacedetect-internet"
+
"interfaceeoip"
+
"interfaceethernet"
+
"interfaceethernetpoe"
+
"interfaceethernetswitch"
+
"interfaceethernetswitchport"
+
"interfacegre"
+
"interfacegre6"
+
"interfacel2tp-client"
+
"interfacel2tp-serverserver"
+
"interfacelist"
+
"interfacelistmember"
+
"interfaceovpn-client"
+
"interfaceovpn-serverserver"
+
"interfaceppp-client"
+
"interfacepppoe-client"
+
"interfacepppoe-serverserver"
+
"interfacepptp-serverserver"
+
"interfacesstp-serverserver"
+
"interfacevlan"
+
"interfacevrrp"
+
"interfacewifi"
+
"interfacewifiaaa"
+
"interfacewifiaccess-list"
+
"interfacewificap"
+
"interfacewificapsman"
+
"interfacewifichannel"
+
"interfacewificonfiguration"
+
"interfacewifidatapath"
+
"interfacewifiinterworking"
+
"interfacewifiprovisioning"
+
"interfacewifisecurity"
+
"interfacewifisteering"
+
"interfacewifiwave2"
+
"interfacewifiwave2aaa"
+
"interfacewifiwave2access-list"
+
"interfacewifiwave2cap"
+
"interfacewifiwave2capsman"
+
"interfacewifiwave2channel"
+
"interfacewifiwave2configuration"
+
"interfacewifiwave2datapath"
+
"interfacewifiwave2interworking"
+
"interfacewifiwave2provisioning"
+
"interfacewifiwave2security"
+
"interfacewifiwave2steering"
+
"interfacewireguard"
+
"interfacewireguardpeers"
+
"interfacewireless"
+
"interfacewirelessaccess-list"
+
"interfacewirelessalign"
+
"interfacewirelesscap"
+
"interfacewirelessconnect-list"
+
"interfacewirelesssecurity-profiles"
+
"interfacewirelesssniffer"
+
"interfacewirelesssnooper"
+
"iotmodbus"
+
"ipaccounting"
+
"ipaccountingweb-access"
+
"ipaddress"
+
"iparp"
+
"ipcloud"
+
"ipcloudadvanced"
+
"ipdhcp-client"
+
"ipdhcp-clientoption"
+
"ipdhcp-relay"
+
"ipdhcp-server"
+
"ipdhcp-serverconfig"
+
"ipdhcp-serverlease"
+
"ipdhcp-servermatcher"
+
"ipdhcp-servernetwork"
+
"ipdhcp-serveroption"
+
"ipdhcp-serveroptionsets"
+
"ipdns"
+
"ipdnsadlist"
+
"ipdnsforwarders"
+
"ipdnsstatic"
+
"ipfirewalladdress-list"
+
"ipfirewallconnectiontracking"
+
"ipfirewallfilter"
+
"ipfirewalllayer7-protocol"
+
"ipfirewallmangle"
+
"ipfirewallnat"
+
"ipfirewallraw"
+
"ipfirewallservice-port"
+
"iphotspotservice-port"
+
"ipipsecidentity"
+
"ipipsecpeer"
+
"ipipsecpolicy"
+
"ipipsecprofile"
+
"ipipsecproposal"
+
"ipipsecsettings"
+
"ipneighbordiscovery-settings"
+
"ippool"
+
"ipproxy"
+
"iproute"
+
"iprouterule"
+
"iproutevrf"
+
"ipservice"
+
"ipsettings"
+
"ipsmb"
+
"ipsocks"
+
"ipssh"
+
"iptftpsettings"
+
"iptraffic-flow"
+
"iptraffic-flowipfix"
+
"iptraffic-flowtarget"
+
"ipupnp"
+
"ipupnpinterfaces"
+
"ipvrf"
+
"ipv6address"
+
"ipv6dhcp-client"
+
"ipv6dhcp-server"
+
"ipv6dhcp-serveroption"
+
"ipv6firewalladdress-list"
+
"ipv6firewallfilter"
+
"ipv6firewallmangle"
+
"ipv6firewallnat"
+
"ipv6firewallraw"
+
"ipv6nd"
+
"ipv6ndprefix"
+
"ipv6ndprefixdefault"
+
"ipv6route"
+
"ipv6settings"
+
"mpls"
+
"mplsinterface"
+
"mplsldp"
+
"mplsldpaccept-filter"
+
"mplsldpadvertise-filter"
+
"mplsldpinterface"
+
"portfirmware"
+
"portremote-access"
+
"pppaaa"
+
"pppprofile"
+
"pppsecret"
+
"queueinterface"
+
"queuesimple"
+
"queuetree"
+
"queuetype"
+
"radius"
+
"radiusincoming"
+
"routingbgpaggregate"
+
"routingbgpconnection"
+
"routingbgpinstance"
+
"routingbgpnetwork"
+
"routingbgppeer"
+
"routingbgptemplate"
+
"routingfilter"
+
"routingfiltercommunity-list"
+
"routingfilternum-list"
+
"routingfilterrule"
+
"routingfilterselect-rule"
+
"routingid"
+
"routingigmp-proxy"
+
"routingigmp-proxyinterface"
+
"routingmme"
+
"routingospfarea"
+
"routingospfarearange"
+
"routingospfinstance"
+
"routingospfinterface-template"
+
"routingospfstatic-neighbor"
+
"routingpimsminstance"
+
"routingpimsminterface-template"
+
"routingrip"
+
"routingripng"
+
"routingrule"
+
"routingtable"
+
"snmp"
+
"snmpcommunity"
+
"systemclock"
+
"systemclockmanual"
+
"systemhealthsettings"
+
"systemidentity"
+
"systemledssettings"
+
"systemlogging"
+
"systemloggingaction"
+
"systemnote"
+
"systemntpclient"
+
"systemntpclientservers"
+
"systemntpserver"
+
"systempackageupdate"
+
"systemresourceirqrps"
+
"systemrouterboardsettings"
+
"systemscheduler"
+
"systemscript"
+
"systemupgrademirror"
+
"systemups"
+
"systemwatchdog"
+
"toolbandwidth-server"
+
"toole-mail"
+
"toolgraphing"
+
"toolgraphinginterface"
+
"toolgraphingresource"
+
"toolmac-server"
+
"toolmac-servermac-winbox"
+
"toolmac-serverping"
+
"toolnetwatch"
+
"toolromon"
+
"toolsms"
+
"toolsniffer"
+
"tooltraffic-generator"
+
"user"
+
"useraaa"
+
"usergroup"
+
"usersettings"
+
+
+
+
+
port
+
integer
+
+
RouterOS API port. If tls is set, port will apply to TLS/SSL connection.
+
Defaults are 8728 for the HTTP API, and 8729 for the HTTPS API.
+
+
+
+
restrict
+
list / elements=dictionary
+
added in community.routeros 2.18.0
+
+
Restrict output to entries matching the following criteria.
Whether disabled or not provided values should match.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
regex
+
string
+
+
A regular expression matching values of the field to limit to.
+
Note that all values will be converted to strings before matching.
+
It is not possible to match disabled values with regular expressions. Set restrict[].match_disabled=true if you also want to match disabled values.
+
+
+
+
values
+
list / elements=any
+
+
The values of the field to limit to.
+
Note that the types of the values are important. If you provide a string "0", and librouteros converts the value returned by the API to the integer 0, then this will not match. If you are not sure, better include both variants: both the string and the integer.
+
+
+
+
timeout
+
integer
+
added in community.routeros 2.3.0
+
+
Timeout for the request.
+
Default:10
+
+
+
+
+
tls
+
aliases: ssl
+
boolean
+
+
If is set TLS will be used for RouterOS API connection.
Note: instead of simply deactivating certificate validations to “make things work”, please consider creating your own CA certificate and using it to sign certificates used for your router. You can tell the module about your CA certificate with the ca_path option.
-name:Get IP addresses
+community.routeros.api_info:
+hostname:"{{hostname}}"
+password:"{{password}}"
+username:"{{username}}"
+path:ip address
+register:ip_addresses
+
+-name:Print data for IP addresses
+ansible.builtin.debug:
+var:ip_addresses.result
+
+-name:Get IP addresses
+community.routeros.api_info:
+hostname:"{{hostname}}"
+password:"{{password}}"
+username:"{{username}}"
+path:ip address
+register:ip_addresses
+
+-name:Print data for IP addresses
+ansible.builtin.debug:
+var:ip_addresses.result
+
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallcommunity.routeros.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: community.routeros.api_modify.
To make a backup of a path that can be restored with this module, use the community.routeros.api_info module.
+
The module ignores dynamic and builtin entries.
+
Note that this module is still heavily in development, and only supports some paths. If you want to support new paths, or think you found problems with existing paths, please first create an issue in the community.routeros Issue Tracker.
Note: this forces the use of anonymous Diffie-Hellman (ADH) ciphers. The protocol is susceptible to Man-in-the-Middle attacks, because the keys used in the exchange are not authenticated. Instead of simply connecting without a certificate to “make things work” have a look at validate_certs and ca_path.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
handle_absent_entries
+
string
+
+
How to handle entries that are present in the current config, but not in data.
+
ignore ignores them.
+
remove removes them.
+
Choices:
+
+
"ignore"← (default)
+
"remove"
+
+
+
+
+
handle_entries_content
+
string
+
+
For a single entry in data, this describes how to handle fields that are not mentioned in that entry, but appear in the actual config.
+
If ignore, they are not modified.
+
If remove, they are removed. If at least one cannot be removed, the module will fail.
+
If remove_as_much_as_possible, all that can be removed will be removed. The ones that cannot be removed will be kept.
+
Note that remove and remove_as_much_as_possible do not apply to write-only fields.
+
Choices:
+
+
"ignore"← (default)
+
"remove"
+
"remove_as_much_as_possible"
+
+
+
+
+
handle_read_only
+
string
+
added in community.routeros 2.10.0
+
+
How to handle values passed in for read-only fields.
+
If ignore, they are not passed to the API.
+
If validate, the values are not passed for creation, and for updating they are compared to the value returned for the object. If they differ, the module fails.
+
If error, the module will fail if read-only fields are provided.
+
Choices:
+
+
"ignore"
+
"validate"
+
"error"← (default)
+
+
+
+
+
handle_write_only
+
string
+
added in community.routeros 2.10.0
+
+
How to handle values passed in for write-only fields.
+
If create_only, they are passed on creation, and ignored for updating.
+
If always_update, they are always passed to the API. This means that if such a value is present, the module will always result in changed since there is no way to validate whether the value actually changed.
+
If error, the module will fail if write-only fields are provided.
+
Choices:
+
+
"create_only"← (default)
+
"always_update"
+
"error"
+
+
+
+
+
hostname
+
string / required
+
+
RouterOS hostname API.
+
+
+
+
password
+
string / required
+
+
RouterOS user password.
+
+
+
+
path
+
string / required
+
+
Path to query.
+
An example value is ipaddress. This is equivalent to running modification commands in /ipaddress in the RouterOS CLI.
+
Choices:
+
+
"caps-manaaa"
+
"caps-manaccess-list"
+
"caps-manchannel"
+
"caps-manconfiguration"
+
"caps-mandatapath"
+
"caps-manmanager"
+
"caps-manmanagerinterface"
+
"caps-manprovisioning"
+
"caps-mansecurity"
+
"certificatesettings"
+
"interface6to4"
+
"interfacebonding"
+
"interfacebridge"
+
"interfacebridgemlag"
+
"interfacebridgeport"
+
"interfacebridgeport-controller"
+
"interfacebridgeport-extender"
+
"interfacebridgesettings"
+
"interfacebridgevlan"
+
"interfacedetect-internet"
+
"interfaceeoip"
+
"interfaceethernet"
+
"interfaceethernetpoe"
+
"interfaceethernetswitch"
+
"interfaceethernetswitchport"
+
"interfacegre"
+
"interfacegre6"
+
"interfacel2tp-client"
+
"interfacel2tp-serverserver"
+
"interfacelist"
+
"interfacelistmember"
+
"interfaceovpn-client"
+
"interfaceovpn-serverserver"
+
"interfaceppp-client"
+
"interfacepppoe-client"
+
"interfacepppoe-serverserver"
+
"interfacepptp-serverserver"
+
"interfacesstp-serverserver"
+
"interfacevlan"
+
"interfacevrrp"
+
"interfacewifi"
+
"interfacewifiaaa"
+
"interfacewifiaccess-list"
+
"interfacewificap"
+
"interfacewificapsman"
+
"interfacewifichannel"
+
"interfacewificonfiguration"
+
"interfacewifidatapath"
+
"interfacewifiinterworking"
+
"interfacewifiprovisioning"
+
"interfacewifisecurity"
+
"interfacewifisteering"
+
"interfacewifiwave2"
+
"interfacewifiwave2aaa"
+
"interfacewifiwave2access-list"
+
"interfacewifiwave2cap"
+
"interfacewifiwave2capsman"
+
"interfacewifiwave2channel"
+
"interfacewifiwave2configuration"
+
"interfacewifiwave2datapath"
+
"interfacewifiwave2interworking"
+
"interfacewifiwave2provisioning"
+
"interfacewifiwave2security"
+
"interfacewifiwave2steering"
+
"interfacewireguard"
+
"interfacewireguardpeers"
+
"interfacewireless"
+
"interfacewirelessaccess-list"
+
"interfacewirelessalign"
+
"interfacewirelesscap"
+
"interfacewirelessconnect-list"
+
"interfacewirelesssecurity-profiles"
+
"interfacewirelesssniffer"
+
"interfacewirelesssnooper"
+
"iotmodbus"
+
"ipaccounting"
+
"ipaccountingweb-access"
+
"ipaddress"
+
"iparp"
+
"ipcloud"
+
"ipcloudadvanced"
+
"ipdhcp-client"
+
"ipdhcp-clientoption"
+
"ipdhcp-relay"
+
"ipdhcp-server"
+
"ipdhcp-serverconfig"
+
"ipdhcp-serverlease"
+
"ipdhcp-servermatcher"
+
"ipdhcp-servernetwork"
+
"ipdhcp-serveroption"
+
"ipdhcp-serveroptionsets"
+
"ipdns"
+
"ipdnsadlist"
+
"ipdnsforwarders"
+
"ipdnsstatic"
+
"ipfirewalladdress-list"
+
"ipfirewallconnectiontracking"
+
"ipfirewallfilter"
+
"ipfirewalllayer7-protocol"
+
"ipfirewallmangle"
+
"ipfirewallnat"
+
"ipfirewallraw"
+
"ipfirewallservice-port"
+
"iphotspotservice-port"
+
"ipipsecidentity"
+
"ipipsecpeer"
+
"ipipsecpolicy"
+
"ipipsecprofile"
+
"ipipsecproposal"
+
"ipipsecsettings"
+
"ipneighbordiscovery-settings"
+
"ippool"
+
"ipproxy"
+
"iproute"
+
"iprouterule"
+
"iproutevrf"
+
"ipservice"
+
"ipsettings"
+
"ipsmb"
+
"ipsocks"
+
"ipssh"
+
"iptftpsettings"
+
"iptraffic-flow"
+
"iptraffic-flowipfix"
+
"iptraffic-flowtarget"
+
"ipupnp"
+
"ipupnpinterfaces"
+
"ipvrf"
+
"ipv6address"
+
"ipv6dhcp-client"
+
"ipv6dhcp-server"
+
"ipv6dhcp-serveroption"
+
"ipv6firewalladdress-list"
+
"ipv6firewallfilter"
+
"ipv6firewallmangle"
+
"ipv6firewallnat"
+
"ipv6firewallraw"
+
"ipv6nd"
+
"ipv6ndprefix"
+
"ipv6ndprefixdefault"
+
"ipv6route"
+
"ipv6settings"
+
"mpls"
+
"mplsinterface"
+
"mplsldp"
+
"mplsldpaccept-filter"
+
"mplsldpadvertise-filter"
+
"mplsldpinterface"
+
"portfirmware"
+
"portremote-access"
+
"pppaaa"
+
"pppprofile"
+
"pppsecret"
+
"queueinterface"
+
"queuesimple"
+
"queuetree"
+
"queuetype"
+
"radius"
+
"radiusincoming"
+
"routingbgpaggregate"
+
"routingbgpconnection"
+
"routingbgpinstance"
+
"routingbgpnetwork"
+
"routingbgppeer"
+
"routingbgptemplate"
+
"routingfilter"
+
"routingfiltercommunity-list"
+
"routingfilternum-list"
+
"routingfilterrule"
+
"routingfilterselect-rule"
+
"routingid"
+
"routingigmp-proxy"
+
"routingigmp-proxyinterface"
+
"routingmme"
+
"routingospfarea"
+
"routingospfarearange"
+
"routingospfinstance"
+
"routingospfinterface-template"
+
"routingospfstatic-neighbor"
+
"routingpimsminstance"
+
"routingpimsminterface-template"
+
"routingrip"
+
"routingripng"
+
"routingrule"
+
"routingtable"
+
"snmp"
+
"snmpcommunity"
+
"systemclock"
+
"systemclockmanual"
+
"systemhealthsettings"
+
"systemidentity"
+
"systemledssettings"
+
"systemlogging"
+
"systemloggingaction"
+
"systemnote"
+
"systemntpclient"
+
"systemntpclientservers"
+
"systemntpserver"
+
"systempackageupdate"
+
"systemresourceirqrps"
+
"systemrouterboardsettings"
+
"systemscheduler"
+
"systemscript"
+
"systemupgrademirror"
+
"systemups"
+
"systemwatchdog"
+
"toolbandwidth-server"
+
"toole-mail"
+
"toolgraphing"
+
"toolgraphinginterface"
+
"toolgraphingresource"
+
"toolmac-server"
+
"toolmac-servermac-winbox"
+
"toolmac-serverping"
+
"toolnetwatch"
+
"toolromon"
+
"toolsms"
+
"toolsniffer"
+
"tooltraffic-generator"
+
"user"
+
"useraaa"
+
"usergroup"
+
"usersettings"
+
+
+
+
+
port
+
integer
+
+
RouterOS API port. If tls is set, port will apply to TLS/SSL connection.
+
Defaults are 8728 for the HTTP API, and 8729 for the HTTPS API.
+
+
+
+
restrict
+
list / elements=dictionary
+
added in community.routeros 2.18.0
+
+
Restrict operation to entries matching the following criteria.
Whether disabled or not provided values should match.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
regex
+
string
+
+
A regular expression matching values of the field to limit to.
+
Note that all values will be converted to strings before matching.
+
It is not possible to match disabled values with regular expressions. Set restrict[].match_disabled=true if you also want to match disabled values.
+
+
+
+
values
+
list / elements=any
+
+
The values of the field to limit to.
+
Note that the types of the values are important. If you provide a string "0", and librouteros converts the value returned by the API to the integer 0, then this will not match. If you are not sure, better include both variants: both the string and the integer.
+
+
+
+
timeout
+
integer
+
added in community.routeros 2.3.0
+
+
Timeout for the request.
+
Default:10
+
+
+
+
+
tls
+
aliases: ssl
+
boolean
+
+
If is set TLS will be used for RouterOS API connection.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
username
+
string / required
+
+
RouterOS login user.
+
+
+
+
validate_cert_hostname
+
boolean
+
added in community.routeros 1.2.0
+
+
Set to true to validate hostnames in certificates.
Note: instead of simply deactivating certificate validations to “make things work”, please consider creating your own CA certificate and using it to sign certificates used for your router. You can tell the module about your CA certificate with the ca_path option.
If write-only fields are present in the path, the module is not idempotent in a strict sense, since it is not able to verify the current value of these fields. The behavior the module should assume can be controlled with the handle_write_only option.
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallcommunity.routeros.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: community.routeros.api.
Note: this forces the use of anonymous Diffie-Hellman (ADH) ciphers. The protocol is susceptible to Man-in-the-Middle attacks, because the keys used in the exchange are not authenticated. Instead of simply connecting without a certificate to “make things work” have a look at validate_certs and ca_path.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
hostname
+
string / required
+
+
RouterOS hostname API.
+
+
+
+
password
+
string / required
+
+
RouterOS user password.
+
+
+
+
path
+
string / required
+
+
Main path for all other arguments.
+
If other arguments are not set, the module will return all items in selected path.
+
Example ipaddress. Equivalent of RouterOS CLI /ipaddressprint.
+
+
+
+
port
+
integer
+
+
RouterOS API port. If tls is set, port will apply to TLS/SSL connection.
+
Defaults are 8728 for the HTTP API, and 8729 for the HTTPS API.
+
+
+
+
query
+
string
+
+
Query given path for selected query attributes from RouterOS API.
+
WHERE is key word which extend query. WHERE format is key operator value - with spaces.
+
WHERE valid operators are == or eq, != or not, > or more, < or less.
+
Example path ipaddress and query .idaddress will return only .id and address for all items in ipaddress path.
+
Example path ipaddress and query .idaddressWHEREaddress==1.1.1.3/32. will return only .id and address for items in ipaddress path, where address is eq to 1.1.1.3/32.
+
Example path interface and query mtunameWHEREmut>1400 will return only interfaces mtu,name where mtu is bigger than 1400.
+
Equivalent in RouterOS CLI /interfaceprintwheremtu>1400.
+
+
+
+
remove
+
string
+
+
Remove config/value from RouterOS by ‘.id’.
+
Example *03 will remove config/value with id=*03 in selected path.
+
Equivalent in RouterOS CLI /ipaddressremovenumbers=1.
+
Note number in RouterOS CLI is different from .id.
+
+
+
+
timeout
+
integer
+
added in community.routeros 2.3.0
+
+
Timeout for the request.
+
Default:10
+
+
+
+
+
tls
+
aliases: ssl
+
boolean
+
+
If is set TLS will be used for RouterOS API connection.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
update
+
string
+
+
Update config/value in RouterOS by ‘.id’ in selected path.
+
Example .id=*03address=1.1.1.3/32 and path ipaddress will replace the existing IP address with .id=*03.
+
Equivalent in RouterOS CLI /ipaddresssetaddress=1.1.1.3/32numbers=1.
+
Note number in RouterOS CLI is different from .id.
+
+
+
+
username
+
string / required
+
+
RouterOS login user.
+
+
+
+
validate_cert_hostname
+
boolean
+
added in community.routeros 1.2.0
+
+
Set to true to validate hostnames in certificates.
Note: instead of simply deactivating certificate validations to “make things work”, please consider creating your own CA certificate and using it to sign certificates used for your router. You can tell the module about your CA certificate with the ca_path option.
api_info, api_modify - add the use-interface-duid option for ipv6dhcp-client path. This option prevents issues with Fritzbox modems and routers, when using virtual interfaces (like VLANs) may create duplicated records in hosts config, this breaks original “expose-host” function. Also add the script, custom-duid and validate-server-duid as backport from 7.15 version update (https://github.com/ansible-collections/community.routeros/pull/341).
The collection no longer supports Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, and ansible-core 2.14. If you need to continue using End of Life versions of Ansible/ansible-base/ansible-core, please use community.routeros 2.x.y (https://github.com/ansible-collections/community.routeros/pull/318).
The collection deprecates support for all Ansible/ansible-base/ansible-core versions that are currently End of Life, according to the ansible-core support matrix. This means that the next major release of the collection will no longer support Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, and ansible-core 2.14.
From this version on, community.routeros is using the new Ansible semantic markup
+in its documentation. If you look at documentation with the ansible-doc CLI tool
+from ansible-core before 2.15, please note that it does not render the markup
+correctly. You should be still able to read it in most cases, but you need
+ansible-core 2.15 or later to see it as it is intended. Alternatively you can
+look at the devel docsite
+for the rendered HTML version of the documentation of the latest release.
Ansible markup will show up in raw form on ansible-doc text output for ansible-core before 2.15. If you have trouble deciphering the documentation markup, please upgrade to ansible-core 2.15 (or newer), or read the HTML documentation on https://docs.ansible.com/ansible/devel/collections/community/routeros/.
api_modify, api_info - support fields combo-mode, comment, fec-mode, mdix-enable, poe-out, poe-priority, poe-voltage, power-cycle-interval, power-cycle-ping-address, power-cycle-ping-enabled, power-cycle-ping-timeout for path interfaceethernet (https://github.com/ansible-collections/community.routeros/pull/121).
+
api_modify, api_info - support fields jump-target, reject-with in ipfirewallfilter API path, field comment in ipfirwalladdress-list API path, field jump-target in ipfirewallmangle API path, field comment in ipv6firewalladdress-list API path, fields jump-target, reject-with in ipv6firewallfilter API path (https://github.com/ansible-collections/community.routeros/pull/133).
api_modify - when limits for entries in queuetree are defined as human readable - for example 25M -, the configuration will be correctly set in ROS, but the module will indicate the item is changed on every run even when there was no change done. This is caused by the ROS API which returns the number in bytes - for example 25000000 (which is inconsistent with the CLI behavior). In order to mitigate that, the limits have to be defined in bytes (those will still appear as human readable in the ROS CLI) (https://github.com/ansible-collections/community.routeros/pull/131).
+
api_modify, api_info - routingospfarea, routingospfarearange, routingospfinstance, routingospfinterface-template paths are not fully implemented for ROS6 due to the significant changes between ROS6 and ROS7 (https://github.com/ansible-collections/community.routeros/pull/131).
The community.routeros.command module claims to support check mode. Since it cannot judge whether the commands executed modify state or not, this behavior is incorrect. Since this potentially breaks existing playbooks, we will not change this behavior until community.routeros 3.0.0.
All software licenses are now in the LICENSES/ directory of the collection root. Moreover, SPDX-License-Identifier: is used to declare the applicable license for every file that is not automatically generated (https://github.com/ansible-collections/community.routeros/pull/101).
api - due to a programming error, the module never failed on errors. This has now been fixed. If you are relying on the module not failing in case of idempotent commands (resulting in errors like failure:alreadyhavesuchaddress), you need to adjust your roles/playbooks. We suggest to use failed_when to accept failure in specific circumstances, for example failed_when:"'failure:alreadyhave'inresult.msg[0]" (https://github.com/ansible-collections/community.routeros/pull/39).
The community.routeros continues the work on the Ansible RouterOS modules from their state in community.network 1.2.0. The changes listed here are thus relative to the modules community.network.routeros_*.
Sends arbitrary commands to an RouterOS node and returns the results read from the device. This module includes an argument that will cause the module to wait for a specific condition before returning or timing out if the condition is not met.
+
The module always indicates a (changed) status. You can use the changed_when task property to determine whether a command task actually resulted in a change or not.
List of commands to send to the remote RouterOS device over the configured provider. The resulting output from the command is returned. If the wait_for argument is provided, the module is not returned until the condition is satisfied or the number of retries has expired.
+
+
+
+
interval
+
integer
+
+
Configures the interval in seconds to wait between retries of the command. If the command does not pass the specified conditions, the interval indicates how long to wait before trying the command again.
+
Default:1
+
+
+
+
match
+
string
+
+
The match argument is used in conjunction with the wait_for argument to specify the match policy. Valid values are all or any. If the value is set to all then all conditionals in the wait_for must be satisfied. If the value is set to any then only one of the values must be satisfied.
+
Choices:
+
+
"any"
+
"all"← (default)
+
+
+
+
+
retries
+
integer
+
+
Specifies the number of retries a command should by tried before it is considered failed. The command is run on the target device every retry and evaluated against the wait_for conditions.
+
Default:10
+
+
+
+
wait_for
+
list / elements=string
+
+
List of conditions to evaluate against the output of the command. The task will wait for each condition to be true before moving forward. If the conditional is not true within the configured number of retries, the task fails. See examples.
No special setup is needed; the module needs to be run on a host that can connect to the device’s API. The most common case is that the module is run on localhost, either by using hosts:localhost in the playbook, or by using delegate_to:localhost for the task. The following example shows how to run the equivalent of /ipaddressprint:
+
---
+-name:RouterOS test with API
+hosts:localhost
+gather_facts:false
+vars:
+hostname:192.168.1.1
+username:admin
+password:test1234
+tasks:
+-name:Get "ip address print"
+community.routeros.api:
+hostname:"{{hostname}}"
+password:"{{password}}"
+username:"{{username}}"
+path:"ipaddress"
+# The following options configure TLS/SSL.
+# Depending on your setup, these options need different values:
+tls:true
+validate_certs:true
+validate_cert_hostname:true
+# If you are using your own PKI, specify the path to your CA certificate here:
+# ca_path: /path/to/ca-certificate.pem
+register:print_path
+
+-name:Show IP address of first interface
+ansible.builtin.debug:
+msg:"{{print_path.msg[0].address}}"
+
+
+
This results in the following output:
+
PLAY[RouterOS test]*********************************************************************************************
+
+TASK[Get "ip address print"]************************************************************************************
+ok:[localhost]
+
+TASK[Show IP address of first interface]************************************************************************
+ok:[localhost]=>{
+ "msg":"192.168.2.1/24"
+}
+
+PLAY RECAP*******************************************************************************************************
+localhost:ok=2changed=0unreachable=0failed=0skipped=0rescued=0ignored=0
+
Using the community.routeros.api module defaults group
+
To avoid having to specify common parameters for all the API based modules in every task, you can use the community.routeros.apimodule defaults group:
+
---
+-name:RouterOS test with API
+hosts:localhost
+gather_facts:false
+module_defaults:
+group/community.routeros.api:
+hostname:192.168.1.1
+password:admin
+username:test1234
+# The following options configure TLS/SSL.
+# Depending on your setup, these options need different values:
+tls:true
+validate_certs:true
+validate_cert_hostname:true
+# If you are using your own PKI, specify the path to your CA certificate here:
+# ca_path: /path/to/ca-certificate.pem
+tasks:
+-name:Gather facts
+community.routeros.api_facts:
+
+-name:Get "ip address print"
+community.routeros.api:
+path:"ipaddress"
+
+-name:Change IP address to 192.168.1.1 for interface bridge
+community.routeros.api_find_and_modify:
+path:ip address
+find:
+interface:bridge
+values:
+address:"192.168.1.1/24"
+
+
+
Here all three tasks will use the options set for the module defaults group.
It is recommended to always use tls=true when connecting with the API, even if you are only connecting to the device through a trusted network. The following options control how TLS/SSL is used:
+
+
force_no_cert:
+
Setting to true connects to the device without a certificate. This is discouraged to use in production and is susceptible to Man-in-the-Middle attacks, but might be useful when setting the device up. The default value is false.
+
+
validate_certs:
+
Setting to false disables any certificate validation. This is discouraged to use in production, but is needed when setting the device up. The default value is true.
+
+
validate_cert_hostname:
+
Setting to false (default) disables hostname verification during certificate validation. This is needed if the hostnames specified in the certificate do not match the hostname used for connecting (usually the device’s IP). It is recommended to set up the certificate correctly and set this to true; the default false is chosen for backwards compatibility to an older version of the module.
+
+
ca_path:
+
If you are not using a commercially trusted CA certificate to sign your device’s certificate, or have not included your CA certificate in Python’s truststore, you need to point this option to the CA certificate.
+
+
+
We recommend to create a CA certificate that is used to sign the certificates for your RouterOS devices, and have the certificates include the correct hostname(s), including the IP of the device. That way, you can fully enable TLS and be sure that you always talk to the correct device.
Please follow the instructions in the community.cryptoHow to create a small CA guide to set up a CA certificate and sign a certificate for your router. You should add a Subject Alternative Name for the IP address (for example IP:192.168.1.1) and - if available - for the DNS name (for example DNS:router.local) to the certificate.
Installing the certificate is best done with the SSH connection. (See the How to connect to RouterOS devices with SSH guide for more information.) Once the certificate has been installed, and the HTTPS API enabled, it’s easier to work with the API, since it has a quite a few less problems, and returns data as JSON objects instead of text you first have to parse.
+
First you have to convert the certificate and its private key to a PKCS #12 bundle. This can be done with the community.crypto.openssl_pkcs12. The following playbook assumes that the certificate is available as keys/{{inventory_hostname}}.pem, and its private key is available as keys/{{inventory_hostname}}.key. It generates a random passphrase to protect the PKCS#12 file.
The playbook also assumes that admin_network describes the network from which the HTTPS and API interface can be accessed. This can be for example 192.168.1.0/24.
+
When this playbook completed successfully, you should be able to use the HTTPS admin interface (reachable in a browser from https://192.168.1.1/, with the correct IP inserted), as well as the community.routeros.api module module with TLS and certificate validation enabled:
When using the community.routeros.command module or the community.routeros.api module modules, you need to pass text data in quoted form. While in some cases quoting is not needed (when passing IP addresses or names without spaces, for example), in other cases it is required, like when passing a comment which contains a space.
+
The community.routeros collection provides a set of Jinja2 filter plugins which helps you with these tasks:
The community.routeros.quote_argument filter quotes an argument with or without a value: 'comment=thisisa"comment"'|community.routeros.quote_argument=='comment="thisisa\\"comment\\""'.
+
The community.routeros.join filter quotes a list of arguments and joins them to one string: ['foo=bar','comment=fooisbar']|community.routeros.join=='foo=barcomment="fooisbar"'.
+
The community.routeros.split filter splits a command into a list of arguments (with or without values): 'foo=barcomment="fooisbar"'|community.routeros.split==['foo=bar','comment=fooisbar']
+
The community.routeros.list_to_dict filter splits a list of arguments with values into a dictionary: ['foo=bar','comment=fooisbar']|community.routeros.list_to_dict=={'foo':'bar','comment':'fooisbar'}. It has two optional arguments: require_assignment (default value true) allows to accept arguments without values when set to false; and skip_empty_values (default value false) allows to skip arguments whose value is empty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tag/3.5.0/docsite/ssh-guide.html b/tag/3.5.0/docsite/ssh-guide.html
new file mode 100644
index 0000000..3039648
--- /dev/null
+++ b/tag/3.5.0/docsite/ssh-guide.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+ How to connect to RouterOS devices with SSH — Community.Routeros Collection documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The SSH-based modules do not support arbitrary symbols in the router’s identity. If you are having trouble connecting to your device, please make sure that your MikroTik’s identity contains only alphanumeric characters and dashes. Also make sure that the identity string is not longer than 19 characters (see issue for details). Similar problems can happen for unsupported characters in your username.
+
The community.routeros.command module does not support nesting commands and expects every command to start with a forward slash (/). Running the following command will produce an error:
When using the community.routeros.command module module, make sure to not specify too long commands. Alternatively, add something like +cet512w to the username (replace admin with admin+cet512w) to tell RouterOS to not wrap before 512 characters in a line (see issue for details).
The following index documents all environment variables declared by plugins in collections.
+Environment variables used by the ansible-core configuration are documented in Ansible Configuration Settings.
Collects a base set of device facts from a remote device that is running RouterOS. This module prepends all of the base network fact keys with ansible_net_<fact>. The facts module will always collect a base set of facts from the device and can enable or disable collection of additional facts.
When supplied, this argument will restrict the facts collected to a given subset. Possible values for this argument include all, hardware, config, interfaces, and routing.
+
Can specify a list of values to include a larger subset. Values can also be used with an initial ! to specify that a specific subset should not be collected.
-name:Collect all facts from the device
+community.routeros.facts:
+gather_subset:all
+
+-name:Collect only the config and default facts
+community.routeros.facts:
+gather_subset:
+-config
+
+-name:Do not collect hardware facts
+community.routeros.facts:
+gather_subset:
+-"!hardware"
+
Facts returned by this module are added/updated in the hostvars host facts and can be referenced by name just like any other host fact. They do not need to be registered in order to use them.
The current active config from the device in minimal form.
+
This value is idempotent in the sense that if the facts module is run twice and the device’s config was not changed between the runs, the value is identical. This is achieved by running /export and stripping the timestamp from the comment in the first line.
-name:Join arguments for a RouterOS CLI command
+ansible.builtin.set_fact:
+arguments:"{{['foo=bar','comment=foo is bar']|community.routeros.join}}"
+# Should result in 'foo=bar comment="foo is bar"'
+
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
This describes keyword parameters of the filter. These are the values key1=value1, key2=value2 and so on in the following
+example: input|community.routeros.list_to_dict(key1=value1,key2=value2,...)
+
+
+
Parameter
+
Comments
+
+
+
+
+
require_assignment
+
boolean
+
+
Allows to accept arguments without values when set to false.
+
Choices:
+
+
false
+
true← (default)
+
+
+
+
+
skip_empty_values
+
boolean
+
+
Allows to skip arguments whose value is empty when set to true.
-name:Convert a list to a dictionary
+ansible.builtin.set_fact:
+dictionary:"{{['foo=bar','comment=foo is bar']|community.routeros.list_to_dict}}"
+# dictionary == {'foo': 'bar', 'comment': 'foo is bar'}
+
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
-name:Quote a RouterOS CLI command argument
+ansible.builtin.set_fact:
+quoted:"{{'comment=this is a "comment"'|community.routeros.quote_argument}}"
+# Should result in 'comment="this is a \"comment\""'
+
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
-name:Quote a RouterOS CLI command argument's value
+ansible.builtin.set_fact:
+quoted:"{{'this is a "comment"'|community.routeros.quote_argument_value}}"
+# Should result in '"this is a \"comment\""'
+
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tag/3.5.0/searchindex.js b/tag/3.5.0/searchindex.js
new file mode 100644
index 0000000..88a374f
--- /dev/null
+++ b/tag/3.5.0/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({"alltitles":{"Attributes":[[0,"attributes"],[1,"attributes"],[2,"attributes"],[3,"attributes"],[4,"attributes"],[6,"attributes"],[11,"attributes"]],"Authors":[[0,"authors"],[1,"authors"],[2,"authors"],[3,"authors"],[4,"authors"],[6,"authors"],[11,"authors"],[13,"authors"],[14,"authors"],[15,"authors"],[16,"authors"],[17,"authors"],[18,"authors"]],"Breaking Changes / Porting Guide":[[5,"breaking-changes-porting-guide"],[5,"id76"]],"Bugfixes":[[5,"bugfixes"],[5,"id9"],[5,"id17"],[5,"id28"],[5,"id35"],[5,"id38"],[5,"id41"],[5,"id43"],[5,"id46"],[5,"id49"],[5,"id52"],[5,"id55"],[5,"id58"],[5,"id64"],[5,"id66"],[5,"id69"],[5,"id72"],[5,"id77"],[5,"id80"],[5,"id84"],[5,"id86"],[5,"id88"]],"Changelog":[[12,"changelog"]],"Cliconf Plugins":[[12,"cliconf-plugins"]],"Collection links":[[0,"collection-links"],[1,"collection-links"],[2,"collection-links"],[3,"collection-links"],[4,"collection-links"],[6,"collection-links"],[11,"collection-links"],[13,"collection-links"],[14,"collection-links"],[15,"collection-links"],[16,"collection-links"],[17,"collection-links"],[18,"collection-links"]],"Communication":[[12,"communication"]],"Community.Routeros":[[12,null]],"Community.Routeros Release Notes":[[5,null]],"Connecting to the device":[[9,"connecting-to-the-device"]],"Deprecated Features":[[5,"deprecated-features"]],"Description":[[12,"description"]],"Examples":[[0,"examples"],[1,"examples"],[2,"examples"],[3,"examples"],[4,"examples"],[6,"examples"],[11,"examples"],[13,"examples"],[14,"examples"],[15,"examples"],[16,"examples"],[18,"examples"]],"Filter":[[5,"filter"]],"Filter Plugins":[[12,"filter-plugins"]],"Guides":[[12,"guides"]],"How to connect to RouterOS devices with SSH":[[9,null]],"How to connect to RouterOS devices with the RouterOS API":[[7,null]],"How to quote and unquote commands and arguments":[[8,null]],"Important notes":[[9,"important-notes"]],"Index of all Collection Environment Variables":[[10,null]],"Input":[[13,"input"],[14,"input"],[15,"input"],[16,"input"],[18,"input"]],"Installing a certificate on a MikroTik router":[[7,"installing-a-certificate-on-a-mikrotik-router"]],"Keyword parameters":[[14,"keyword-parameters"]],"Known Issues":[[5,"known-issues"],[5,"id59"],[5,"id61"]],"Minor Changes":[[5,"minor-changes"],[5,"id2"],[5,"id4"],[5,"id6"],[5,"id8"],[5,"id12"],[5,"id14"],[5,"id16"],[5,"id19"],[5,"id21"],[5,"id23"],[5,"id25"],[5,"id27"],[5,"id30"],[5,"id32"],[5,"id34"],[5,"id37"],[5,"id45"],[5,"id48"],[5,"id51"],[5,"id54"],[5,"id57"],[5,"id63"],[5,"id68"],[5,"id71"],[5,"id75"],[5,"id79"],[5,"id82"],[5,"id90"]],"Modules":[[12,"modules"]],"New Modules":[[5,"new-modules"],[5,"id73"]],"New Plugins":[[5,"new-plugins"]],"Notes":[[1,"notes"],[3,"notes"],[4,"notes"]],"Parameters":[[0,"parameters"],[1,"parameters"],[2,"parameters"],[3,"parameters"],[4,"parameters"],[6,"parameters"],[11,"parameters"]],"Plugin Index":[[12,"plugin-index"]],"Release Summary":[[5,"release-summary"],[5,"id1"],[5,"id3"],[5,"id5"],[5,"id7"],[5,"id10"],[5,"id11"],[5,"id13"],[5,"id15"],[5,"id18"],[5,"id20"],[5,"id22"],[5,"id24"],[5,"id26"],[5,"id29"],[5,"id31"],[5,"id33"],[5,"id36"],[5,"id39"],[5,"id40"],[5,"id42"],[5,"id44"],[5,"id47"],[5,"id50"],[5,"id53"],[5,"id56"],[5,"id60"],[5,"id62"],[5,"id65"],[5,"id67"],[5,"id70"],[5,"id74"],[5,"id78"],[5,"id81"],[5,"id83"],[5,"id85"],[5,"id87"],[5,"id89"]],"Removed Features (previously deprecated)":[[5,"removed-features-previously-deprecated"]],"Requirements":[[0,"requirements"],[1,"requirements"],[2,"requirements"],[3,"requirements"],[4,"requirements"]],"Return Value":[[13,"return-value"],[14,"return-value"],[15,"return-value"],[16,"return-value"],[18,"return-value"]],"Return Values":[[1,"return-values"],[2,"return-values"],[3,"return-values"],[4,"return-values"],[6,"return-values"]],"Returned Facts":[[0,"returned-facts"],[11,"returned-facts"]],"See Also":[[0,"see-also"],[1,"see-also"],[2,"see-also"],[3,"see-also"],[4,"see-also"],[6,"see-also"],[11,"see-also"]],"Setting up a PKI":[[7,"setting-up-a-pki"]],"Setting up an inventory":[[9,"setting-up-an-inventory"]],"Setting up encryption":[[7,"setting-up-encryption"]],"Synopsis":[[0,"synopsis"],[1,"synopsis"],[2,"synopsis"],[3,"synopsis"],[4,"synopsis"],[6,"synopsis"],[11,"synopsis"],[13,"synopsis"],[14,"synopsis"],[15,"synopsis"],[16,"synopsis"],[17,"synopsis"],[18,"synopsis"]],"Topics":[[5,"topics"]],"Using the community.routeros.api module defaults group":[[7,"using-the-community-routeros-api-module-defaults-group"]],"community.routeros.api module \u2013 Ansible module for RouterOS API":[[4,null]],"community.routeros.api_facts module \u2013 Collect facts from remote devices running MikroTik RouterOS using the API":[[0,null]],"community.routeros.api_find_and_modify module \u2013 Find and modify information using the API":[[1,null]],"community.routeros.api_info module \u2013 Retrieve information from API":[[2,null]],"community.routeros.api_modify module \u2013 Modify data at paths with API":[[3,null]],"community.routeros.command module \u2013 Run commands on remote devices running MikroTik RouterOS":[[6,null]],"community.routeros.facts module \u2013 Collect facts from remote devices running MikroTik RouterOS":[[11,null]],"community.routeros.join filter \u2013 Join a list of arguments to a command":[[13,null]],"community.routeros.list_to_dict filter \u2013 Convert a list of arguments to a dictionary":[[14,null]],"community.routeros.quote_argument filter \u2013 Quote an argument":[[15,null]],"community.routeros.quote_argument_value filter \u2013 Quote an argument value":[[16,null]],"community.routeros.routeros cliconf \u2013 Use routeros cliconf to run command on MikroTik RouterOS platform":[[17,null]],"community.routeros.split filter \u2013 Split a command into arguments":[[18,null]],"v0.1.0":[[5,"v0-1-0"]],"v0.1.1":[[5,"v0-1-1"]],"v1.0.0":[[5,"v1-0-0"]],"v1.0.1":[[5,"v1-0-1"]],"v1.1.0":[[5,"v1-1-0"]],"v1.2.0":[[5,"v1-2-0"]],"v2.0.0":[[5,"v2-0-0"]],"v2.1.0":[[5,"v2-1-0"]],"v2.10.0":[[5,"v2-10-0"]],"v2.11.0":[[5,"v2-11-0"]],"v2.12.0":[[5,"v2-12-0"]],"v2.13.0":[[5,"v2-13-0"]],"v2.14.0":[[5,"v2-14-0"]],"v2.15.0":[[5,"v2-15-0"]],"v2.16.0":[[5,"v2-16-0"]],"v2.17.0":[[5,"v2-17-0"]],"v2.18.0":[[5,"v2-18-0"]],"v2.19.0":[[5,"v2-19-0"]],"v2.2.0":[[5,"v2-2-0"]],"v2.2.1":[[5,"v2-2-1"]],"v2.20.0":[[5,"v2-20-0"]],"v2.3.0":[[5,"v2-3-0"]],"v2.3.1":[[5,"v2-3-1"]],"v2.4.0":[[5,"v2-4-0"]],"v2.5.0":[[5,"v2-5-0"]],"v2.6.0":[[5,"v2-6-0"]],"v2.7.0":[[5,"v2-7-0"]],"v2.8.0":[[5,"v2-8-0"]],"v2.8.1":[[5,"v2-8-1"]],"v2.8.2":[[5,"v2-8-2"]],"v2.8.3":[[5,"v2-8-3"]],"v2.9.0":[[5,"v2-9-0"]],"v3.0.0":[[5,"v3-0-0"]],"v3.1.0":[[5,"v3-1-0"]],"v3.2.0":[[5,"v3-2-0"]],"v3.3.0":[[5,"v3-3-0"]],"v3.4.0":[[5,"v3-4-0"]],"v3.5.0":[[5,"v3-5-0"]]},"docnames":["api_facts_module","api_find_and_modify_module","api_info_module","api_modify_module","api_module","changelog","command_module","docsite/api-guide","docsite/quoting","docsite/ssh-guide","environment_variables","facts_module","index","join_filter","list_to_dict_filter","quote_argument_filter","quote_argument_value_filter","routeros_cliconf","split_filter"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1},"filenames":["api_facts_module.rst","api_find_and_modify_module.rst","api_info_module.rst","api_modify_module.rst","api_module.rst","changelog.rst","command_module.rst","docsite/api-guide.rst","docsite/quoting.rst","docsite/ssh-guide.rst","environment_variables.rst","facts_module.rst","index.rst","join_filter.rst","list_to_dict_filter.rst","quote_argument_filter.rst","quote_argument_value_filter.rst","routeros_cliconf.rst","split_filter.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":[5,7,9,11,16],"0":[0,1,2,3,4,6,7,9,11,12,13,14,15,16,17,18],"0123456789abcdefghijklmnopqrstuvwxyz":7,"03":4,"06":9,"0600":7,"09":9,"0mib":9,"1":[0,1,2,3,4,6,7,9,11],"10":[0,1,2,3,4,6],"101":5,"104":5,"106":5,"107":5,"108":5,"109":5,"110":5,"12":7,"120":5,"121":5,"122":5,"123":5,"124":5,"125":5,"126":5,"127":5,"128":[5,9],"129":5,"130":5,"131":5,"133":5,"134":5,"137":5,"138":5,"14":4,"1400":4,"141":5,"143":5,"144":5,"148":5,"149":5,"15":12,"153":5,"154":5,"156":5,"158":5,"159":5,"161":5,"162":5,"168":[0,1,2,3,4,7,9],"170":5,"177":5,"179":5,"18":[2,3],"180":5,"189":5,"19":9,"190":5,"191":5,"192":[0,1,2,3,4,5,7,9],"193":5,"194":5,"195":5,"197":5,"198":5,"199":5,"2":[0,1,2,3,4,7,9,11,12,13,14,15,16,18],"20":4,"200":5,"201":5,"2021":9,"203":5,"204":5,"205":5,"208":5,"210":5,"211":5,"213":5,"215":5,"216":5,"217":5,"218":5,"220":5,"223":5,"224":5,"226":5,"227":5,"23":5,"230":5,"233":5,"234":5,"235":5,"236":5,"237":5,"239":5,"24":[1,2,3,4,7],"241":5,"242":5,"243":5,"244":5,"245":5,"246":5,"248":5,"24kc":9,"25":9,"25000000":5,"255":4,"256":5,"257":5,"259":5,"25m":5,"262":5,"263":5,"264":5,"266":5,"269":5,"270":5,"271":5,"272":5,"273":5,"274":5,"276":5,"277":5,"278":5,"279":5,"280":5,"284":5,"286":5,"288":5,"294":5,"295":5,"297":5,"2mib":9,"3":[0,1,2,3,4,6,9,11,12,13,14,15,16,17,18],"300":5,"302":5,"303":5,"304":5,"305":5,"309":5,"31":9,"310":5,"311":5,"313":5,"315":5,"318":5,"32":[4,7],"320":5,"321":5,"322":5,"323":5,"324":5,"327":5,"331":5,"338":5,"339":5,"34":5,"340":5,"341":5,"342":5,"343":5,"344":5,"345":5,"350":5,"36":4,"37":5,"38":5,"39":5,"3d10h28m51":9,"4":[0,1,2,3,4,9],"400mhz":9,"43":5,"45":[5,9],"47":5,"48":9,"49":5,"5":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"50":5,"512":9,"51572981":9,"53":5,"54":9,"55":5,"6":[0,1,2,3,4,9],"62":5,"63":5,"64":9,"67":5,"68":5,"6to4":[2,3,5],"8":[0,1,2,3,4],"83":5,"8728":[0,1,2,3,4],"8729":[0,1,2,3,4],"88":[0,1,2,3],"89":5,"927":9,"95":5,"A":[0,1,2,3,4,5,6,11,13,14,18],"As":0,"By":[2,5],"For":[3,4,13,14,15,16,17,18],"If":[0,1,2,3,4,5,6,7,9],"In":[4,5],"It":[0,1,2,3,4,6,7,8,11,13,14,15,16,17,18],"No":[7,10],"On":1,"That":7,"The":[0,1,2,3,4,5,6,7,8,9,10,11,13,15,16,18],"These":[12,14],"To":[0,1,2,3,4,6,7,11,13,14,15,16,17,18],"Will":[0,1,2,3,4,6,11],"With":9,"_":5,"aaa":[2,3],"abl":[0,1,2,3,4,5,7],"about":[0,1,2,3,4,5,9,12],"abov":9,"abstract":17,"accept":[2,3,5,8,14],"access":[2,3,5,7],"accord":5,"account":[2,3],"achiev":11,"action":[0,1,2,3,4,5,6,11],"action_group":[0,1,2,3,4],"activ":11,"actual":[1,2,3,6],"ad":[0,1,2,3,4,5,9,11],"adapt":5,"add":[4,5,7,9],"addit":[0,11],"address":[0,1,2,3,4,5,7,8,9,11],"adh":[0,1,2,3,4,5],"adjust":[3,5],"adlist":[2,3,5],"admin":[0,3,7,9],"admin_network":7,"advanc":[2,3],"advertis":[2,3,5],"affect":[2,3],"after":[1,3,4,5],"again":6,"against":[0,1,2,3,4,5,6,11],"aggreg":[2,3,5],"algorithm":5,"alia":5,"alias":[0,1,2,3,4],"align":[2,3],"all":[0,1,2,3,4,5,6,7,11],"allow":[1,2,3,4,5,7,8,9,14],"allow_no_match":1,"alphanumer":9,"alreadi":5,"also":[5,7,9],"altern":[5,7,9],"alwai":[0,2,3,4,5,6,7,11],"always_upd":3,"an":[0,1,2,3,4,5,6,7,8,11,12],"ani":[0,2,3,4,6,7,11],"anonym":[0,1,2,3,4],"ansibl":[0,1,2,3,5,6,7,9,10,11,12,13,14,15,16,17,18],"ansible_connect":9,"ansible_fact":[0,11],"ansible_host":9,"ansible_net_":[0,11],"ansible_net_all_ipv4_address":[0,9,11],"ansible_net_all_ipv6_address":[0,11],"ansible_net_arch":[0,11],"ansible_net_bgp_inst":[0,11],"ansible_net_bgp_p":[0,11],"ansible_net_bgp_vpnv4_rout":[0,11],"ansible_net_config":11,"ansible_net_config_nonverbos":[5,11],"ansible_net_cpu_load":[0,11],"ansible_net_gather_subset":[0,11],"ansible_net_hostnam":[0,11],"ansible_net_interfac":[0,11],"ansible_net_memfree_mb":[0,11],"ansible_net_memtotal_mb":[0,11],"ansible_net_model":[0,11],"ansible_net_neighbor":[0,11],"ansible_net_ospf_inst":[0,11],"ansible_net_ospf_neighbor":[0,11],"ansible_net_rout":[0,11],"ansible_net_serialnum":[0,11],"ansible_net_spacefree_mb":[0,11],"ansible_net_spacetotal_mb":[0,11],"ansible_net_uptim":[0,11],"ansible_net_vers":[0,11],"ansible_network_o":9,"ansible_ssh_pass":9,"ansible_us":9,"anymor":5,"anyth":1,"apart":6,"api":[5,8,12,17],"api_fact":[1,2,3,4,5,7,12],"api_find_and_modifi":[0,2,3,4,5,7,12],"api_info":[0,1,3,4,5,7,12],"api_modifi":[0,1,2,4,5,7,12],"appear":[3,5],"appli":[0,1,2,3,4],"applic":5,"ar":[0,1,2,3,4,5,6,7,9,10,11,12,14],"arbitrari":[4,6,9],"arbitraryout":4,"architectur":[0,9,11],"area":[2,3,5],"argument":[0,1,2,3,4,5,6,11,12],"argument_list":18,"arp":[2,3,5],"ascii":[0,1,2,3,4,5],"ask":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"assign":14,"assum":[0,1,2,3,4,6,7,11],"attack":[0,1,2,3,4,7],"attribut":5,"auth":5,"authent":[0,1,2,3,4],"author":12,"auto":5,"automat":5,"avail":[0,5,7,11],"avoid":[5,7],"awesom":[1,3],"back":5,"backport":5,"backup":[2,3],"backward":7,"bad":9,"bandwidth":[2,3],"bar":[1,8,13,14,18],"base":[0,1,5,7,9,11],"baz":18,"becaus":[0,1,2,3,4],"been":[1,5,7,10],"befor":[1,2,3,5,6,9,13,14,15,16,18],"behavior":[3,5],"below":[0,1,2,3,4],"best":7,"better":[2,3],"between":[5,6,11],"bgp":[0,2,3,5,11],"bigger":4,"bind":9,"blackhol":5,"block":[3,7,9],"board":9,"bond":[2,3,5],"boolean":[0,1,2,3,4,14],"boot":5,"both":[2,3],"bridg":[1,2,3,5,7],"broker":5,"browser":7,"bsd":5,"bug":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"build":9,"builtin":[2,3,4,5,7,13,14,15,16,18],"bundl":7,"byte":5,"ca":[0,1,2,3,4,7],"ca_path":[0,1,2,3,4,5,7],"call":9,"can":[0,1,2,3,4,5,6,7,9,11,14],"cannot":[3,5],"cap":[2,3,5],"capsman":[2,3],"case":[1,4,5,7,8],"caus":[5,6],"certain":7,"certif":[0,1,2,3,4,5],"certificate_path":7,"cet512w":9,"chain":3,"chang":[0,1,2,3,4,6,7,9,11],"changed_when":[5,6,7],"changelog":5,"channel":[2,3,5,12],"charact":[5,9],"check":[0,1,2,3,4,5,6,7,11,13,14,15,16,17,18],"check_mod":[0,1,2,3,4,6,11],"choic":[0,1,2,3,4,6,14],"chosen":7,"cipher":[0,1,2,3,4,5],"circumst":5,"claim":[5,6],"classifi":5,"claus":[4,5],"clean":7,"cli":[1,2,3,4,5,13,15,16,17],"cliconf":[5,9],"client":[2,3,5],"clock":[2,3,5],"cloud":[2,3,5],"cmd":4,"collect":[5,8,9,12],"com":[5,12],"combo":5,"command":[3,4,5,7,9,12,15,16],"comment":[0,1,2,3,4,5,6,8,11,13,14,15,16,18],"commerci":7,"common":[1,2,3,4,6,7],"commun":[8,9],"compar":[3,4],"compat":[5,7],"complet":[5,7],"complex":5,"concurr":5,"condit":[1,2,3,4,6],"config":[2,3,4,5,11],"configur":[0,1,2,3,5,6,7,10,11,13,14,15,16,17,18],"conflict":5,"conform":5,"conjunct":[4,6],"connect":[0,1,2,3,4,5,6,11,12],"consid":[0,1,2,3,4,6],"contain":[0,1,2,3,4,5,6,8,9,11],"content":5,"continu":5,"control":[0,1,2,3,4,5,6,7,11],"convert":[2,3,5,7,12],"copi":7,"core":[0,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18],"correct":[5,7],"correctli":[5,7],"count":9,"counter":2,"cpu":[0,5,9,11],"crash":5,"creat":[0,1,2,3,4,5,7],"create_onli":3,"creation":[3,5],"credenti":9,"criteria":[1,2,3],"crypto":7,"current":[0,1,2,3,5,11],"custom":[3,5],"cycl":5,"dachev":[0,4,12],"dash":[5,9],"data":[0,1,2,4,5,7,8,12,14],"datapath":[2,3,5],"date":5,"ddn":5,"deactiv":[0,1,2,3,4],"debug":[2,4,7,9],"deciph":5,"declar":[5,10],"default":[0,1,2,3,4,5,6,8,9,11,14],"defconf":[1,2,3],"defin":[5,10],"delegate_to":7,"depend":[3,4,5,6,7],"describ":[3,7,13,14,15,16,18],"descript":[0,1,2,3,4,6,11,13,14,15,16,18],"dest":7,"detail":[0,1,2,3,4,6,7,9,11],"detect":[2,3,5],"determin":[5,6],"devel":5,"develop":[2,3],"devi":9,"devic":[1,2,3,4,5,12,17],"dhcp":[2,3,5],"dictionari":[0,1,2,3,4,5,8,11,12],"diff":[0,1,2,3,4,6,11],"diff_mod":[0,1,2,3,4,6,11],"differ":[1,3,4,7],"diffi":[0,1,2,3,4],"directori":5,"disabl":[0,1,2,3,5,7,11],"discourag":7,"discoveri":[2,3,5],"discuss":12,"disk":[0,11],"dn":[2,3,5,7],"do":[0,3,5,7,9,11],"doc":5,"docsit":5,"document":[1,2,3,4,5,6,7,9,10],"doe":[0,2,5,6,9,11],"doh":5,"domain":5,"done":[5,7],"drop":[3,5],"dscp":5,"dst":5,"due":5,"duid":5,"dump":4,"duplic":5,"dure":[5,7],"dynam":[1,2,3,5],"e":[2,3,5],"each":[6,13,14,15,16,17,18],"easier":7,"egor":[0,6,11,12,17],"either":[4,7],"element":[0,1,2,3,4,5,6,11,13,14,18],"empti":[1,3,4,8,14],"enabl":[0,5,7,11],"encod":[0,1,2,3,4,5],"end":5,"engin":5,"ensur":[3,5],"ensure_ord":3,"entri":[1,2,3,4,5,7,13,14,15,16,17,18],"environ":5,"eoip":[2,3,5],"eq":4,"equal":4,"equival":[1,2,3,4,5,7],"error":[3,5,6,9],"escap":5,"ether1":[4,6],"ether2":4,"etherboot":5,"ethernet":[2,3,5,6],"evalu":6,"even":[5,7],"everi":[1,4,5,6,7,9],"exactli":[1,3],"exampl":[5,7,8,9,17],"except":[3,5],"exchang":[0,1,2,3,4],"exclam":2,"exclus":4,"execut":[0,1,2,3,4,5,6,9],"exist":[0,2,3,4,5,11],"expect":[1,9],"expir":6,"explicit":5,"export":[5,11],"expos":5,"express":[2,3],"extend":[2,3,4,5],"extended_queri":4,"extended_queryout":4,"extra":5,"fact":[1,2,3,4,5,7,9,12],"fail":[1,3,5,6,7,9],"failed_condit":6,"failed_when":5,"failur":5,"fals":[0,1,2,3,4,5,7,8,9,14],"famili":[0,1,2,3,4,6,11],"favor":5,"featur":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"fec":5,"felix":[0,1,2,3,12,13,14,15,16,18],"felixfontein":[0,1,2,3,12,13,14,15,16,18],"few":7,"field":[1,2,3,4,5,6],"file":[0,1,2,3,4,5,7,9],"filter":[2,3,8],"final":5,"find":[0,2,3,4,5,7,12],"firewal":[2,3,5],"firmwar":[2,3],"first":[2,3,5,7,9,11],"firwal":5,"fix":5,"flow":[2,3,5],"follow":[1,2,3,4,5,6,7,9,10,14],"fontein":[0,1,2,3,12,13,14,15,16,18],"foo":[1,8,13,14,18],"forc":[0,1,2,3,4,5],"force_no_cert":[0,1,2,3,4,5,7],"form":[5,8,11],"format":[0,1,2,3,4],"forum":12,"forward":[2,3,5,6,9],"found":[1,2,3],"fragment":5,"free":[0,9,11],"frequenc":[5,9],"friendly_nam":7,"fritzbox":5,"from":[1,3,4,5,6,7,12,17],"full":[0,1,2,3,5,11],"fulli":[5,7],"function":5,"further":[0,1,2,3,4],"galaxi":[0,1,2,3,4,6,11,13,14,15,16,17,18],"gatewai":[3,5],"gather":[7,9],"gather_fact":[7,9],"gather_subset":[0,5,11],"gener":[2,3,5,7,12],"get":[2,4,5,7],"github":[5,12],"given":[0,1,4,11],"gmt":5,"graph":[2,3,5],"gre":[2,3,5],"gre6":[2,3,5],"group":[0,1,2,3,4,5],"guid":7,"ha":[0,1,2,3,4,5,6,7,8,11],"handl":[2,3,5],"handle_absent_entri":3,"handle_dis":2,"handle_entries_cont":3,"handle_read_onli":[3,5],"handle_write_onli":[3,5],"happen":[5,9],"hardwar":[0,11],"hash":[0,11],"have":[0,1,2,3,4,5,6,7,9,10,13,14,15,16,17,18],"hdd":9,"he":5,"health":[2,3,5],"heavili":[2,3],"hellman":[0,1,2,3,4],"help":[0,1,2,3,4,6,8,11,12,13,14,15,16,17,18],"here":[1,2,3,4,5,6,7],"heuel":[0,6,11,12,17],"hide":2,"hide_default":2,"high":[13,14,15,16,17,18],"higher":[13,14,15,16,17,18],"host":[0,1,2,3,4,5,7,9,11],"hostnam":[0,1,2,3,4,5,7,11],"hostvar":[0,11],"hotspot":[2,3,5],"how":[0,1,2,3,4,6,11,12],"html":5,"http":[0,1,2,3,4,5,7],"human":5,"hw":5,"i":[0,1,2,3,4,5,6,7,8,9,11,13,14,15,16,17,18],"icmp":5,"id":[1,2,3,4,5],"idempot":[0,1,2,3,4,5,6,11],"ident":[2,3,4,5,6,9,11],"identifi":5,"igmp":[2,3,5],"ignor":[3,7,9],"im":12,"implement":5,"import":[2,3,5,7],"imposs":5,"improv":5,"includ":[0,1,2,3,4,5,6,7,11,13,14,15,16,17,18],"include_builtin":[2,5],"include_dynam":2,"include_read_onli":[2,5],"inclus":5,"incom":[2,3],"inconsist":5,"incorrect":5,"indic":[0,1,2,3,4,5,6,11],"induc":1,"inform":[0,3,4,5,7,11,12],"ingress":5,"initi":[0,5,11],"input":[2,3,4,7],"insecur":5,"insert":7,"instal":[0,1,2,3,4,5,6,11,13,14,15,16,17,18],"instanc":[0,2,3,5,11],"instead":[0,1,2,3,4,7,9],"instruct":7,"integ":[0,1,2,3,4,6,11],"intend":5,"interfac":[0,1,2,3,4,5,6,7,11],"intern":5,"internet":[2,3],"interv":[5,6],"interwork":[2,3],"introduc":5,"invalid":[1,2,3],"inventory_hostnam":7,"invert":[2,3],"invoc":[0,1,2,3,4,6,11],"iot":[2,3,5],"ip":[1,2,3,4,5,7,8,9],"ip2":4,"ip_address":2,"ipaddrd_printout":4,"ipfix":[2,3],"ipsec":[2,3,5],"ipv4":[0,5,11],"ipv6":[0,2,3,5,11],"irc":12,"irq":[2,3,5],"issu":[0,1,2,3,4,6,9,11,12,13,14,15,16,17,18],"item":[4,5],"its":[4,5,7,9],"jinja2":8,"join":[5,8,12],"json":7,"judg":5,"jump":5,"just":[0,2,11],"keep":5,"kei":[0,1,2,3,4,5,6,7,9,11,13,14,15,16,18],"kept":3,"key1":14,"key2":14,"l2tp":[2,3,5],"larger":[0,1,11],"later":5,"latest":5,"latter":1,"layer7":[2,3,5],"ldp":[2,3,5],"leas":[2,3,5],"least":[1,3,4,5],"led":[2,3],"length":7,"less":[1,4,7],"level":[6,17],"libera":12,"librari":4,"libroutero":[0,1,2,3,4],"libssh":9,"licens":5,"life":5,"like":[0,1,5,8,9,11],"limit":[1,2,3,5],"line":[5,9,11],"list":[0,1,2,3,4,5,6,8,11,12,15,16,17,18],"list_to_dict":[5,8,12],"load":[0,9,11],"local":7,"localhost":7,"log":[2,3,5],"login":[0,1,2,3,4,9],"long":[6,9],"longer":[5,9],"look":[0,1,2,3,4,5],"lookup":7,"low":[6,13,14,15,16,17,18],"lower":[13,14,15,16,17,18],"mac":[2,3,5],"made":[1,3],"mai":[5,9],"mail":[2,3,5],"main":4,"mainten":5,"major":5,"make":[0,1,2,3,4,5,9],"man":[0,1,2,3,4,5,7],"manag":[2,3,5],"mangl":[2,3,5],"manual":[2,3],"mark":5,"markup":5,"masquerad":3,"match":[1,2,3,4,5,6,7],"match_count":1,"match_dis":[2,3],"matcher":[2,3,5],"matrix":[5,12],"max":5,"mdix":5,"mean":[3,5],"member":[2,3,5],"memori":[0,5,9,11],"mention":3,"messag":[4,5],"met":6,"mib":[0,11],"middl":[0,1,2,3,4,7],"might":7,"mikrotik":[1,2,3,4,5,9,12],"minim":11,"mip":9,"mipsb":9,"mirror":[2,3],"miss":5,"mitig":5,"mlag":[2,3,5],"mld":5,"mme":[2,3],"modbu":[2,3,5],"mode":[0,1,2,3,4,5,6,7,11],"model":[0,11],"modem":5,"modern":9,"modif":[3,4],"modifi":[0,2,4,5,6,7,11,12],"modify__count":1,"modul":[8,9],"module_default":[0,1,2,3,4,7],"module_util":5,"more":[1,4,5,7],"moreov":5,"most":[5,7],"move":6,"mpl":[2,3,5],"msg":[4,5,7,9],"mss":5,"mtu":4,"multicast":5,"multipl":[1,3,5,6],"must":[4,6],"mut":4,"mutual":4,"my":1,"n":[0,1,2,4,6,11],"naiv":5,"name":[0,1,2,3,4,5,6,7,8,9,11,13,14,15,16,18],"nat":[2,3,5],"nativ":5,"nd":[2,3,5],"need":[0,1,2,3,4,5,6,7,8,9,11],"neighbor":[0,2,3,5,11],"nest":9,"net_put":7,"netcommon":[7,9],"netmask":3,"netwatch":[2,3,5],"network":[0,1,2,3,4,5,7,11,12,17],"network_cli":9,"never":5,"new":[0,1,2,3,13,14,15,16,18],"new_data":[1,3],"newer":[0,1,2,3,4,5,12],"next":5,"nikolai":[0,4,12],"nikolaydachev":[0,4,12],"node":6,"non":5,"none":[3,4,5,6],"normal":2,"note":[0,2,12],"noth":3,"now":5,"nth":5,"ntp":[2,3,5],"null":[2,3],"num":[2,3,5],"number":[0,1,4,5,6,11],"o":[0,1,2,3,4,6,11],"object":[3,4,7],"offer":9,"offload":5,"offset":5,"ok":[7,9],"old":[1,5],"old_data":[1,3],"older":7,"omit":2,"onc":[1,7],"one":[1,3,4,6,8],"ones":[2,3],"onli":[0,1,2,3,4,5,6,7,9,11],"onto":7,"openssl_pkcs12":7,"oper":[0,1,2,3,4,6,11],"oppos":0,"option":[0,1,2,3,4,5,7,8,9],"order":[0,3,5,11,13,14,15,16,17,18],"ordereddict":3,"origin":5,"ospf":[0,2,3,5,11],"other":[0,2,4,5,8,11],"out":[3,5,6,7],"output":[2,3,4,5,6,7,9],"outsid":[0,1,2,3,4,6,11],"over":[5,6],"overrid":[13,14,15,16,17,18],"override_al":7,"ovpn":[2,3,5],"own":[0,1,2,3,4,7],"p12":7,"packag":[2,3,5],"packet":5,"paramet":[5,7,13,15,16,18],"paramiko":9,"pars":7,"part":[0,1,2,3,4,6,11,13,14,15,16,17,18],"pass":[3,6,8],"passphras":7,"password":[0,1,2,3,4,7,9],"path":[0,1,2,4,5,7,12],"peer":[0,2,3,5,11],"pem":[0,1,2,3,4,7],"per":5,"perform":4,"pimsm":[2,3,5],"ping":[2,3,5],"pkc":7,"pkcs12":7,"plai":[7,9],"platform":[0,1,2,3,4,6,9,11,12],"playbook":[0,1,2,3,4,5,6,7,9,11,13,14,15,16,17,18],"pleas":[0,1,2,3,4,5,7,9],"plugin":[6,8,9,10,13,14,15,16,17,18],"poe":[2,3,5],"point":7,"polici":[2,3,5,6],"pool":[2,3,5],"port":[0,1,2,3,4],"possibl":[0,2,3,11],"possibli":[0,1,2,3,4,6,11],"potenti":5,"power":5,"ppp":[2,3,5],"pppoe":[2,3,5],"pptp":[2,3],"preboot":5,"predefin":7,"predict":[0,1,2,3,4,6,11],"pref":5,"prefix":[2,3,5],"prepar":5,"prepend":[0,1,2,3,11],"preprocess":5,"prereleas":5,"present":[3,5],"prevent":5,"primari":5,"print":[2,4,6,7,9],"print_path":7,"prioriti":[5,13,14,15,16,17,18],"privat":7,"privatekey_path":7,"problem":[2,3,7,9],"produc":9,"product":[5,7],"profil":[2,3,5],"program":5,"properti":[5,6],"propos":[2,3,5],"protect":7,"protocol":[0,1,2,3,4,5],"provid":[1,2,3,5,6,8,17],"provis":[2,3,5],"proxi":[2,3,5],"psd":5,"public":5,"pull":5,"pylibssh":9,"python":[0,1,2,3,4,5,7,9],"queri":[0,1,2,3,4,5,6,11],"querier":5,"queryout":4,"question":12,"queue":[2,3,5],"quit":7,"quot":[4,5,6,12,13],"quote_argu":[5,8,12],"quote_argument_valu":[4,5,8,12],"radiu":[2,3,5],"random":[5,7],"random_password":7,"random_str":7,"randomis":5,"rang":[2,3,5],"rate":5,"raw":[2,3,5],"rb750gl":9,"reachabl":7,"read":[2,3,5,6],"readabl":5,"realm":5,"reboot":9,"recap":[7,9],"receiv":17,"recommend":7,"record":5,"referenc":[0,11],"regex":[2,3],"regexp":5,"regist":[0,2,4,7,9,11],"regular":[2,3,5],"reject":5,"rel":5,"relai":[2,3,5],"releas":12,"relev":[0,1,2,3,4,6,11],"reli":5,"remot":[1,2,3,4,5,12],"remov":[3,4,7],"remove_as_much_as_poss":3,"renam":[1,5],"render":5,"replac":[4,9],"report":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"repositori":[0,1,2,3,4,5,6,11,12,13,14,15,16,17,18],"represent":14,"request":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"requir":[5,6,8,13,14,15,16,18],"require_assign":[8,14],"require_matches_max":1,"require_matches_min":1,"rescu":[7,9],"resourc":[2,3,5,6,9],"resp":2,"respond":5,"respons":6,"restor":[2,3],"restrict":[0,2,3,4,5,11],"result":[2,3,5,6,7,9,13,14,15,16,18],"retri":6,"retriev":[0,1,3,4,5,7,12],"return":[5,7],"reus":5,"rip":[2,3],"ripng":[2,3],"ro":5,"role":5,"romon":[2,3],"room":12,"root":5,"ros6":5,"ros7":5,"rout":[0,2,3,5,11],"router":[0,1,2,3,4,5,9],"routerboard":[2,3,5,6],"routero":8,"routeros_":5,"row":[0,1,2,3,4,6,11],"rp":[2,3,5],"rule":[2,3,5],"run":[1,2,3,4,5,7,9,12,13,14,15,16,18],"safe":5,"same":[0,1,2,3,4,5,6,11],"sampl":[1,2,3,4,6],"satisfi":6,"schedul":[2,3,5],"script":[2,3,4,5],"search":[1,3],"second":[0,1,2,3,4,5,6,11],"secret":[2,3,5],"sect":9,"secur":[2,3,5],"see":[5,7,9],"seen":5,"select":[2,3,4,5],"semant":5,"send":[6,17],"sens":[3,11],"sequenc":5,"serial":[0,11],"server":[2,3,5],"servic":[2,3,7],"set":[0,1,2,3,4,5,6,8,10,11,14],"set_fact":[7,13,14,15,16,18],"setup":[3,7],"should":[0,1,2,3,5,6,7,9,11,13,15,16,18],"show":[5,7,9],"sign":[0,1,2,3,4,7],"signatur":5,"signific":5,"similar":[0,9],"simpl":[2,3,5],"simpli":[0,1,2,3,4,6],"sinc":[3,5,7,9],"singl":3,"situat":5,"size":5,"skip":[0,1,2,3,4,7,8,9,14],"skip_empty_valu":[8,14],"slash":[5,9],"sm":[2,3],"small":[5,7],"smb":[2,3],"sniffer":[2,3],"snmp":[2,3,5],"snooper":[2,3],"so":[4,14],"sock":[2,3],"softwar":5,"some":[2,3,5,8],"someth":9,"sourc":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"space":[0,4,5,8,9,11],"spdx":5,"special":7,"specif":[0,1,4,5,6,7,11],"specifi":[0,1,2,3,4,6,7,9,11,13,14,15,16,17,18],"split":[5,6,8,12,14],"src":[5,7],"srcnat":3,"ssh":[2,3,5,6,7,11,12],"ssh_type":9,"ssl":[0,1,2,3,4,5,7],"sstp":[2,3],"stabl":9,"start":9,"state":[0,2,5,11],"static":[2,3,5],"statu":[0,1,2,3,4,5,6,11],"stdout":[5,6],"stdout_lin":[6,7,9],"steer":[2,3],"step":1,"still":[2,3,5],"store":9,"strict":[3,5],"string":[0,1,2,3,4,5,6,8,9,11,13,14,15,16,18],"strip":11,"sub":5,"subdomain":5,"subject":7,"submit":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"subpath":5,"subset":[0,3,11],"success":[1,13,14,15,16,18],"successfulli":7,"suffix":5,"suggest":5,"suppli":[0,11],"support":[0,1,2,3,4,5,6,9,11,12],"suppress":5,"sure":[1,2,3,7,9],"suscept":[0,1,2,3,4,7],"switch":[2,3],"symbol":[5,9],"system":[0,1,2,3,4,5,6,9,11],"system_resource_print":9,"tabl":[0,2,3,5,11],"talk":7,"target":[0,1,2,3,4,5,6,11],"task":[1,5,6,7,8,9],"tcp":5,"tell":[0,1,2,3,4,9],"templat":[2,3,5],"termin":5,"test":[7,9],"test1234":[7,9],"text":[5,7,8],"tftp":[2,3],"than":[1,4,5,9],"thei":[0,2,3,11],"them":[0,3,4,8,11],"thi":[0,1,2,3,4,5,6,7,8,9,11,13,14,15,16,17,18],"thing":[0,1,2,3,4],"think":[2,3],"those":5,"three":[3,7],"through":[4,7],"thu":5,"time":[5,6,9],"timeout":[0,1,2,3,4,5],"timestamp":11,"tl":[0,1,2,3,4,5,7],"togeth":[1,3,9],"too":9,"tool":[2,3,5],"total":[0,9,11],"touch":3,"track":[2,3],"tracker":[0,1,2,3,4,6,11,12,13,14,15,16,17,18],"traffic":[2,3,5],"trap":5,"tree":[2,3,5],"tri":6,"troubl":[5,9],"true":[0,1,2,3,4,5,6,7,8,14],"trust":7,"truststor":7,"try":6,"ttl":5,"tunnel":5,"twice":[0,1,2,3,4,6,11],"two":[3,8,9],"tx":5,"txt":5,"type":[2,3,5,13,14,15,16,17,18],"under":5,"underscor":5,"unexpect":5,"unfilt":2,"uniqu":[1,2,3,4,5,6],"unnecessari":5,"unquot":[4,5,6,12],"unreach":[5,7,9],"unset":[1,2,3],"unsupport":9,"until":[5,6],"unwrap":5,"up":[2,3,5,13,14,15,16,17,18],"updat":[0,2,3,4,5,11],"upgrad":[2,3,5],"upnp":[2,3,5],"upper":1,"uptim":[0,9,11],"us":[2,3,4,5,6,8,9,10,11,12,13,14,15,16,18],"usag":12,"user":[0,1,2,3,4,5,9,12],"usernam":[0,1,2,3,4,5,7,9],"usual":7,"utf":[0,1,2,3,4],"util":5,"v":5,"v7":9,"valid":[0,1,2,3,4,5,6,7],"validate_cert":[0,1,2,3,4,5,7],"validate_cert_hostnam":[0,1,2,3,4,5,7],"valu":[0,5,7,8,11,12],"value1":14,"value2":14,"var":[2,7,9],"variabl":[13,14,15,16,17,18],"variant":[2,3],"variou":5,"verbos":5,"verif":7,"verifi":3,"version":[0,1,2,3,4,5,6,7,9,11,12,13,14,15,16,17,18],"via":[5,9],"virtual":5,"vlan":[2,3,5],"voltag":5,"vpnv4":[0,11],"vrf":[2,3,5],"vrrp":[2,3,5],"wa":[1,3,5,11],"wai":[0,1,2,3,4,6,7,11],"wait":6,"wait_for":[5,6],"wan":3,"want":[1,2,3],"watchdog":[2,3],"we":[1,3,4,5,7],"web":[2,3],"well":[2,5,7],"were":1,"what":[0,1,2,3,4,5,6,11],"when":[0,1,2,3,4,5,6,7,8,9,11,14],"where":[4,5],"whether":[0,1,2,3,4,5,6,11,13,14,15,16,17,18],"which":[4,5,7,8,9],"while":8,"whitespac":5,"whose":[2,3,8,14],"wifi":[2,3,5],"wifiwave2":[2,3,5],"winbox":[2,3],"wipe":7,"wireguard":[2,3,5],"wireless":[2,3,5],"within":6,"without":[0,1,2,3,4,5,6,7,8,11,14],"word":4,"work":[0,1,2,3,4,5,7],"workaround":5,"wrap":9,"write":[3,5,9],"wrong":5,"www":7,"x":5,"x86":6,"y":5,"yaml":1,"ye":5,"you":[0,1,2,3,4,5,6,7,8,9],"your":[0,1,2,3,4,5,7,9],"zaitsev":[0,6,11,12,17],"zero":1},"titles":["community.routeros.api_facts module \u2013 Collect facts from remote devices running MikroTik RouterOS using the API","community.routeros.api_find_and_modify module \u2013 Find and modify information using the API","community.routeros.api_info module \u2013 Retrieve information from API","community.routeros.api_modify module \u2013 Modify data at paths with API","community.routeros.api module \u2013 Ansible module for RouterOS API","Community.Routeros Release Notes","community.routeros.command module \u2013 Run commands on remote devices running MikroTik RouterOS","How to connect to RouterOS devices with the RouterOS API","How to quote and unquote commands and arguments","How to connect to RouterOS devices with SSH","Index of all Collection Environment Variables","community.routeros.facts module \u2013 Collect facts from remote devices running MikroTik RouterOS","Community.Routeros","community.routeros.join filter \u2013 Join a list of arguments to a command","community.routeros.list_to_dict filter \u2013 Convert a list of arguments to a dictionary","community.routeros.quote_argument filter \u2013 Quote an argument","community.routeros.quote_argument_value filter \u2013 Quote an argument value","community.routeros.routeros cliconf \u2013 Use routeros cliconf to run command on MikroTik RouterOS platform","community.routeros.split filter \u2013 Split a command into arguments"],"titleterms":{"0":5,"1":5,"10":5,"11":5,"12":5,"13":5,"14":5,"15":5,"16":5,"17":5,"18":5,"19":5,"2":5,"20":5,"3":5,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5,"all":10,"also":[0,1,2,3,4,6,11],"an":[9,15,16],"ansibl":4,"api":[0,1,2,3,4,7],"api_fact":0,"api_find_and_modifi":1,"api_info":2,"api_modifi":3,"argument":[8,13,14,15,16,18],"attribut":[0,1,2,3,4,6,11],"author":[0,1,2,3,4,6,11,13,14,15,16,17,18],"break":5,"bugfix":5,"certif":7,"chang":5,"changelog":12,"cliconf":[12,17],"collect":[0,1,2,3,4,6,10,11,13,14,15,16,17,18],"command":[6,8,13,17,18],"commun":[0,1,2,3,4,5,6,7,11,12,13,14,15,16,17,18],"connect":[7,9],"convert":14,"data":3,"default":7,"deprec":5,"descript":12,"devic":[0,6,7,9,11],"dictionari":14,"encrypt":7,"environ":10,"exampl":[0,1,2,3,4,6,11,13,14,15,16,18],"fact":[0,11],"featur":5,"filter":[5,12,13,14,15,16,18],"find":1,"from":[0,2,11],"group":7,"guid":[5,12],"how":[7,8,9],"import":9,"index":[10,12],"inform":[1,2],"input":[13,14,15,16,18],"instal":7,"inventori":9,"issu":5,"join":13,"keyword":14,"known":5,"link":[0,1,2,3,4,6,11,13,14,15,16,17,18],"list":[13,14],"list_to_dict":14,"mikrotik":[0,6,7,11,17],"minor":5,"modifi":[1,3],"modul":[0,1,2,3,4,5,6,7,11,12],"new":5,"note":[1,3,4,5,9],"paramet":[0,1,2,3,4,6,11,14],"path":3,"pki":7,"platform":17,"plugin":[5,12],"port":5,"previous":5,"quot":[8,15,16],"quote_argu":15,"quote_argument_valu":16,"releas":5,"remot":[0,6,11],"remov":5,"requir":[0,1,2,3,4],"retriev":2,"return":[0,1,2,3,4,6,11,13,14,15,16,18],"router":7,"routero":[0,1,2,3,4,5,6,7,9,11,12,13,14,15,16,17,18],"run":[0,6,11,17],"see":[0,1,2,3,4,6,11],"set":[7,9],"split":18,"ssh":9,"summari":5,"synopsi":[0,1,2,3,4,6,11,13,14,15,16,17,18],"topic":5,"unquot":8,"up":[7,9],"us":[0,1,7,17],"v0":5,"v1":5,"v2":5,"v3":5,"valu":[1,2,3,4,6,13,14,15,16,18],"variabl":10}})
\ No newline at end of file
diff --git a/tag/3.5.0/split_filter.html b/tag/3.5.0/split_filter.html
new file mode 100644
index 0000000..4c273b2
--- /dev/null
+++ b/tag/3.5.0/split_filter.html
@@ -0,0 +1,268 @@
+
+
+
+
+
+
+
+
+
+ community.routeros.split filter – Split a command into arguments — Community.Routeros Collection documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-name:Split command into list of arguments
+ansible.builtin.set_fact:
+argument_list:"{{'foo=bar comment="foo is bar" baz'|community.routeros.split}}"
+# Should result in ['foo=bar', 'comment=foo is bar', 'baz']
+
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.