George
Womchik
куда?
/etc/appconfig.d/
и там a1.conf, a2.conf итд
George
для какого приложения? или ты в общем
George
в общем - есть некие конвенции, но они больше для штук типа nginx, apache, syslog, sysctl - которые мерджат конфиги
Womchik
в общем.
в зависимости от сервиса у меня к, например, fluent-bit могут быть 2-5 конфига в его папке
[IPT] Dmitry
Max
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
все бы хорошо но не оч понимаю как из этой простынки потмо что то достать
Max
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
причем таких ключей десятки
[IPT] Dmitry
Max
Anonymous
ну в данном случае он дергает hasicorp vault и грузить туда секреты
Max
понятно.
Anonymous
ну а секреты уже по шаблонам раскидываються, нужно чтобы не хранить их локально и не светить в гите
Max
я не понимаю зачем расчлененка диктов. можно дикты в шаблоны скормить как есть.
Max
это же требует код. а так взял джейсон, как есть скормил его в шаблон
Max
имхо... вы не умеете готовить кошек.
Max
единственное "но"— нужна конвенция, и за ней надо следить. и шаблоны подкрутить.
Max
@deniswork94 ^^^
Anonymous
что то понятнее не стало ) пойду гуглить умные слова
Max
вы делаете запрос в волт.
Max
он возвращает json. правильно ?
Anonymous
нет
Anonymous
ну в обещ да, но в конкретном случае нет
Anonymous
тут логика сложнее
Max
сек.
Max
волт возвращает json. а вы его трансформируете.
Max
я спрашиваю: на фиг?
Anonymous
поясню суть
Anonymous
сейчас смысл сделать роль, которую можно подключать к любому плейбук на вход подавая ей определенный массив перменных по которому она будет знать точный путь куда бросать запрос на апи, да на выходе оно получает json и его разобрать не проблема
Anonymous
проблема в том что мне нужно регестрировать кучу значений что оно возращает из примера выше это условные key_name которых много
Max
а почему вы не работаете с lookup("hashi_vault", ...)?
Anonymous
объяснял пару дней назад) лень возращаться к этому вопросу
Max
коротко: "тут так заведено"?
Max
или дай ссыльку
Anonymous
коротко что модуль на двух маках работает на одном нет
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
вероятно PYTHONPATH перегружен маразмом.
Max
или python_interpreter
Anonymous
Парни забейте) пока я поиграюсь с массивом
Max
я не понял.
Lamobot
Maks
Timur
Anonymous
Ну мы же уже дискутировали на эту тему пару дней назад.
Anonymous
а ансибл перменные внутри переменных умеет ? типа такого {{example-{{number}}}}
[IPT] Dmitry
Ты наверно хочешь это?
{{ var1 + '-' + var2 + '-' + var3 }}