плейбук который генерит сложную систему файлов конфигурации во вложенных директориях исходя из пары параметров. хочу написать этому делу тест, каким образом проще всего проверять консистентность? пока предполагаю заворачивать выхлоп в тар и брать какой-нибудь хеш типа мд5, норм подход? или можно как-то проще (хотя куда уже проще в целом)
а почему у вас есть сомнения, что ansible вам сделает, что то не так ?
да я скорее про подходы к тестам подобных задач, сомнений в целом нет. иногда бывает полезно послушать опыт
Проще всего по громкости криков ПМ-а после факапа
мне кажется это больше к тестированию - юнит, итеграции и прочее. И на основе уже их выхлопов решать правильно или нет. А так - хз. Ну есть файлы и?)
дык я про тесты и говорю, да. не просто есть файлы, а есть файлы сгенерированные на основе определенных вводных. и нужно допустим тестировать перед мерджем в мастер что каноничный конфиг из каноничного набора данных генерится один и тот же с одной и той же структурой и наполнением.
ну это чуток бред. Если исходный шаблон один и тот же и нет правил заполнения зависящих от каких то произвольных величин (тут тоже надо понимать что для каждого это разный набор) то выхлоп будет все одинаков.
нет, разный. пользователи запускают плейбук с разными параметрами для генерации уникальных конфигов для сайта. ну то есть - есть набор переменных, есть толпа шаблонов и некая логика, довольно сложная, по которой эти шаблоны заполняются на основе этих переменных и рендерятся в итоговые файлы конфигурации.
Я предполагаю, что у вас просто в проекте бардак. Не надо иметь одну роль с мега супер дупер конфигом. Если у вас есть шаблон и есть переменные, в чем сомнения - что будет не верный конфиг ? Если у вас шаблон хреновый, то вы и получите конфиг хреновый. Если вы собираете неочевидные факты и страдаете башимблом, то будут выстрелы в ногу.
ну вот для меня не совсем понятен скрытый смысл и логика. Если входные данные меняются и выходные данные тоже, то как можно настроить тестирование? Тот же md5 будет разный. Читай - произвольный входной набор переменных -> произвольный набор выходных данных. Единственное это если есть схема папок одна и таже - тогда можно просто тестировать что файл или папка ЕСТЬ. А что там есть - уже неясно.
то что у меня в проекте бардак сомнений нет, но мы сейчас не об этом. для понимания что получается на выходе - это грубо говоря стейт конфигурации нескольких сотен сетевых устройств для одного отдельного датацентра. из этого стейта отдельным скриптом отдельным механизмом варятся и назначаются конфиги непосредственных устройств. этот самый плейбук про который я говорю это один из множества плейбуков который по сути просто отдельная утилита в системе управления сетью. утилита эта запускается ручками и ручками же назначаются параметры для генерации нового набора промежуточных конфигов железок. это хозяйство мерджится в отдельную репу со стейтом и это отдельная песня. проблема в том что в эту плейбуку пишут логику несколько людей и периодически эта логика немного ломает вывод, хотя этого не должно было происходить (i.e. какие-то изменения которые не должны были затронуть вывод, но случайно затронули). немного понятнее задача стала?
нифига. Для того чтобы чекать логику нужны тесты - поднимать вирт машину или что там у вас и проверять что вывод 1 - в 1 , вывод "Привет Земляне" - "Привет Человеки" и прочее. По другому никак. То есть вам надо делать до мержа генерацию - запускать такого плана тесты на заданном конфиге-файле-наборе и после этого уже мержить
Обсуждают сегодня