Александр
А ещё есть срезы [n,m]
Nikita
Vladislav 👻
Vladislav 👻
вверху рабочий js, внизу yaml как я описал в ансибле
Vladislav 👻
как видно, у link4 в js в конце нет запятой
Александр
В jinja2 внутри цикла {% for item in items %} можно делать для items срезы как в Python обычном
Vladislav 👻
как быть?
Timur
Vladislav 👻
верхний js в темплейте
Александр
как быть?
{% for item in items %}{{ item }},{% endfor %}
Vladislav 👻
Александр
Только что тебе поставил запятую. ЧТо надо-то в итоге?
Victor
либо нарисовать новый лист и заджойнить его, либо использовать Loop.last или как-то так
Egor
ок
https://stackoverflow.com/questions/49772057/ansible-with-subelements-nested-levels
Egor
По ссылке в ответе наглядно объснили как быть. Это поможет.
Vladislav 👻
Victor
Но генерить джаваскрипт темплейтом... Не хочу насаживать свое мнение, но вы уверены чтоэто хорошая идея?
Vladislav 👻
Александр
Vadim
Александр
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") }}'
Vladislav 👻
Александр
Vladislav 👻
Я просто думал, выводить last, и не знал, что ласт можно проверить логически
Александр
У loop кстати куча всякого есть ещё. даже индексы с 0 или единицы.
Александр
Даже можно сделать чёт/нечет и более. А ещё есть рекурсия
Valeriy
Господа , подскажите а както получить путь к каталогу текущего проекту Ansible Tower в плейбуке можно ?
Александр
Я ща кончу в восторге от jinja2
Victor
Александр
https://specialistoff.net/tag/68
Victor
Херасе, спасибо.
Александр
А ещё оно умеет блоками внутри боков. Т.е. иметь шаблон-скелетон для разных шаблонов. И вызывается из другого шаблона с вставкой сгенерированных блоков в скелетон.
Александр
Типа такого https://specialistoff.net/question/620
Asgoret
Вопрос... есть кейс: из нескольких файлов, собрать 1 файл при этом название секций в слитом файле должно быть как название файлов из которых он взят.
Для примера:
Есть два файла (тест1 и тест2), после выполняние я задания появляется файл конфиг в котором:
тест1: |
(some data)
тест2: |
(some data)
можете подсказать какой-нибудь модуль или в какую сторону вообще этот кейс решать?
Alex
Alex
With loop
Asgoret
Blockinfile
хмм... там эти тупые "старт/енд" разве динамически меняются?
Alex
Александр
Александр
Александр
Мнет как раз ансиблом надо) башем и до меня нахерачили)))
Александр
Нет) ансиблом
Александр
Запусти баш из ансибла )
Александр
Не элегантно)))
Александр
Тогда используй такое https://docs.ansible.com/ansible/latest/modules/assemble_module.html#assemble-module
Александр
Вот пример даже на github есть https://github.com/ksator/junos-automation-with-ansible/tree/master/assemble
Александр
Egor
Александр
Крикну - а в ответ тишина.
Снова я остался один.
Сильный мужчина плачет у окна.
https://www.youtube.com/watch?v=6hl8FB805L0
Sergey
🤦♂️
Vladislav 👻
А можно как-то сразу все файлы копирнуть из роли в папке files?
Александр
Александр
Можно директорию
Vladislav 👻
а по паттерну он будет копировать?
Александр
Не пробовал
Александр
find умеет паттерн, но я хз как выхлоп в loop засунуть
Александр
Вроде как через register в переменную
Egor
Nikita
Asgoret
Timur
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 👻
нет, просто мне надо скопом пачку файлов закинуть на сервер