Womchik
куда?
/etc/appconfig.d/ и там a1.conf, a2.conf итд
George
для какого приложения? или ты в общем
George
в общем - есть некие конвенции, но они больше для штук типа nginx, apache, syslog, sysctl - которые мерджат конфиги
Womchik
в общем. в зависимости от сервиса у меня к, например, fluent-bit могут быть 2-5 конфига в его папке
Anonymous
Колелги, подскажите как из массива register достать нужное значение
Anonymous
условно есть такой vars example: data: - { server: "server1", key_name: "key1" } - { server: "server1", key_name: "key2" }
Anonymous
регистрирую так
Anonymous
- name: curl get value shell: 'curl -s -X GET example.com/{{item.key_name}} | jq ".data" | jq ".data" | jq -r ".value"' args: warn: false register: "output_key" with_items: "{{ example.server }}
Anonymous
все бы хорошо но не оч понимаю как из этой простынки потмо что то достать
Sergey
Всем привет, может кто подскажет как в iptables модуле использовать параметр wait
Anonymous
то есть условный output_key.stdout уже не работает
Max
и надо не with_items: "{{ example.server }}"
Anonymous
а как правильно ?
Max
а: with_items: "{{example | list }}"
Max
наверное.
Anonymous
сейчас попробую
Max
тогда каждый item будет дикт с 2мя атрибутами
Max
потом, output_key просто распечатай через debug
Max
и посмотри на структуру.
Anonymous
вот так и делаю
Max
скорее всего тебя интересует output_key.results[index].stdout
Max
а по индексам надо пройтись.
Max
но посмотри на выхлоп debug чтобы понять структуру.
Max
i.e. скорее всего итерировать надо: - name: task name module: param1: ... param2: "{{json_item.чтото}}" loop_control: loop_var: json_item loop: "{{output_key.results|default([])|list}}"
Anonymous
Вроде что то взлетает, спасибо
Anonymous
в обще логика такая что на вход я подаю название разных key_name на выходе получаю значения key_name которыми в дальнейшем оперирую в templates
Anonymous
причем таких ключей десятки
Max
в обще логика такая что на вход я подаю название разных key_name на выходе получаю значения key_name которыми в дальнейшем оперирую в templates
т.е. эти джейсоны несут в себе ключи, которые ты кушаешь шаблонами? wicked! а сервис, который дергается - consul/etcd ?
Anonymous
ну в данном случае он дергает hasicorp vault и грузить туда секреты
Max
понятно.
Anonymous
ну а секреты уже по шаблонам раскидываються, нужно чтобы не хранить их локально и не светить в гите
Max
я не понимаю зачем расчлененка диктов. можно дикты в шаблоны скормить как есть.
Max
это же требует код. а так взял джейсон, как есть скормил его в шаблон
Max
имхо... вы не умеете готовить кошек.
Max
единственное "но"— нужна конвенция, и за ней надо следить. и шаблоны подкрутить.
Max
@deniswork94 ^^^
Anonymous
что то понятнее не стало ) пойду гуглить умные слова
Max
вы делаете запрос в волт.
Max
он возвращает json. правильно ?
Anonymous
нет
Anonymous
ну в обещ да, но в конкретном случае нет
Anonymous
тут логика сложнее
Max
сек.
Max
волт возвращает json. а вы его трансформируете.
Max
я спрашиваю: на фиг?
Max
тут логика сложнее
на данный момент. я надеюсь уговорить тебя, что это не требуется.
Anonymous
поясню суть
Anonymous
сейчас смысл сделать роль, которую можно подключать к любому плейбук на вход подавая ей определенный массив перменных по которому она будет знать точный путь куда бросать запрос на апи, да на выходе оно получает json и его разобрать не проблема
Anonymous
проблема в том что мне нужно регестрировать кучу значений что оно возращает из примера выше это условные key_name которых много
Max
а почему вы не работаете с lookup("hashi_vault", ...)?
Anonymous
объяснял пару дней назад) лень возращаться к этому вопросу
Max
коротко: "тут так заведено"?
Max
или дай ссыльку
Anonymous
коротко что модуль на двух маках работает на одном нет
Max
коротко что модуль на двух маках работает на одном нет
версии питона, волта и ансибла... проверили? попахивает чем-то.
Anonymous
да проверил
Anonymous
https://t.me/pro_ansible/100483 отсюда и ниже
Anonymous
pip freeze | grep hvac hvac==0.9.3
Anonymous
ASK [0008-vault-get-data : debug] *************************************************************************************************************** fatal: [10.200.0.141]: FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'hashi_vault'. Error was a <class 'ansible.errors.AnsibleError'>, original message: Please pip install hvac to use the hashi_vault lookup module."}
Anonymous
короче костыльт даже возращаться к нему не буду
Anonymous
заверни ты все в virtualenv (а лучше через pipenv)
Maks
Добрый день. Поскажите, можно темплейту в цикл райндж передать переменные? Примерно так: {% for var in range( {{ range_start }}, {{ range_end }} ) %} a{{ var }} {% endfor %} но так не выходит, получаю: Unexpected templating type error occurred on (#\n{% for var in range('{{ range_start }}, {{ range_end }}') %}\na{{ var }}\n{% endfor %}\n\n\n1\n {% for letter in 'abcd' %}\n {{ letter }}\n {% endfor %}\n): an integer is required"}
Max
короче костыльт даже возращаться к нему не буду
мне кажется ты не пользуешься virtualenv, и у тебя бардак с переменными окружения на проблемном маке.
Max
вероятно PYTHONPATH перегружен маразмом.
Max
или python_interpreter
Anonymous
Парни забейте) пока я поиграюсь с массивом
Max
я не понял.
Maks
{% for var in range(range_start, range_end) %}
спасибо, помогло)
Anonymous
Ну мы же уже дискутировали на эту тему пару дней назад.
Timur
Ну мы же уже дискутировали на эту тему пару дней назад.
И вы так и не сказали, зачем нужен curl вместо родных модулей ансибла
Max
Блять, зачем curl?!!
I love it when you talk dirty 🤣
Anonymous
а ансибл перменные внутри переменных умеет ? типа такого {{example-{{number}}}}
[IPT] Dmitry
Ты наверно хочешь это? {{ var1 + '-' + var2 + '-' + var3 }}