🦾 IT-Качалка Давида Шекунца 💪 Вкратце: semaphore – агентные раннеры и инфра для хранения меты для плеейв, paasible – расширение возможностей консольной утилиты ansible-playbook
Длинее, 3 момента:
- Мне нужна возможность сохранять результат запуска консольного ansible-playbook для будущего поиска по нему, причем неважно где и кем был произведен запуск
Для максимальной простоты я сделал персистенцию прямо в репе: историю запусков хранится в .json в git репе, а при запуске UI парсится в sqlite, в котором можно провести нужные поиски
Это позволяет версионированно видеть логи всех запусков со всех машин, которые вы делали на проекте, а их очистка – удаление ненужных json
Semaphore требует намного больше действий, чтобы получить тот же результат
- Semaphore не решает проблему работы с плейбуками на удаленной тачке
В paasible я хочу добавить команду, которая будет разворачивать в удаленном docker / kubernetes контейнер с репозиторием и включенным внутри paasible UI, а дальше позволяет подрубить туда свою IDE
Да, это можно сделать самому, но и историю можно сохранять самому через условный >> (date +%s)_result.txt, но суть paasible как раз дать эти вещи из коробки
- А вот уже после всего этого можно будет сделать центральный сервер paasible, который позволит хранить историю в едином месте, хранить секреты, раздавать доступы, устанавливать кроны, использовать paasible контейнеры как раннеры и подобное
Но это уже если paasible зайдет и захочется конкурировать с semaphore
У меня вся работа с IoT через него выстроена, обновления раскатываем через обычные playbook внутри semaphore из gitlab, сикреты Ansible используются, environment Ansible.
Семафор сверху даёт разделение прав доступа по пользователям, учёт лога активностей, разделение на проекты с быстрым переключением и разделением по ним доступа, логи по каждому запуску. Да, даже иногда diff + dry run прямо там галочками ставлю и прогоняю, чтобы отладить