George
TL;DR
Andor
Andor
Артём
Понял.
Andor
я не хочу доходить до запуска приложения, я хочу посмотреть чо мне джинжа сгенерирует
Timur
Ансибл для этого не нужен вообще
Andor
ну это не то же самое потому что в ансибле дохрена своих фич джинджи и хотелось бы это всё вместе в комплекте проверять
Andor
и сравнивать с тем что я ожидаю увидеть
George
потому что вход для джинджи ПЕРЕМЕННЫЙ
Andor
ну и это даже не про джинджу а вообще
George
от зависит, например, от того, что выплюнет гуголь клауд модуль
George
ваш ход
Andor
например вот у меня у таски написано with_items: ... и я хочу написать тест что у меня будет выполняться столько-то инстансов этих тасков с такими-то параметрами
George
ну, я и говорю мокать, но это адища получается - там мокать нужно любые ответы (сакцес, фейлед, разные враианты ответа АПИ) - фу-фу-фу
Andor
замокать вызов соседних тасков - другого уровня задача, для этого не надо мокать весь гугл-клауд
Andor
и даже не вызов соседних тасков, а переменные оттуда приходящие
George
т.е. ты хочешь таски элементарно независимо друг от друга КАЖДУЮ проверять?
Andor
ты уже в конкретику уходишь, я хочу юнит-тестов
Andor
их нет
Andor
ок, едем дальше
Andor
George
Andor
могу в чяте папета показать, не тут
George
просто я так понимаю, коллегам это не нужно, т.к. они роли молекулой гоняют и у них все хорошо
George
скинь ссылку на него
Andor
в поиске же, ну
George
https://habr.com/ru/post/437216/
George
https://habr.com/ru/post/351974/
Andor
да я юзаю молекулу же, слыш
Andor
но это не то чего бы мне хотелось
Timur
Лучше вот:
https://habr.com/ru/company/oleg-bunin/blog/431542/
Timur
George
это уже третья ссылка. Может запинить?
George
Ты хочешь странного
на самом деле нет, я тоже хочу чего-то подобного, т.к. каждую таску сейчас приходится брать из головы
George
и отлаживать прям на живую
Timur
Timur
А какие еще варианты?
Timur
Юнит-тесты есть для модулей. Там они актуальны
George
они не говорят о том, что таска корректно написана
Timur
А для плейбук и ролей все равно решает интеграция
George
они говорят о том, что МОДУЛЬ сам корректно написан
George
Никита
расскажите за модуль postgresql_table, как корректно задать размер поля в таблице?
- name: "Create companies table"
postgresql_table:
db: {{ DB_NAME }}
table: companies
columns:
- company_prefix character varying 12
Timur
George
/на самом деле она отстой/
George
это вежливый способ сделать - 🖕?
Timur
Суток хватит?
Andor
Timur
почему?
Потому что на уровне запуска плеев все решает интеграция уже
Andor
это всё ещё разные уровни тестирования
Timur
Результат выполнения таски будет сильно зависеть от окружения, инвентаря, используемого конфига ансибла, предыстории тасок, и т.д. и т.п.
Timur
Это как тестировать работу отдельного глаза в отрыве от нервной системы
Andor
Timur
И да, если кто забыл: Ansible - это не язык программирования
Andor
George
баш тоже как бы не совсем язык программирования
Timur
Поэтому не нужно пытаться натянуть на него привычную парадигму разработки на ЯВУ
George
только это не мешает на нем скриптовать
Timur
Andor
Timur
George
Often the result of a play may depend on the value of a variable, fact (something learned about the remote system), or previous task result. In some cases, the values of variables may depend on other variables. Additional groups can be created to manage hosts based on whether the hosts match other criteria. This topic covers how conditionals are used in playbooks.
Andor
???
по-моему это язык программирования поверх синтаксиса yaml + jinja
George
ну, да, результат плея может зависеть от внешних факторов. Это как бы очевидно
Andor
но раз ты считаешь, что это не делает язык ансибля языком программирования, то ок
Никита
расскажите за модуль postgresql_table, как корректно задать размер поля в таблице?
- name: "Create companies table"
postgresql_table:
db: {{ DB_NAME }}
table: companies
columns:
- company_prefix character varying 12
Timur
YAML - не язык программирования
George
Никита
Senior YAML Programmer