Ansible и Mikrotik: автоматизация настройки и управления парком Mikrotik

preview_player
Показать описание

====ОПИСАНИЕ ВЕБИНАРА====
Ansible — это популярное OpenSource ПО для централизованного управления конфигурациями серверов, роутеров (в нашем случае Mikrotik) и другого сетевого оборудования.

Когда в вашей сети количество роутеров измеряется не единицами, а десятками (ну хотя-бы от 10 штук), то встает вопрос об удобном централизованном управлении. И Ansible для этого — отличный механизм.

На вебинаре мы разберем, как работает связка Mikrotik + Ansible. Какая архитектура этого решения. Где есть подводные камни и как их обойти.

Этот вебинар будет однозначно полезен всем админам средних и крупных сетей. Мы покажем все не на слайдах а в живой демонстрации. Будет интересно!

Тайм-код:
00:00 Начало выступления
00:27 Вопросы вебинара
02:07 Общие сведения о ansible
03:58 Общие положения
08:28 Немного о ansible
19:19 Подход к настройке устройств
41:53 Базовая настройка устройств – автоматизация начальной конфигурации
42:08 Пример разворачивания центра сертификации на Mikrotik используя ansible и создание openvpn пользователей
59:05 Пример настройки электронной почты
Рекомендации по теме
Комментарии
Автор

Огромное спасибо! Всем новеньким очень советую пересмотреть все вебинары!

trjanik
Автор

Спасибо за вебинар. Ждём новых выпусков.

tabletk
Автор

Если не ошибаюсь то они (ansible) уже добавили поддержку команд routeros с версии 2.7, спасибо за ваши вебинары, очень иформативно

ifuty
Автор

Спасибо большое Роман, вы едентвенный далли понять, что такая система как ansible не подходит под мои задачи. Удачи вам

csvuipr
Автор

жду плейбуков, нетерпиться положить кусочек сети =)

AlekseyFilimonov
Автор

Приветствую! Вопрос не по теме, но каковы значения неактивных полей? Допустим в консоли у правила есть src-address=192.168.1.0/24, как в консоли сделать это поле неактивным?

fletcherF
Автор

Спасибо за ваши знания и несение их в массы. Тем кто ставит дизлайки Добра.... Урода.

Net-olekma
Автор

Хорошо, сделать шаблон и залить конфигурацию на Микротик можно без проблем. Но только если у него этих настроек не было. А если были? Тогда будет ошибка, так как такой параметр уже существует. К примеру,
/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 пишем путь к ключу, юзера, альтернативный порт, и кучу всего необходимого.

alexk
Автор

можно вот так ходить на микроты
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
---

- 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\n'"
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 }}'
...

alekseygavrilov
Автор

Коллеги добрый день. Не поделитесь playbook посмотреть код в живую

Prolink