173

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

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


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


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


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


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

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


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

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

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


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

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


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

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

Про то, как делать текстовый бэкап – в примере 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 для Mikrotik: бэкапы по identity и псевдо-иммутабельность Mikrotik, Системное администрирование, Длиннопост

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

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

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

685 постов12.8K подписчиков

Добавить пост

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

# mount -o remount,rw /sysadmins_league


Разрешается:

- # mount /dev/good_story /sysodmins_league

- # mount /dev/photo_it /sysodmins_league

- # mount /dev/best_practice /sysodmins_league

- # mount /dev/tutorial /sysodmins_league

Подробнее
Лучшие посты за сегодня
6404

Я бежала за вами все эти годы, чтобы...

Я бежала за вами все эти годы, чтобы...
5429

Когда тебя ценят

Когда тебя ценят
5127

Как меня чуть не взяли в рабство при поиске работы...

Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Как меня чуть не взяли в рабство при поиске работы... Зарплата, Право, Работодатель, Headhunter, Мошенничество, Мат, Длиннопост, Негатив
Показать полностью 7
4765

Тогда всё ок

Тогда всё ок Комментарии на Пикабу, Комментарии, Юмор, Дети
4708

Кроме жабы

Кроме жабы
4237

Красотка и толстяк

4221

Власть

4217

Нечего на зеркало пенять

Нечего на зеркало пенять
3788

Альтернативный вариант

Альтернативный вариант Владивосток, Карта мира, Юмор, Россия, Повтор, Картинка с текстом
3567

А нечего по внешности судить

А нечего по внешности судить
3513

Пинг бывает разным

Пинг бывает разным Скриншот, IT юмор, Пинг, Комментарии, Комментарии на Пикабу
3375

Такой вот Матч ТВ)

Такой вот Матч ТВ) Матч ТВ, Мини-футбол, Трансляция, Маразм, Скриншот
3080

Редкий вкладыш

Редкий вкладыш
3058

Надо брать

Надо брать Стальные шары, Проблемные соседи, Скриншот, Twitter, Юмор
Показать полностью 1
3032

Остановка сердца у подростка на физкультуре: Россия vs США

Показать полностью
2865

Пушкина не убили, он застрелился

Пушкина не убили, он застрелился Юмор, Скриншот, Длиннопост
Пушкина не убили, он застрелился Юмор, Скриншот, Длиннопост
Пушкина не убили, он застрелился Юмор, Скриншот, Длиннопост
Показать полностью 3
2750

Звонок по видео

Звонок по видео
2624

Отличный вопрос

Отличный вопрос Скриншот, Комментарии на Пикабу
2488

Из Подслушано

Из Подслушано
2462

Не только мирная, но и прогрессивная...

Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: