Repository URL to install this package:
Version:
6.0.0 ▾
|
.. |
changelogs |
meta |
plugins |
CHANGELOG.rst |
COPYING |
FILES.json |
MANIFEST.json |
README.md |
codecov.yml |
Provides modules for Ansible to manage MikroTik RouterOS instances.
You can find documentation for the modules and plugins in this collection here.
Tested with the current Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12 and ansible-core 2.13 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.
The exact requirements for every module are listed in the module documentation.
The collection supports the network_cli
connection.
Please note that community.routeros.api
module does not support Windows jump hosts!
community.routeros.api
community.routeros.api_facts
community.routeros.api_find_and_modify
community.routeros.command
community.routeros.facts
You can find documentation for the modules and plugins in this collection here.
See Ansible Using collections for general detail on using collections.
There are two approaches for using this collection. The command
and facts
modules use the network_cli
connection and connect with SSH. The api
module connects with the HTTP/HTTPS API.
The terminal-based modules in this collection (community.routeros.command
and community.routeros.facts
) do not support arbitrary symbols in 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, 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.
- community.routeros.command: commands: - /ip - print
network_cli
Example inventory hosts
file:
[routers] router ansible_host=192.168.1.1 [routers:vars] ansible_connection=ansible.netcommon.network_cli ansible_network_os=community.routeros.routeros ansible_user=admin ansible_ssh_pass=test1234
Example playbook:
--- - name: RouterOS test with network_cli connection hosts: routers gather_facts: false tasks: - name: Run a command community.routeros.command: commands: - /system resource print register: system_resource_print - name: Print its output ansible.builtin.debug: var: system_resource_print.stdout_lines - name: Retrieve facts community.routeros.facts: - ansible.builtin.debug: msg: "First IP address: {{ ansible_net_all_ipv4_addresses[0] }}"
Example playbook:
--- - name: RouterOS test with API hosts: localhost gather_facts: no vars: hostname: 192.168.1.1 username: admin password: test1234 module_defaults: group/community.routeros.api: hostname: "{{ hostname }}" password: "{{ password }}" username: "{{ username }}" tls: true validate_certs: true validate_cert_hostname: true ca_path: /path/to/ca-certificate.pem tasks: - name: Get "ip address print" community.routeros.api: path: ip address register: print_path - name: Print the result ansible.builtin.debug: var: print_path.msg - 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" - name: Retrieve facts community.routeros.api_facts: - ansible.builtin.debug: msg: "First IP address: {{ ansible_net_all_ipv4_addresses[0] }}"
We're following the general Ansible contributor guidelines; see Ansible Community Guide.
If you want to clone this repositority (or a fork of it) to improve it, you can proceed as follows:
ansible_collections/community
;routeros
;ansible_collections
to your ANSIBLE_COLLECTIONS_PATH.See Ansible's dev guide for more information.
See the changelog.
We plan to regularly release minor and patch versions, whenever new features are added or bugs fixed. Our collection follows semantic versioning, so breaking changes will only happen in major releases.
GNU General Public License v3.0 or later.
See COPYING to see the full text.