Александр
А ещё есть срезы [n,m]
Vladislav 👻
Vladislav 👻
вверху рабочий js, внизу yaml как я описал в ансибле
Vladislav 👻
как видно, у link4 в js в конце нет запятой
Александр
В jinja2 внутри цикла {% for item in items %} можно делать для items срезы как в Python обычном
Vladislav 👻
как быть?
Timur
вверху рабочий js, внизу yaml как я описал в ансибле
Что должно получиться на выходе?
Vladislav 👻
верхний js в темплейте
Александр
как быть?
{% for item in items %}{{ item }},{% endfor %}
Vladislav 👻
{% for item in items %}{{ item }},{% endfor %}
тогда вот так будет, ошибка синтаксиса js
Александр
тогда вот так будет, ошибка синтаксиса js
Я тебя не понимаю. "как видно, у link4 в js в конце нет запятой"
Александр
Только что тебе поставил запятую. ЧТо надо-то в итоге?
Victor
либо нарисовать новый лист и заджойнить его, либо использовать Loop.last или как-то так
Egor
ок
https://stackoverflow.com/questions/49772057/ansible-with-subelements-nested-levels
Egor
По ссылке в ответе наглядно объснили как быть. Это поможет.
Vladislav 👻
Только что тебе поставил запятую. ЧТо надо-то в итоге?
Чтобы последний элемент был без запятой в конце
Victor
Но генерить джаваскрипт темплейтом... Не хочу насаживать свое мнение, но вы уверены чтоэто хорошая идея?
Vladislav 👻
{{ ",\n".join(items) }}
Обратите внимание на структуру yaml, там есть еще одна переменная, которая вне items
Victor
Украдено с просторов интернета. {% for ip in host_ip %}{{ ip }}:1234{% if not loop.last %},{% endif %}{% endfor %}
Timur
Я бы тело ансиблом сформировал и в темплейт уже целиком вставил
Timur
Типа так: - debug: msg: '{{ html_config[0].links | map("quote") | join(",\n") }}'
Александр
Огонь, спасибо 👍🏻
Я ж тебе сразу сказал про loop.last
Александр
Vladislav 👻
Я просто думал, выводить last, и не знал, что ласт можно проверить логически
Александр
У loop кстати куча всякого есть ещё. даже индексы с 0 или единицы.
Александр
Даже можно сделать чёт/нечет и более. А ещё есть рекурсия
Valeriy
Господа , подскажите а както получить путь к каталогу текущего проекту Ansible Tower в плейбуке можно ?
Александр
Я ща кончу в восторге от jinja2
Egor
Я ща кончу в восторге от jinja2
Да, давай. Я уже на второй или третий круг пошел.
Victor
Даже можно сделать чёт/нечет и более. А ещё есть рекурсия
А рекурсия там где? Так сразу не приметил.
Александр
https://specialistoff.net/tag/68
Александр
А рекурсия там где? Так сразу не приметил.
Вот тут https://specialistoff.net/question/516
Victor
Херасе, спасибо.
Александр
А ещё оно умеет блоками внутри боков. Т.е. иметь шаблон-скелетон для разных шаблонов. И вызывается из другого шаблона с вставкой сгенерированных блоков в скелетон.
Александр
Типа такого https://specialistoff.net/question/620
Asgoret
Вопрос... есть кейс: из нескольких файлов, собрать 1 файл при этом название секций в слитом файле должно быть как название файлов из которых он взят. Для примера: Есть два файла (тест1 и тест2), после выполняние я задания появляется файл конфиг в котором: тест1: | (some data) тест2: | (some data) можете подсказать какой-нибудь модуль или в какую сторону вообще этот кейс решать?
Alex
With loop
Asgoret
Blockinfile
хмм... там эти тупые "старт/енд" разве динамически меняются?
Alex
Пиши мне в лс. Python + jinja2
Был башсибл, а ты даже более адовую хрень насоветуешь ему?
Александр
Александр
Мнет как раз ансиблом надо) башем и до меня нахерачили)))
Александр
Нет) ансиблом
Александр
Запусти баш из ансибла )
Александр
Не элегантно)))
Александр
Тогда используй такое https://docs.ansible.com/ansible/latest/modules/assemble_module.html#assemble-module
Александр
Вот пример даже на github есть https://github.com/ksator/junos-automation-with-ansible/tree/master/assemble
Nikita
Я тебе помог?
Да я видел этот пост на стековерфлоу.
Александр
Крикну - а в ответ тишина. Снова я остался один. Сильный мужчина плачет у окна. https://www.youtube.com/watch?v=6hl8FB805L0
Sergey
🤦‍♂️
Vladislav 👻
А можно как-то сразу все файлы копирнуть из роли в папке files?
Александр
Можно директорию
Vladislav 👻
а по паттерну он будет копировать?
Александр
Не пробовал
Александр
find умеет паттерн, но я хз как выхлоп в loop засунуть
Александр
Вроде как через register в переменную
Egor
Да я видел этот пост на стековерфлоу.
В нем ответ на твой вопрос
Timur
Вроде как через register в переменную
Вот так примерно: - name: List files by pattern find: paths: 'mypath' patterns: "*.jar" register: myfiles - name: copy files by pattern copy: src: '{{ file_item.path }}' dest: '/destination/{{ file_item.path | basename }}' loop: '{{ myfiles.files }}' loop_control: loop_var: file_item
Sergey
Делаете ли вы роли в роли?
Путь к боли и унижению - не надо так.
Vladislav 👻
что за вопрос?
Vladislav 👻
просто интересно, какой может быть ответ кроме "затем"?
Sergey
Юзкейс непонятен.
Sergey
Не знаешь и знать не хочешь, что у ьебя там лежит?
Vladislav 👻
нет, просто мне надо скопом пачку файлов закинуть на сервер