187

Ansible для Mikrotik: бэкапы по identity и псевдо-иммутабельность1

Внезапно появилось у меня 50 микротиков по филиалам. Задача – настроить бэкап в систему контроля версий и получить возможность выполнить какую-то настройку на всех микротиках, где этой настройки нет. Вторая задача стояла – научиться что-то делать в ansible. Тут ansible не содержит особых преимуществ перед обычным bash скриптом, кроме, может, скорости работы за счет параллельности выполнения.


Все мануалы, что я нашла, содержали инструкцию по бэкапу в ansible одного микротика и такие типа «экстраполируйте сами». Ну зашибись, вся проблема в том, что имя бэкапа задаётся вручную, а если микротиков много, то как-то сделанные бэкапы надо различать.


В микротике есть поле identity и логично было бы именем из identity и называть бэкап. Но вначале я не нашла как его сохранить в переменную и пошла задавать переменные вручную. Кому интересно про identity – переходите к способу 2.


Я опущу, как ставить ansible, задавать пароли и шифровать их, это как раз легко гуглится.


Способ с заданием имени бэкапа в переменной вручную.

ansible_user должен иметь доступ на микротик full, а сервер, с которого запускаете yml должен иметь доступ по ssh на микротик. При этом либо надо разок законнектиться по ssh до этого и сохранить ключи, либо отключить проверку ssh ключей в ansible.


Пикабу съедает пробелы. Ссылка на код текстом будет в конце

Но всё же меня глодала мысль, что можно использовать identity, а тут удачно работа оплатила курсы по всяким там девопс штукам и мне рассказали про register. Так что нет ничего невозможного, смотрите далее.


Способ с бэкапами микротика по identity

Тут проблема в том, что stdout_lines возвращает штуку типа [[u’name: Kostroma]] и как я ни крутила – как к массиву я к ней обратиться не могу. Так что немного через задницу (буду рада, если подскажете красивое решение) из этой строки выковыривается строка с непосредственно identity.


Теперь убираем в hosts file_name

Про то, как делать текстовый бэкап – в примере 1, скрестить ужа с ежом можете сами.

Мой скрипт по запихиванию в систему контроля версий и отсылки на почту. Вот тут я писала подробнее как настроить SVN


#!/bin/bash

now=$(date +"%d_%m_%Y")

rm /usr/scripts/log.txt

ansible-playbook --vault-password-file /etc/ansible/vault_pass_file /usr/scripts/mik-backup.yml >> /usr/scripts/log.txt

cd /usr/svn_backup_repo/DFL_BACKUPS

svn add mikrotik/* --force -q >> /usr/scripts/log.txt

svn commit -m "added backups $now" >> /usr/scripts/log.txt

/usr/bin/mail it@mydomain.ru < /usr/scripts/log.txt -s "Отчет о бэкапах Mikrotik"


Иммутабельность – это неизменность. То есть если уже, например, в файле есть такие изменения, то второй раз они не делаются. Это то, в чем фишка Ansible и то, что не реализовано для микротиков (так как например в firewall важен порядок применения – это одна из причин, почему в его конфиге не поддерживается иммутабельность).


Теперь сюжет из жизни: мне понадобилось вкатить на все микротики одинаковый фильтр сетей OSPF – оставить только серые сети и фильтрануть по маске 10.0.0.0/8. При этом на каких-то микротиках я это уже делала, но не помню на каких. Прощелкать 50 штук – ну такая себе забава.


Итого сливается бэкап в текстовом виде, идет поиск по нужной строке и если она не найдена, то выполняем команду. А если найдена – ничего не делаем. Такая вот псевдо-иммутабельность получается. Да, один скрипт – одна команда, что не очень удобно, под список команд надо дорабатывать.

Сылка на весь код текстом вот

Ну и я не претендую на гуру, только-только начала щупать Ansible, надеюсь кому-нибудь пригодится.

Лига Сисадминов

2.4K постов18.9K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий
Так ли сложны они в настройке, сойдут ли кинетик для нетребовательной инфраструктуры сети?
раскрыть ветку (14)
1
Автор поста оценил этот комментарий

Микротики не сложны, мануалов куча. Кинетики - не имела дела, не могу сказать. Если вы хотите в сети делать всякие извращения, то берите микротик, вы получите взрослый роутер, который умеет всё или почти всё. А если задача просто воткнуть какой-то роутер на точку, то можно и смотреть что попроще.

раскрыть ветку (11)
0
Автор поста оценил этот комментарий

Вы недооцениваете Кинетики.

0
Автор поста оценил этот комментарий
А правда, что с вайфаем у микротиков есть проблемы?
раскрыть ветку (9)
0
Автор поста оценил этот комментарий

Правда, плохо даже в последних творениях.

0
Автор поста оценил этот комментарий
Вроде в бесшовную вафлю не могут.
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

да никто не может

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

В D-Link-е видел такую настройку. Модель уже не помню.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

То, что где-то есть галочка бесшовный роуминг, не значит, что оно есть. Проблема 802.11 в том, что именно клиент решает к какой точке, когда и каким образом подключаться. Стандарты k,v, и r частично решают эту проблему, но только если и ап и клиент поддерживают эти стандарты, и при определенной погоде, а также в зависимости от астрологического прогноза для стрельцов на пятницу. Потому что все равно клиент выбирает, даже если ему предоставить всю информацию по загружености точек, он все равно захочет выбрать любую какую вздумает. Если забанить его на этой точке, клиент может упорото пытаться продолжать попытки подключения к этой тд игнорируя остальные. Мы ему приказать не можем. Остаётся только ставить самые производительные ап, правильно выбирать их расположение и адекватно настраивать мощность, выставляя минимально необходимое количество дб. А потом молиться, чтобы все работало.

0
Автор поста оценил этот комментарий
В Кинетах(Кинетик) есть настройки, Утипути(Убикьюти) могут вроде как.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Нет, Убики не могут, но пытаются, а Кинетики заявили соответствие стандартам rkv, но на практике работает так себе, во всех случаях зависит от клиента. Из перечисленных - Убики реально держат по полсотни клиентов на точку, поэтому в низком бюджете являются приоритетным выбором при относительно высокой плотности клиентов (например: Микротик 3011 или 4011 + wifi на Unifi). Кинетик имеют хорошие антенны, некоторые модели - усилители, позволяют покрыть большие площади, при условии малого количества шумов, в загородном доме, например.

0
Автор поста оценил этот комментарий

Правда.

0
Автор поста оценил этот комментарий

По отзывам да. Лично опять же не сталкивалась, у нас без вайфая они, под другие задачи

0
Автор поста оценил этот комментарий

Кинетики на порядок проще, главное - нагляднее, кроме того, позволяют бесшовный роуминг rkv, принтсервер - то, чего нет в Микротик, кроме usb модема и дуалван (это есть в обоих). Но, повторюсь, Кинетик в разы проще. Если всё, что Вам нужно - дуалван, гостевая сеть, vpn и пару vlan - Микротик тут не нужен, акстись.

0
Автор поста оценил этот комментарий

Кинетики совсем неплохи, и конечно user-friendly*100 чем творение пары бородатых викингов, отрицающих существование русского языка ))) Просто разные ниши, кинетик-home , mikrotk- крепкий small-buisnes.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку