Приветствую! Вопрос не по теме, но каковы значения неактивных полей? Допустим в консоли у правила есть src-address=192.168.1.0/24 , как в консоли сделать это поле неактивным?
Хорошо, сделать шаблон и залить конфигурацию на Микротик можно без проблем. Но только если у него этих настроек не было. А если были? Тогда будет ошибка, так как такой параметр уже существует. К примеру, /ip address add interface=ether1 address=192.168.1.1/24 failure: already have such address Поэтому перед этим нужно заранее проверить существование этой настройки. В итоге, такие шаблоны принесут больше вреда, чем пользы, т.к. проверок будет в несколько раз больше, чем полезного кода. Вот именно поэтому для Ansible пишут модули, которые всю "грязную" работу берут на себя. Вот только для Микротика такого модуля нет :( По крайней мере, официального. Очень-очень обидно. Зато есть не оф. на ansible-galaxy. Поэтому, либо пишем свой, либо юзаем готовый. P.S. писать пароли в inventory файле - ужасная идея!!! Не делайте так! Решений несколько. Первое, что приходит в голову - используем ansible-vault, либо меняем строку в плейбуке на action: command ssh -F ~/.ssh/config {{ansible_ssh_host}} {{command}}, а в конфиге ssh пишем путь к ключу, юзера, альтернативный порт, и кучу всего необходимого.
Все для примера. Моя задача показать как можно. Каждый решает для себя какой уровень безопастности и какие шаблоны вы хотите использовать. Большинство шаблонов под сетевые устройства используют в неком ограниченном корпоративе - где есть четкие ограничения на начальную конфигурацию.
Так как ansible это средство пуша конфигурации, то и playbook-и нужно писать с такой логикой, чтобы они ничего не усложняли при повторном их использовании или на уже настроенных роутерах. Нужно писать условия итд к примеру: выделил для себя такой принцип при настройке фаервола - name: removing rule with comment "allow snmp from zabbix" routeros_command: commands: /ip firewall filter remove [ find comment="allow snmp from zabbix" ] - name: adding new rule with comment "allow snmp from zabbix" routeros_command: commands: /ip firewall filter add chain=input action=accept src-address-list=zabbix protocol=udp dst-port=161 comment="allow snmp from zabbix" - name: move rule with comment "allow snmp from zabbix" routeros_command: commands: /ip firewall filter move [ find comment="allow snmp from zabbix" ] 0 сначала playbook удалит правило , если оно есть, чтобы не дублировать, а потом добавит и place-before=0 (при добавлении, 2 шаг) выдаст ошибку, если нет никаких правил . Приходится создавать снизу списка, а потом тянуть вверх еще дополнительной командой да, это лишние 2 строчки кода , насколько заморачиватся решать Вам, но это экономия времени в будущем, а не экономия времени сейчас
Приходите в телеграмм чат @miktrain - ищите мня - я посмотрю что можно сделать(есть некоторое количество внутренних настроек, но думаю это решаемый вопрос)
Огромное спасибо! Всем новеньким очень советую пересмотреть все вебинары!
Спасибо за вебинар. Ждём новых выпусков.
Спасибо большое Роман, вы едентвенный далли понять, что такая система как ansible не подходит под мои задачи. Удачи вам
Если не ошибаюсь то они (ansible) уже добавили поддержку команд routeros с версии 2.7, спасибо за ваши вебинары, очень иформативно
Спасибо!
жду плейбуков, нетерпиться положить кусочек сети =)
спасибо!
Приветствую! Вопрос не по теме, но каковы значения неактивных полей? Допустим в консоли у правила есть src-address=192.168.1.0/24 , как в консоли сделать это поле неактивным?
Спасибо за ваши знания и несение их в массы. Тем кто ставит дизлайки Добра.... Урода.
Хорошо, сделать шаблон и залить конфигурацию на Микротик можно без проблем. Но только если у него этих настроек не было. А если были? Тогда будет ошибка, так как такой параметр уже существует. К примеру,
/ip address add interface=ether1 address=192.168.1.1/24
failure: already have such address
Поэтому перед этим нужно заранее проверить существование этой настройки. В итоге, такие шаблоны принесут больше вреда, чем пользы, т.к. проверок будет в несколько раз больше, чем полезного кода. Вот именно поэтому для Ansible пишут модули, которые всю "грязную" работу берут на себя. Вот только для Микротика такого модуля нет :( По крайней мере, официального. Очень-очень обидно. Зато есть не оф. на ansible-galaxy. Поэтому, либо пишем свой, либо юзаем готовый.
P.S. писать пароли в inventory файле - ужасная идея!!! Не делайте так!
Решений несколько. Первое, что приходит в голову - используем ansible-vault,
либо меняем строку в плейбуке на
action: command ssh -F ~/.ssh/config {{ansible_ssh_host}} {{command}},
а в конфиге ssh пишем путь к ключу, юзера, альтернативный порт, и кучу всего необходимого.
Все для примера. Моя задача показать как можно. Каждый решает для себя какой уровень безопастности и какие шаблоны вы хотите использовать. Большинство шаблонов под сетевые устройства используют в неком ограниченном корпоративе - где есть четкие ограничения на начальную конфигурацию.
Так как ansible это средство пуша конфигурации, то и playbook-и нужно писать с такой логикой, чтобы они ничего не усложняли при повторном их использовании или на уже настроенных роутерах. Нужно писать условия итд
к примеру:
выделил для себя такой принцип при настройке фаервола
- name: removing rule with comment "allow snmp from zabbix"
routeros_command:
commands: /ip firewall filter remove [ find comment="allow snmp from zabbix" ]
- name: adding new rule with comment "allow snmp from zabbix"
routeros_command:
commands: /ip firewall filter add chain=input action=accept src-address-list=zabbix protocol=udp dst-port=161 comment="allow snmp from zabbix"
- name: move rule with comment "allow snmp from zabbix"
routeros_command:
commands: /ip firewall filter move [ find comment="allow snmp from zabbix" ] 0
сначала playbook удалит правило , если оно есть, чтобы не дублировать, а потом добавит и place-before=0 (при добавлении, 2 шаг) выдаст ошибку, если нет никаких правил . Приходится создавать снизу списка, а потом тянуть вверх еще дополнительной командой
да, это лишние 2 строчки кода , насколько заморачиватся решать Вам, но это экономия времени в будущем, а не экономия времени сейчас
Что думаете, насчет nornir и NAPALM?
А ещё у RouterOS есть TR-069 клиент
Коллеги добрый день. Не поделитесь playbook посмотреть код в живую
Приходите в телеграмм чат @miktrain - ищите мня - я посмотрю что можно сделать(есть некоторое количество внутренних настроек, но думаю это решаемый вопрос)
можно вот так ходить на микроты
cat ansible.cfg
...
[paramiko_connection]
pty = False
cat mikrotik.yml
---
- name: Add mikrotic user
hosts:
- mikrotic_user
- mikrotic_all
become: False
gather_facts: no
connection: paramiko
roles:
- role: le9i0nx.mikrotik_user
tags: [ 'role::mikrotik_user' ]
cat roles/le9i0nx.mikrotik_user/tasks/main.yml
---
- name: Generate random password via pwgen
command: "pwgen -s 19 1"
register: random_passwd
connection: local
changed_when: false
- name: Add user
raw: /user add name={{ item.name }} group=read
register: last_output
changed_when: "last_output.stdout != 'failure: user with the same name already exisits
'"
when: "item.state == 'present'"
# failed_when: "'syntax error' in '{{ last_output.stdout }}' or 'bad command' in '{{ last_output.stdout }}' or 'invalid value' in '{{ last_output.stdout }}' or 'expected end of command' in '{{ last_output.stdout }}'"
with_flattened:
- '{{ mikrotik_user__default }}'
- '{{ mikrotik_user__admins }}'
- '{{ mikrotik_user__list }}'
- '{{ mikrotik_user__group_list }}'
- '{{ mikrotik_user__host_list }}'
...
Клумбы копать спецтехникой не удобно
is this avaliable in english
google translate =D
Спасибо!