Aleksey
Мне собрать за вас ?
Я думал может у кого есть готовые решения, либо я не в правильном направлении двигаюсь
Aleksey
Предлагаю обсудить позже
Спасибо, написать вам?
Jungo
Ммммм.... смотрите, у вас один хост может состоять в нескольких группах
это понято - просто тут идея в том что app lxc есть не многих proxmox серверах и хотелось это описать и потом обращаться как то через subset ко всем app нодам
Антон
это понято - просто тут идея в том что app lxc есть не многих proxmox серверах и хотелось это описать и потом обращаться как то через subset ко всем app нодам
Так в чем проблема то? Вытащите вообще в отдельную группу и в плейбуке when. Или я чего-то не понимаю?
Антон
наверное я не понимаю)
Логику вашу опишите, что вам должно дать выделение lxc хостов?
Jungo
Логику вашу опишите, что вам должно дать выделение lxc хостов?
хочется обращаться к lxc хостам одновременно но по сути например на 3 сервера 3 app ноды и я не могу записать в инвентори app 3 раза поскольку хостнейм будет неуникальный
Jungo
В разных группах - можете
да - получаесся но переменная ansible_host только одна видна - если hostname одинаковый то переменные для них чикаются - берется только одна
Антон
А в чем проблема по разному назвать хосты и контейнеры? Можно префиксы поюзать
Jungo
@Dr_Wut ноды реально называются одинаково на гипервизорах( например нода gw - и таких нод штук 15(( - ладно спасибо! пойду спать может приснится решение
Антон
Антон
И вам все равно как зовётся машина на самом деле
Jungo
просто я начал пилить инвентори по реальным боевым ситуациям - допустим заменить proxy_pass на каждой gw ноде на 3 гипервизорах видимо надо обозвать их gw1 gw2 gw3- другого выхода не вижу
Антон
Это самое жестокое что мы можете сделать с собой. Назовите осмысленно - правильный нейминг на порядок упростит вашу жизнь хотя бы в плейбуке
George
Спасибо, написать вам?
https://hub.docker.com/r/billyteves/ubuntu-dind/
George
на самом деле изобрести что-то подобное - https://github.com/docker-library/docker/blob/92d278e671f32a9ee4a3c0668e46a41f4a3b74b0/19.03/dind/Dockerfile - на убунту тоже не должно быть сильно сложно
Aleksey
https://hub.docker.com/r/billyteves/ubuntu-dind/
там старая версия 16.04 но я адаптировал под 18.04, вроде все работает
Aleksey
спасибо!
George
выложите тогда в отдельный репозиторий и на докерхаб. Кто-нибудь обязательно скажет спасибо
Aleksey
выложите тогда в отдельный репозиторий и на докерхаб. Кто-нибудь обязательно скажет спасибо
хорошо, можно еще вопрос, как вы предпочитаете хранить ансибл конфигурации? Отдельно от кода проекта или вместе?
George
не совсем понимаю вопрос
George
можно конкретнее? потому что у нас речь идет о стопицот микросервисов в отдельных репах
George
и становится логично немного увеличить количество реп и ансиблы хранить отдельно
Aleksey
Понятно что проекты бывают разные, ну если взять более-менее средний сайт, где есть код сайта, возможно он собирается, деплоится
Aleksey
Тут либо хранить все в куче, либо выносить например код сайта в один проект, конфигурацию в другой
George
если ты можешь обеспечить, что конфигурация синхронно обновляется с кодом проекта - можно хранить и в одном. Но это боль. В противном случае, я бы разносил
George
тем более, если есть варианты использования одного модуля (один модуль = 1 гит репо) в нескольких применениях
George
о микросервисах, например.
Aleksey
о микросервисах, например.
можно пример типичного микросервиса?
George
https://github.com/inCaller/prometheus_bot
Aleksey
если ты можешь обеспечить, что конфигурация синхронно обновляется с кодом проекта - можно хранить и в одном. Но это боль. В противном случае, я бы разносил
Бывает так, что код зависит от кофигурации, например конфигурация добавляет новый модуль в систему без которого код не работает, это иногда доставляет проблемы
George
вопрос нетривиален, согласен.
Aleksey
Проблемы версионинга, т.е. нужно где-то все-равно иметь единый репозиторий в котором будет соответствие версий
Aleksey
а субмодули в git это не очень удобно
Aleksey
поэтому желание объединить все в один
George
боль будет в любом случае. В частности - когда захочется кусок монорепо отдать на сторону (если все приватное и светить ВСЕ низзя)
Aleksey
короче решения нет, нужно мучаться?)
George
идеального - нет. Все равно будет боль и страдание. Возможно пострадав сами - придумаете как локально уменьшить боль
Aleksey
о микросервисах, например.
Кстати о микросервисах, как предпочитаете свои микросервисы реализовывать? Я обычно делаю ансибл модуль и в него прям запихиваю код.
Aleksey
Делать один проект для микросервиса, один для его конфигурации как-то избыточно если я его не планирую разворачивать без ansible
Aleksey
это нормально?
Aleksey
Еще я это все в докер заворачиваю
Aleksey
Поэтому мне и нужен был контейнер для тестирования
Artur
Чат! вот тут https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#product-filters добавляют к элементам списка, а что если нужно перед элементом списка добавить?
es]x
Доброго дня поясните пожалуйста значение failed_when: False в выводе "failed": false, "failed_when_result": false, но ошибкой не считается почему?
es]x
вот так наверное вернее "failed": false, "failed_when_result": false, "msg": "non-zero return code", "rc": 1,
Sergey
ну и твой исходный месседж: failed_when: False не зафейлится никогда, т.к. фейлится при равенстве выражение True
es]x
теперь понял, спасибо)
Sergey
то бишь неявно написано вот так: failed_when: False == True
Lamobot
Чат! вот тут https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#product-filters добавляют к элементам списка, а что если нужно перед элементом списка добавить?
Там в примере ['foo', 'bar'] | product(['com']) Можно же и наоборот делать ['com'] | product(['foo', 'bar']) чтобы com был перед foo и перед bar
Artur
@lmmcs +1
Artur
тут кармы нет чтоли? 🙂
Egor
тут кармы нет чтоли? 🙂
неа, самые полезные админами становятся :-)
Maksym
задался вопросом как хранить ключи в репо, если в vault то там будет все контентом а не файлом, как принято быть с такими штуками как ansible_ssh_private_key_file, которые нужны уже до старта? Колхозить создание и запись в файлы с переменных окружения (в случае CI), получать проблемы с относительными путями (в случае с путями внутри тасок и тд)?
Alexander
Ключ так же можно зашифровать. А если речь о CI, то засунуть его в хранилище кредов CI
Maksym
если серверов много то или для каждого свой вар (откуда потом при запуске в агент добавлять или файлы создавать) или одним на все, все как код не ок на этом уровне организовывать?
Timur
Для того же ансибла
Антон
неа, самые полезные админами становятся :-)
А почему тогда жора не админ? :)
Антон
А можно как-то рулить правами на переменные в ансибле?
Egor
А почему тогда жора не админ? :)
Потому, что гладиолус ;-)
Maksym
Вообще логично одного служебного пользователя на все добавлять
если держать один сервер и там постоянный юзер со всеми ключами то мне понятно, а вот как быть с CI//
Maksym
и раз я уже вас отвлек, поделитесь практиками как лучше делать бекапы (на примере django, где есть файлы юзеров и бд) - как это организовать чтобы правильно? я сейчас написал баш скриптик который делает дамп, готовит папку со всем этим и отправляет на s3 (там копирует папку latest в новую под конкретной датой). Но мне кажется это вообще неверно относительно ансибл идей и бестпрактик...