Anonymous
скорее всего тебя интересует output_key.results[index].stdout
Anonymous
условно в таком примере index заменить на перменную
Timur
а ансибл перменные внутри переменных умеет ? типа такого {{example-{{number}}}}
Умеет, но не так. И лучше динамические имена переменных не использовать без крайней необходимости
Andor
предположим я делаю copy ... content: "{{ blabla_variable }}" как мне сделать чтобы оно добавило newline в конец?
Anonymous
Сплит добавить
Andor
?
Andor
у меня там | to_nice_json и я бы хотел добавить newline в конце файла
Anonymous
@StirfMane будет жить. Поприветствуем!
Anonymous
@StirfMane будет жить. Поприветствуем!
Stirf
тупой бот
Stirf
дратуйте в общем
Anonymous
приведи пример таска и что оэжидаешь внутри файла речь же идет чтобы что то внутри добавить ?
Andor
что?
Andor
весь контент файла сейчас генерируется из переменной через | to_nice_json и я просто хочу добавить newline
Andor
не понимаю что непонятно
Vladislav 👻
темплейт?
Andor
темплейт?
для однострочного шаблона выглядит лишним
Andor
ну это ваще минорщина, просто было бы красивее
Vladislav 👻
"однострочного" 🤔
Andor
ну он однострочный
Andor
content: "{{ my_super_var | to_nice_json }}"
Vladislav 👻
If you need variable interpolation in copied files, use the template module. Using a variable in the content field will result in unpredictable output.
Andor
wat
Vladislav 👻
ну он однострочный
тогда причем тут перенос? 😬
Andor
при том что я хочу его добавить
Vladislav 👻
в однострочный контент?
Andor
контент не однострочный
Andor
шаблон однострочный
Vladislav 👻
ааа
Andor
to_nice_json генерирует многострочный контент
Andor
без перевода строки в конце
Vladislav 👻
When used instead of src, sets the contents of a file directly to the specified value. For advanced formatting or if content contains a variable, use the template module.
Vladislav 👻
в общем, всеми фибрами документация говорит - сделай темплейт
Anatoliy
{{ a } + { b }} - типа конкатенации
Vladislav 👻
и я с этим соглашусь
Andor
ну это не выглядит как "адвансед форматтинг" для меня
Vladislav 👻
либо можешь сделать {{ xz || "\n" }}
Vladislav 👻
но это такое...
Andor
я честно говоря ваще не понимаю нафиг они сделаны разными модулями
Andor
либо можешь сделать {{ xz || "\n" }}
то есть просто добавить {{ "\n" }} будет ок?
Andor
жинжа мне перевод не сожрёт?
Vladislav 👻
я хз, чистая теория
Vladislav 👻
жинжа мне перевод не сожрёт?
нет, если правильно засунуть
Vladislav 👻
только делай после nice наверно
Vladislav 👻
ибо сам nice может сделать не так, как хочешь
Andor
у меня ощущение что в ансибле жинжа по-умолчанию съедает переводы строк, то есть работает как -%} когда я делаю %}
Vladislav 👻
и кстати, посмотри, нет ли какого параметра у nice
Andor
и для }} то же
Vladislav 👻
и для }} то же
для {{}} нет
Andor
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#filters-for-formatting-data не, не вижу опций
Andor
ладно, хрен с ним, ваще минорщина
Andor
я хз, чистая теория
блин, он прямо \n и вставляет, не перевод строки :)
Andor
скотина
Andor
content: > {{ options | to_nice_json }}зато так вставляет как надо
Vladislav 👻
Vladislav 👻
логика есть, главное не забыть про нее
Александр
подскажите пожалуйста, как мне сделать в цикле jinja, что-то типа var++ ?
Vladislav 👻
цикл это делает сам, не?
Vladislav 👻
или про что речь?
Andor
https://stackoverflow.com/questions/7537439/how-to-increment-a-variable-on-a-for-loop-in-jinja-template
Andor
оно?
Александр
не работает
Александр
{% set host_count = 1 %} {% for host in redis_hosts | sort %} {% set instance_count = 1 %} {% for instance in redis_instances | sort %} server R{{ host_count }}{{ instance_count }} {{ host }}:{{ instance }} check {% instance_count++ %} {% endfor %} {% host_count++ %} {% endfor %}
Vladislav 👻
да, ответ со стека норм, через loop.index
Александр
AnsibleError: template error while templating string: Encountered unknown tag 'instance_count'.
Vladislav 👻
либо можно через key, value цикл сделать
Andor
что "не работает"? ты скопипастил нерабочий код из вопроса стековерфлоу и думаешь что он будет работать?
Andor
это кажется следующий уровень вообще
Andor
да, ответ со стека норм, через loop.index
ну там и {% set bla = bla + 1 %} тоже норм, но это же надо ответ прочитать
Александр
AnsibleUndefinedVariable: 'int object' has no attribute 'index'
Александр
{% set bla = bla + 1 %} пробовал - везде 1
Александр
так не работает {% for host in redis_hosts | sort %} {% for instance in redis_instances | sort %} server R{{ host.index | string }}{{ instance.index | string }} {{ host }}:{{ instance }} check {% endfor %} {% endfor %}
Александр
пишет AnsibleUndefinedVariable: 'int object' has no attribute 'index'
Andor
пишет AnsibleUndefinedVariable: 'int object' has no attribute 'index'
разумеется, это же значение из списка, а тебе надо номер этого значения в списке
Александр
как?
Andor
https://stackoverflow.com/questions/7537439/how-to-increment-a-variable-on-a-for-loop-in-jinja-template
вот тут ответ помеченный как решение вопроса
Александр
проблема в том, что у меня ещё вложенный цикл
Александр
мне надо индекс с обоих