Dmitriy
> Поэтому, в реальной жизни используется всё: и варс, и дефолты, и переменные групп, и хостов я вот этого наелся в своё время - поэтому сейчас использую только defaults и group_vars
Aleksandr
и хост варс
Aleksandr
иногда надо)
Dmitriy
вот из-за таких послаблений потом можно огрести
Dmitriy
есть defaults - есть group_vars
Aleksandr
ну а что делать если мне надо только на 2 хоста из 10 разлить 2ух юзеров?
Aleksandr
например
Dmitriy
отдельная группа заводится, например :)
Aleksandr
чет не думал об этом
Dmitriy
или, как мы сейчас решили внутри группы отдельная варка с конкретными хостами
Serge
А чтобы ip хоста прописать тоже группа?
Dmitriy
ip хоста и ansible - это о разном
Serge
А чтобы задать переменную, которая нужна только в роли и вычисляется из остального контекста?
Serge
ip хоста и ansible - это о разном
А? Реальная жизнь... Напоминаю
Dmitriy
Я тоже в реальной жизни живу, напоминаю
Dmitriy
В любом коде можно наплодить говна, оправдывая это реальной жизнью
Serge
Это может быть хостнейм, который резолвится только после прохода через ssh bastion, например
Serge
Id уникального хоста в aws
Dmitriy
по-прежнему не понимаю, как тут может помешать разумное ограничение в хранении переменных в одном определенном месте
Dmitriy
я могу рассказать обратную сторону, когда реальная жизнь у вас случилась и вы раскидали варки по куче мест
Dmitriy
Г - логика
Serge
Просто каждая переменная определяется один раз
Dmitriy
я её не вижу всё еще
Serge
Я вопрос задал. Куда пихать hostname конкретного хоста
Serge
Группа с одним хостом?
Serge
Тогда это будет усложнять только и делать неочевидным наличие этой группы
Serge
А чтобы задать переменную, которая нужна только в роли и вычисляется из остального контекста?
Dmitriy
А как у вас это решено?
Dmitriy
У нас есть группы с одним хостом. Мастера в разных кафках и зк, например.
Serge
Как я пишу. У переменных есть смысл. Каждая задается или вычисляется в своем месте. Естественно, для каждой переменной оно своё
Dmitriy
Что мешает вычислять что-то в одном месте?
Serge
Ну и смотри слайды выше
Dmitriy
в тех же груп_варс _или_ в хост_варс?
Serge
Что мешает вычислять что-то в одном месте?
Потому что нет такого места.
Serge
в тех же груп_варс _или_ в хост_варс?
В групп варс я ещё не знаю что в зависимостях ролей и как это изменит контекст
Dmitriy
Ох
Dmitriy
Ещё и зависимости ролей
Serge
Обязательно
Dmitriy
Я всё понял.
Dmitriy
Вот что бывает, когда программист берётся делать работу админа
Serge
Или мне копипастить установку nginx для каждого типа хоста?
nvkv
котаны, а это я что-то не так делаю, или действительно в подавляющем большинстве случаев нет никакого смысла выдрачивать плейбуки под переносимость между дистрибутивами, делать их максимально "общими" и всё такое?
nvkv
у меня вот есть две инфры, одна на центоси, вторая на убунте
Dmitriy
Да, потому что DRY
но не KISS в вашем случае, к сожалению
Dmitriy
Сложность 100 хостов и 20 окружений ведь.
nvkv
когда мне надо что-то раскатать на убунту из того, что я уже раскатывал на центось мне НАМНОГО проще написать новый плейбук
nvkv
если я мысль понял, то не надо усложнять
nvkv
чем проще, тем лучше
nvkv
пусть не драй, зато просто
Serge
Сложность 5 окружений примерно и около 15 групп. Хостов больше, но там группами в основном, да
Dmitriy
котаны, а это я что-то не так делаю, или действительно в подавляющем большинстве случаев нет никакого смысла выдрачивать плейбуки под переносимость между дистрибутивами, делать их максимально "общими" и всё такое?
плейбуки сами по себе должны делать то, что от них требуется - и не больше :) если требуется уметь работать с двумя дистрами - ду ит, чо уж. Хотя у нас вся логика в ролях обычно, плейбуки только включают роли и пре\пост таски
Dmitriy
Не понял мысль
Прости, это был переход на личности
Serge
Вот что бывает, когда программист берётся делать работу админа
Потому что админов нельзя пускать в DevOps - Ansible получается тогда
nvkv
воу воу
nvkv
я как программист который оказался в девопсе протестую, ансибл няша
Dmitriy
Я так подумал, этот профиль использования переменных не противоречит моему посылу. Главное - чтобы все понимали, куда ходить менять конкретные переменные
nvkv
а портят его программисты, кстати :)
Serge
Infrastructure as a Code предполагает, что есть код и базовые принципы работы с ним.
nvkv
ну, да
nvkv
код декларативный
nvkv
если хочется кода, можно взять фабрик и приседать
Serge
я как программист который оказался в девопсе протестую, ансибл няша
Мы выше уже договорились, что оно говно, но лучше, что у нас есть:)
Dmitriy
А вот пре пост таски мне интересно зачем нужны:)
pre_tasks: - name: Disable Sensu alerts - name: Disable the server in haproxy - name: Ensure connections closed post_tasks: - name: Enable the server in haproxy - name: re-enable Sensu alerts
Dmitriy
например
Serge
С этим я полностью согласен:)
Если у вас работает такое соглашение, то его надо соблюдать и пересмотреть, если перестанет работать;)
Serge
pre_tasks: - name: Disable Sensu alerts - name: Disable the server in haproxy - name: Ensure connections closed post_tasks: - name: Enable the server in haproxy - name: re-enable Sensu alerts
Ну ясно, я просто предпочитаю ничего смыслового не пихать в главный файлик
Dmitriy
Это конкретный плейбук для конкретного деплоя
Serge
Считай, у нас полиси, что там только группа в hosts и входная роль для нее
Dmitriy
у нас главного файлика нет
Serge
Ну, тоже путь
Serge
Всякое может работать, если оно работает, удобно и понятно