Alexander
отдельную таску для настройки могу сделать и импортить ее через when по версии
Отделение Bereke Bank
да тоже вариант
Sergey
Sergey
но ты, разумеется, можешь им пойти
Max
Andrey Zakharov 🐝
Max
Andrey Zakharov 🐝
а есть ещё какие то аналоги ?
просто я так понял нужно в репе держать каталоги как в ансибле
Max
Andrey Zakharov 🐝
немного не подошёл такой вариант к сожалению , но всёравно спасибо
Max
Andrey Zakharov 🐝
аналоги гита?
😊 нет
аналоги я имею в виду может есть какие то репозитории де можно это хранить
Max
Andrey Zakharov 🐝
да почему же ?
в полне простой вопрос , на который вы мне ответили
Max
Max
почитайте сайт https://galaxy.ansible.com
Max
если не будете пользоваться галакси, вам придется реализовать весь механизм delivery.
Max
это - велосипед.
Andrey Zakharov 🐝
почитайте сайт https://galaxy.ansible.com
да я тоже кстати в их сторону вначале посмотрел , но к сожалению немного не подошло
проблема на самом деле в том что у меня уже есть этот самый велосипед , у которого есть сущность "версия шаблона" (назовём это так) , и оно в разные окружения выкатывает и вот одном из таких окружений инструмент шаблонизации является ансибл
Andrey Zakharov 🐝
надеюсь не сильно мозг вам поломал своими "эротическими фантазиями" )
Max
причем альтернатива самопала - просто использовать существующий функционал стандартного инструмента.
Max
я бы не разрешил своим инженерам писать замену ansible-galaxy
Sergey
@bender008 оффтопик + флуд = 7 дней R/O.
Следующий бан будет навсегда.
Alex
Andrey Zakharov 🐝
на поводу roi - тут сам по себе проект типа как ресёрч для внутренних нужд , и там изначально "велосипед"
Huan
привет всем
есть задача сделать разделить типичные переменные в разные файлы:
пример первого файла:
—
var_name_1:
- name: name_1
param: param_1
второй файл:
—
var_name_2:
- name: name_2
param: param_2
и таких файлов будет много (однотипные, кроме var_name)
подскажите плз как это все объединить в одной таске?
Sergey
Huan
описать параметры кафка топиков в отдельных файлах, чтоб не было одного файла на тысячи строк
Sergey
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
Alexey
ну тогда выходит все неодинаковое так или иначе придется где-то перечислить всю эту тысячу топиков, просто чуть по-другому блок шаблонизировать который в with_items если там есть одинаковые части
Huan
части одинаковые
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
Ну или это все уедет в отдельный таск сет, на котором будет with_sequence
Huan
а что тогда указать в with_items?
sbog
А какой формат на выходе нужно получить-то?
Timur
Блин, чего тут поудаляли все?
Huan
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
Sergey
т.к. в with_items ожидается список
Sergey
Либо я мысль тупо не понял.
sbog
Ну всегда можно сделать with_items: ["var_{{loop_var}}"] :)
Sergey
Timur
sbog
Ну тогда ее придется зарегистрировать в отдельной таске просто ;)
set_fact:
var: "var_{{ loop_var }}"
sbog
Зачем это?
Да мы тут открыты к предложениям, в общем-то
Sergey
sbog
странное
Ну ты исходный пропоузал посмотри у человека
Sergey
Sergey
Вот, сопссно, один из вариантов (чуть подточить, но тож зайдёт):
https://youtu.be/LApKSi5tUYo?t=1203
Anatoliy
Есть какой-то способ узнать ключ списка для искомых данных? Нужно, например, чтобы изменить элемент списка, если мне известно только значение
сейчас делаю через json_query; different; combine. но ...
Artëm
Коллеги, такой момент. Я правильно понимаю, что с переменной, рожденной внутри роли, нельзя замутить handler? Или всё-таки есть хаки?
Max
Max
все переменные - были глобальны.
т.е. их видно и в обработчиках (хотя могут быть race-condы)