Dmitrii
де то такая хуета: "echo 'Hot-fixing https://github.com/mitchellh/vagrant/issues/7368'", "sudo grep -q 'mesg n' /root/.profile && sudo sed -i '/mesg n/d' /root/.profile",
Dmitrii
Потом...
Dmitrii
Как пожать бокс, чтобы не качать 2 гига с интернета: "sudo dd if=/dev/zero of=/DEFRAGMENTATION bs=1M || true", "sudo sync", "sudo rm -f /DEFRAGMENTATION", "sudo sync"
Dmitrii
И вот такого дерьма в итоге скопилось навалом )
Dmitrii
В целом работает, после vagrant up девелопер может писать код.
Dmitrii
Написал плейбук в ансибле, который дампит прод, и льет дамп для девелоперов в наш реджистри в S3, оттуда потом ансибл плейбуком забирается база, которая воткнется в бокс девелоперу
Dmitrii
Кучу всего пришлось сделать в общем, чтобы дойти до того, чтобы было реально в один клик.
Dmitrii
Сами боксы заливаем в платный атлас
Dmitrii
Билдим пакером + ансибл
Aleksey
Ясна. Много девелоперов?
Aleksey
Зачем платный атлас?
Dmitrii
Девелоперов меньше десяти
Dmitrii
Чтобы вагранту не пихать полные адреса до сервера с метадатой, чтобы не управлять метадатой вручную (версии)
Dmitrii
Платный атлас решает проблему доступа к боксам
Dmitrii
Теперь девелопер должен сделать vagrant login перед началом работы.
Dmitrii
В принципе можно свое на коленке сделать, но у меня щас задача не атлас скопировать )
Dmitrii
Еще напоролся на грабли, когда есть файл с параметрами, и в гите он не лежит, параметров так дохера что девелоперы часто делают некорректную конфигурацию даже если есть dist файл
Dmitrii
Было решено генерить этот файл ансиблом тоже
Constantine️
Димас, а ты какую должность у себя в конторе занимаешь? в devops таки ушел?)
Dmitrii
Но в итоге когда делаешь vagrant up оно файлы хоста считает приоритетными и версию из бокса затирает к хуям
Dmitrii
Димас, а ты какую должность у себя в конторе занимаешь? в devops таки ушел?)
Я такая универсальная пуля для небольших компаний. Могу и в девапс и в программирование.
Dmitrii
Решили в итоге, что для девелопмента этот файл будем генерить в ~/.parameters.php + локальный провижен вагранта (средствами вагранта) с флагом run: always
Dmitrii
В нем мы копируем эти параметры, которые были закомичены мною, и в итоге они приедут всем разработчикам, даже если они испортили что-то в этом файле. Или там появилась новая структура
Aleksey
Есть диаграмка?
Pavel
чуваки глянье на contribution activity на гитхабе, квадратики стали хэллоуиновскими
Pavel
Они нарушают мои релизиозные чувства, нетолерантные сволочи
Pavel
прикольно опечатался
Александр
Я думал специально написал.
Pavel
неа
Dmitrii
Есть диаграмка?
Диаграмма чего?
Aleksey
ну как оно всё вместе связано
Dmitrii
Пока нет
Aleksey
всё равно же для доки рисовать :)
Dmitrii
Думаю через неделю появится
Dmitrii
всё равно же для доки рисовать :)
Короче, схема такая. Есть свой сервис — registry для дампов базы данных. Состоит из nginx который, запрашивает Basic auth и проксирует запросы в приватный S3 бакет, где лежат все дампы. Есть приватный Atlas — для хранения билдов VirtualBox. Билды туда заливаются при помощи Packer Atlas post processor. В ансибле написаны следующие плейбуки: 1) ETL. Идет в амазон, создает инстанс, качает на него дамп базы с прода (с реплики), делает какие-то действия, например деперсонализацию, установку пароля 12345 для всех пользователей и т.д. Скачивает туда, откуда запустили плейбук, удаляет инстанс к хуям. 2) Плейбук, который заливает архив с базой в наш registry. Заливает под определенной датой, делает симлинк на current архив. 3) Плейбук, который разворачивает базу из registry на целевой машине. Далее с помощью Packer собираем VirtualBox образ, травим на него плейбуки приложения + плейбук №3.
Zon
А кто плейбук запускает?
Dmitrii
Который из
Zon
Первые два. Последний видимо разраб
Dmitrii
Плейбуки №1 и №2 запускаются в CI джобе каждую ночь
Dmitrii
Для плейбука №3 есть несколько вариантов: 1) Запускать руками (не мой вариант) 2) Собирать автоматически хуком пуллреквеста на гитхабе
Dmitrii
Для варианта №2 есть еще 2 варианта... Собирать в Hetzner или собирать в HashiCorp Packer. Я буду делать это в HashiCorp.
Dmitrii
Опечатался, не для плейбука №3 а для последнего пункта где речь про билд образа
Dmitrii
Сам плейбук №3 запускается пакером при сборке образа.
Dmitrii
Т.е. сегодня на моих глазах, разработчик написал vagrant up и получил рабочий сайт с базой за сегоднюшнюю ночь.
Dmitrii
Охуенно же.
Zon
Добро! А CI какая?
Dmitrii
Параша. Не спрашивай 😕
Dmitrii
https://harrow.io
Zon
Даже не слышал
Constantine️
контора готова платить бабки на aws, но пользуешься CI парашей ))
Dmitrii
Меня принудили. Я готов выкинуть нахуй это как только мне позволят.
Dmitrii
Знаешь, типа есть такое мнение, когда продукт разрабатываешь, то надо самому им пользоваться. Ну так вот пользоваться заставляют им меня, а делают другие челы.
Dmitrii
Как то связаны с моей конторой
Constantine️
😂
Pavel
> есть такое мнение, когда продукт разрабатываешь, то надо самому им пользоваться. точно, это же одна из заповедей стартапера
Pavel
хорошо что твоя компания в mysql не контрибутит
Dmitrii
Каждый раз когда я своему начальству говорил как же хуево что-то сделано в этом harrow и адски тупит, и что фичу X можно сделать в Jenkins ну за день, на след день их овнер сидел у нас в офисе и ему ебали мозги все кому не лень по этому поводу.
Dmitrii
Чел этот, кстати, автор Capistrano
Dmitrii
Так что, если надо срочный фичреквест в капистрано сделать — обращайтесь 😂
Pavel
Зато наверно у вас все капистраной деплоится
Dmitrii
Ото-ж!
Pavel
Независимо от того хотите вы этого или нет 😂
Constantine️
каписрано когда стал версии 3, стал странным
Dmitrii
Тут альтернатив пока не вижу. Разве что по типу докерного деплоя.
Constantine️
помню свой переезд с 2 на 3, даже допиливать что-то приходилось на рубях для проекта
Aleksey
а я сегодня видел слово ansistrano
Aleksey
а видел ли его еще кто нть ?
Pavel
Я смотрел но в итоге не увидел сильного профита от использования этой роли
Dmitrii
Странно что еще не появился dokestrano
Pavel
Capidocker для деплоинга контейнеров на руби
🏳️ Phil
Вышел Ansible 2.2. Основные новшества: - серьезные улучшения в производительности; - добавлена поддержка бинарных модулей; - meta таски теперь поддерживают условия; - добавлена meta таска 'end_play', позволяющая закончить плей; - теперь можно подключать роли прямо посреди списка тасок с помощью include_role; - факты для Windows частично приведены в соответствие с форматом фактов для Unix-систем; - почти завершен переход на Python 3, фича находится в статусе Tech Preview - ну и куча новых модулей, в частности появились win_command и win_shell http://amp.gs/TLAY
Anonymous
расскажите, что такое бинарные модули, пожалуйста
Anonymous
и почему все так дрочат на винду в последнее время?
Anonymous
докер радостно рассказывает про винду, энсибл вот пилит
hdhog
Ну так чтоб иметь полный охват ос
Aleksey
винда видимо башляет
hdhog
Отсюда и большую аудитоию)
🏳️ Phil
расскажите, что такое бинарные модули, пожалуйста
Это бинарные модули к ansible. Они видимо заливаются на хост и там исполняются
Anonymous
не понимаю всё равно, что значит "бинарный модуль"?
🏳️ Phil
написал на Си, скомпилировал, положил в libs