Alf 🙀
Когда админов много
гит вам поможет
Alf 🙀
как организовать git flow в конторе тебе рассказать?
Alf 🙀
тогда в чем вопрос? как сделать сиай?
cyber
Да, пожалуй
cyber
Хотелось бы примеров
Alf 🙀
ну, смотри, есть у тебя роли и ты очень переживаешь что они не будут работать идешь и пишешь тесты и кладешь их в папочку тест про это есть целая глава в доке
Alf 🙀
если ты очень переживаешь как буддет работать твой solution(playbook) на енве, то тоже идешь и пишешь тест
Serg
Парни, странный вопрос назрел. Допустим я тестирую плейбуки с флагом --check. Есть 2 таски , первая добовляет новую репу, вторая устанавливает пакет из нее. Но в случае с тестом на втором таске всегда будет выпадать ошибка, поскольку репа физически не установленна. Как быть?)
Alf 🙀
когда назреют практические вопросы приходи с практическими вопросами
cyber
да whatever мужык ты хотел теории вот тебе теория
Я Как раз теорию представляю , меня интересует личный опыт
cyber
Может есть примеры статей на эту тему
Alf 🙀
ты хочешь чтобы я за тебя погууглил?
Yuri
Я Как раз теорию представляю , меня интересует личный опыт
Личный опыт - устанавливать repo отдельной ролью. И по необходимости включать ее в депенденсы.
Alf 🙀
кстати идея для стартапа let me habr it for you
cyber
кстати идея для стартапа let me habr it for you
Ты думаешь я там не был ? :)
Alf 🙀
Ты думаешь я там не был ? :)
это не тебе было. это было отвлеченно
Alf 🙀
Ты думаешь я там не был ? :)
ты вот сначала определись что ты хочешь тестировать, роли по отдельности или как все это будет катится в связке на твой прод стейдж и прочее
Alf 🙀
от этого будет слегка разнится воркфлоу, а дальше уж что там тебе интереснее и ближе рспек китчен - на вкус и цвет
iF
Может есть примеры статей на эту тему
Все статьи описывают или сферического коня или конкретные решения под конкретную инфраструктуру. Тут надо пробовать самому. Вот например у меня было реализаций штук, уже не помню, болше пяти. Пришел к тому что разделил по репам, роли, сценарии и публичные ключи. Причем та структура каталогов, которая рекомендуется вбестпрактикс, лично мне не подошла.
iF
Так же и с CI, есть то что в гитлабе, есть тимсити, молекулы всякие, докеры, вагранты.
iF
К чему лежит душа, что ближе и что лучше понял
Alf 🙀
да, организация процесса внутри конторы - очень уникальная штука. успешно без изменений перенести одно в другое - нельзя.
maniac
чятик сегодня веселый конечно. сначала веселый потом немного грустный.
iF
Разогрев перед пятницей
Alex 서퍼
Добрый день! Есть ли более красивый способ сделать это: - set_fact: extra_hosts: "{{ extra_hosts + [ 'rabbitmq-' ~ hostvars[item]['inventory_hostname'] ~ ':' ~ hostvars[item]['clx_ip'] ] }}" with_inventory_hostnames: - rabbitmq
Nikolay
ansible-cmdb
Скрытая реклама?
Aleksey
нее. вполне конкретная
Aleksey
я юзаю. удобно
Nikolay
я юзаю. удобно
Разве не ты его запилил?
Aleksey
нет
Aleksey
я там много репортил багов
Aleksey
и допиливал до юзабельного состояния
Anton
а что за прикол с ансибл. поставил ограничение по кол-ву потоков в 10 штук. если вся пачка из 10 штук выполнилась с ошибкой, то плейбук полностью останавливается, даже если не по всему списку прошёл
Anton
ваще наверное правильно, предположение на отвал по сети, например
Anton
но как это поведение изменить?
Alf 🙀
но как это поведение изменить?
http://docs.ansible.com/ansible/latest/playbooks_error_handling.html
Anton
не, всмысле не игнорить ошибки, т.к. они реальны
Anton
а что бы плейбук дальше выполнялся, даже если все хосты в очередной пачке потоков вывалились с ошибкой
Alf 🙀
окей не то, похоже.
Köfte
видимо их много может быть
Köfte
очень плохо конечно, когда так
Köfte
это какой юзкейс?
Anton
а чем это отличается от игнора ошибок?
ну я хочу что бы проблемыне хосты по прежнему записывались в main.retry
Anton
много железок, из них многие не доступны на момент запуска плейбука, как будут доступны запущу на них
Anton
ваще дело не в том что ошибок много, а в том что я ограничил число потоков до 10, что бы не загружать сеть
Köfte
так плейбук дальше идет, когда не может приконнектится?
Anton
в пределах 10 потоков возможно 10 ошибок
Anton
так плейбук дальше идет, когда не может приконнектится?
он идёт дальше когда например 9 из 10 были фейл и 1 успешный
Anton
а если все 10 фейл - то останавливается
Anton
я говорю про команду serial
Andrey
Господа, может у кого есть хороший пример (ссылка на github), плейбука для развертывания проекта контейнеров так на 6-8 постоянных и служебных временных еще штук пять (стандартный такой блог за 10 минут) на голую машинку. Сами налепили тяп-ляп (в одном плейбуке делается и провиженинг и деплоймент (включаяя остановку - модификацию данных - запуск), но хотелось бы найти действительно красивый и "правильный" вариант, почерпнуть какие-то идеи. Сейчас плейбук с предварительно прогнанным когда-то провиженингом отрабатывает на слабой машинке за четыре минуты, это меня печалит.
Andrey
* Compose не предлагать
Andrey
Плюс ко всему, хотелось бы понять, как устроить "фазы" деплоймента, которые сквозняком проходят через множество ролей. Пока что думаю над Ansible Tags - вроде должно подойти.
Alexander
* Compose не предлагать
Как насчет docker compose?
Andrey
Отлично
Andrey
Очень любим
Sergey
Плюс ко всему, хотелось бы понять, как устроить "фазы" деплоймента, которые сквозняком проходят через множество ролей. Пока что думаю над Ansible Tags - вроде должно подойти.
Не берусь говорить за "бест практис", но сам лично использую следующий набор тегов в ролях: - prepare (притащить внешние зависимости) - install (установить сам артефакт в систему) - configure (сконфигурировать артефакт) - start (запуск) - stop (останов) - restart (перезапуск)
Александр
А апдейты?
Sergey
А апдейты?
что такое апдейт? установка артифакта другой версии 😊
Sergey
версии "пиню", то есть явно указываю
Александр
Ну всмысле, ты в плей буке можешь указать определенную версию, но тут тебе с жопой в мыле прибегает разраб и говорит, у нас деплой, нужно переделать версию, т.е., откатить вверх или вниз по мажорным версиям
Александр
А у тебя уже все стоит, т.е. ты будешь удалять все и заного заливать или как?
Sergey
я просто укажу в inventory нужную версию артифакта. типа так: [all:vars] component1_version: v1.5.9 component2_version: v1.5.7 ну и меняй на здоровье как угодно. понятно, конечно, что версию схемы в базе просто так не поболтаешь вверх-вниз, но и там нужные подходы реализовать возможно.
Александр
Ммм.. т.е. в зависимости от ситуации у тебя тот или иной дергается
Александр
И если к тебе приходят и говорят, надо то-то, ты просто добавляешь его
Александр
Понятно
Sergey
Про удаление - удалять что-то куда-то не имеет особого смысла (как раз на случай резкого отката и дальнейшего перехода к blue-green deployment). Вместо этого использована определённая схема путей в ФС при создании пакета, когда у тебя в системе могут находиться и не мешать друг другу различные версии одного и того же компонента.
Александр
Надо попробовать так сделать, у меня просто задачи такой не было, даже не задумывался об этом. Спасибо за направление