Alexander
Лучше каждой версии свою ветку. Потом когда конфиг будешь делать - запаришься с этой версией
Положу в files три версии готовых конфигов промаркирую их по версиям и будет копироваться нужная или я чего то не знаю?
Alexander
отдельную таску для настройки могу сделать и импортить ее через when по версии
Отделение Bereke Bank
да тоже вариант
Sergey
но ты, разумеется, можешь им пойти
Alexander
но ты, разумеется, можешь им пойти
Я совершенно не против встать на верный путь. Ибо мой текущий путь - первый
Andrey Zakharov 🐝
Max
Andrey Zakharov 🐝
а есть ещё какие то аналоги ? просто я так понял нужно в репе держать каталоги как в ансибле
Andrey Zakharov 🐝
немного не подошёл такой вариант к сожалению , но всёравно спасибо
Andrey Zakharov 🐝
аналоги гита?
😊 нет аналоги я имею в виду может есть какие то репозитории де можно это хранить
Andrey Zakharov 🐝
пишите свой 🚲 тогда.
ну так и выходит да , с хранением в nexus/artifactory
Andrey Zakharov 🐝
да почему же ? в полне простой вопрос , на который вы мне ответили
Max
ну так и выходит да , с хранением в nexus/artifactory
можно, но код же. и так доступен.
Max
почитайте сайт https://galaxy.ansible.com
Max
если не будете пользоваться галакси, вам придется реализовать весь механизм delivery.
Max
это - велосипед.
Andrey Zakharov 🐝
почитайте сайт https://galaxy.ansible.com
да я тоже кстати в их сторону вначале посмотрел , но к сожалению немного не подошло проблема на самом деле в том что у меня уже есть этот самый велосипед , у которого есть сущность "версия шаблона" (назовём это так) , и оно в разные окружения выкатывает и вот одном из таких окружений инструмент шаблонизации является ансибл
Andrey Zakharov 🐝
надеюсь не сильно мозг вам поломал своими "эротическими фантазиями" )
Max
надеюсь не сильно мозг вам поломал своими "эротическими фантазиями" )
я не пугаю. если 🐝, то пиши. есть такие термины как roi и tco. самопал писать почти всегда дороже.
Max
причем альтернатива самопала - просто использовать существующий функционал стандартного инструмента.
Max
я бы не разрешил своим инженерам писать замену ansible-galaxy
Sergey
@bender008 оффтопик + флуд = 7 дней R/O. Следующий бан будет навсегда.
Andrey Zakharov 🐝
я не пугаю. если 🐝, то пиши. есть такие термины как roi и tco. самопал писать почти всегда дороже.
не знал кстати про эти термины (я больше по инженерной части чем по менеджерской если можно так выразится) , спасибо почитал - узнал чтото новое)
Alex
@bender008 оффтопик + флуд = 7 дней R/O. Следующий бан будет навсегда.
Лучше сразу бан навсегда. Неадекватный чувак, судя по вбросам
Andrey Zakharov 🐝
на поводу roi - тут сам по себе проект типа как ресёрч для внутренних нужд , и там изначально "велосипед"
Sergey
Лучше сразу бан навсегда. Неадекватный чувак, судя по вбросам
Ну Новый год же на носу, а доброта к людям сама себя не проявит 😊))))
Huan
привет всем есть задача сделать разделить типичные переменные в разные файлы: пример первого файла: — var_name_1: - name: name_1 param: param_1 второй файл: — var_name_2: - name: name_2 param: param_2 и таких файлов будет много (однотипные, кроме var_name) подскажите плз как это все объединить в одной таске?
Huan
описать параметры кафка топиков в отдельных файлах, чтоб не было одного файла на тысячи строк
Alexey
описать параметры кафка топиков в отдельных файлах, чтоб не было одного файла на тысячи строк
а топики надо сразу описывать? Нельзя ли это по аналогии с rabbitmq переложить на сторону приложения?
Sergey
описать параметры кафка топиков в отдельных файлах, чтоб не было одного файла на тысячи строк
Есть group_vars же, а если тысячи топиков - то по-любому кластер, а значит - группа.
Huan
сейчас все в одном файле и выглядит так: - name: create topic(s) kafka_lib: resource: "topic" api_version: "1.0.1" name: "{{ item.name }}" partitions: "{{ item.partitions }}" replica_factor: "{{ item.replication_factor }}" …. with_items: - "{{ kafka_topics }}” vars: — kafka_topics: - name: topic1 partitions: 2 replication_factor: 2 options: retention_ms: 31536000000 state: present … - name: topicX partitions: 2 replication_factor: 2 options: retention_ms: 31536000000 state: present
Alexey
я поясню - мы делали так что и producer и consumer всегда сами динамически создавали необходимые exchange / queue / queue_binding... потому что держать это в инфраструктуре кажется какой-то жутью..
Huan
согласен, но у нас кафка и данные в топиках очень важны, соответственно и конфигурация важна
Sergey
сейчас все в одном файле и выглядит так: - name: create topic(s) kafka_lib: resource: "topic" api_version: "1.0.1" name: "{{ item.name }}" partitions: "{{ item.partitions }}" replica_factor: "{{ item.replication_factor }}" …. with_items: - "{{ kafka_topics }}” vars: — kafka_topics: - name: topic1 partitions: 2 replication_factor: 2 options: retention_ms: 31536000000 state: present … - name: topicX partitions: 2 replication_factor: 2 options: retention_ms: 31536000000 state: present
Организационно: кафка - это не хранилка, это брокер 😉 Технически: боль, грязь, унижение. 1. написать action_plugin; или 2. посмотреть мой доклад про Ansible для DevOps Moscow (там описана техника, которая такое может помочь побороть)
Alexey
ну тогда выходит все неодинаковое так или иначе придется где-то перечислить всю эту тысячу топиков, просто чуть по-другому блок шаблонизировать который в with_items если там есть одинаковые части
Huan
части одинаковые
sbog
согласен, но у нас кафка и данные в топиках очень важны, соответственно и конфигурация важна
Если задача просто разделить все это из одного файла в тысячу файлов, то просто раскладывайте с именами var_1, var_2 и т.д, а потом вместо with_items делайте with_sequence
Alexey
https://docs.ansible.com/ansible/latest/modules/include_vars_module.html может речь об этом была?
sbog
Если задача минимизировать это добро, то в include_tasks и там делайте merge с дефолтными значениями
Alexey
если надо просто vars по файликам распихать
sbog
Это можно не динамически делать, а прелоадингом
sbog
include_vars - оно скорее про то, что у тебя разные vars под разные дистры, ну или эти файлы создаются на лету
sbog
У коллеги, как я понял, эти vars уже есть
Alexey
У коллеги, как я понял, эти vars уже есть
"описать параметры кафка топиков в отдельных файлах, чтоб не было одного файла на тысячи строк" то есть он хочет много файликов варсов чтобы они мержились в один мега-варс
Huan
да
Alexey
да
ну вот как раз include_vars так и делает - все из директории подгрузит же
sbog
Если нужен var: - data: one - data: two то делать include_vars проще всего Если нужен var_1: data: one var_2: data: two то можно не грузить динамически
sbog
ну вот как раз include_vars так и делает - все из директории подгрузит же
Там нюанс в том, что если ты хочешь получить в одной переменной все, то недостаточно делать include_vars, придется потом итерироваться и собирать одну переменную из пачки все равно.
sbog
Ну или это все уедет в отдельный таск сет, на котором будет with_sequence
Huan
а что тогда указать в with_items?
sbog
А какой формат на выходе нужно получить-то?
Timur
Блин, чего тут поудаляли все?
sbog
Ну нужен формат этого yaml
sbog
Т.е. как хотите хранить и что хотите на выходе
Huan
вот типа такого: var_1: data: one var_2: data: two
sbog
Тогда вы операции по обработке над этими переменными выносите в отдельный таск сет, и делаете ему include_tasks: <имя тасксета> с with_sequence: start: 1 end: <сколько у вас там файлов с переменными будет>. А в таск сете будете использовать конкретные переменные. Примерно так: playbook.yml - name: Include tasks include_tasks: tasks.yml loop: "{{ range(1,1000) }}" loop_control: loop_var: loop_var tasks.yml - name: Something module_name: action_one: "{{ item.data }}" with_items: "var_{{ loop_var }}"
Sergey
т.к. в with_items ожидается список
Sergey
Либо я мысль тупо не понял.
sbog
Ну всегда можно сделать with_items: ["var_{{loop_var}}"] :)
Sergey
Ну всегда можно сделать with_items: ["var_{{loop_var}}"] :)
там не название должно лежать после шаблонизатора, а данные 😉
sbog
Ну тогда ее придется зарегистрировать в отдельной таске просто ;) set_fact: var: "var_{{ loop_var }}"
sbog
Зачем это?
Да мы тут открыты к предложениям, в общем-то
sbog
странное
Ну ты исходный пропоузал посмотри у человека
Sergey
Sergey
Вот, сопссно, один из вариантов (чуть подточить, но тож зайдёт): https://youtu.be/LApKSi5tUYo?t=1203
Max
на поводу roi - тут сам по себе проект типа как ресёрч для внутренних нужд , и там изначально "велосипед"
если ввести в игру термин "внутренний клиент", и "бизнес задачи", тогда все встанет на свои места?
Anatoliy
Есть какой-то способ узнать ключ списка для искомых данных? Нужно, например, чтобы изменить элемент списка, если мне известно только значение сейчас делаю через json_query; different; combine. но ...
Artëm
Коллеги, такой момент. Я правильно понимаю, что с переменной, рожденной внутри роли, нельзя замутить handler? Или всё-таки есть хаки?
Max
все переменные - были глобальны. т.е. их видно и в обработчиках (хотя могут быть race-condы)