String: \"{{ docker_compose_path }}/{{ item | basename | regex_replace(\"\\\\.j2\",\"\") }}\""
почему может ругаться на regex_replace?
потому что не надо так делать. src: "{{ item }}.j2" dest: "{{ docker_compose_path }}/{{ item | basename }}"
Ну а почему нет? $ ansible -m debug -a 'msg={{ "path_to_file/filename.j2" | basename | regex_replace("\.j2") }}' localhost [WARNING]: No inventory was parsed, only implicit localhost is available localhost | SUCCESS => { "msg": "filename" }
Зачем здесь basename? Хотя сама идея правильная.
из оригинальной таски в сообщении @Dragonflybsd
элегантно, спс
дошли руки проверить... - name: docker-compose | Render application templates files and docker-compose file template: src: "{{ item }}.j2" dest: '"{{ docker_compose_path }}/{{ item | basename }}"' owner: root group: root mode: 0644 backup: yes with_fileglob: - "{{ docker_compose_templates_path }}/*.j2" notify: - "restart compose"
.
у тебя в файлглобе записано полное имя файла, вместе с расширением - оно и попадёт в item. а в src ты пишешь item - и снова с .j2
изначальный вопрос был что с регэкспом
удали .j2 в "src: "{{ item }}.j2"
В 2.9.27 есть, разломанные версии тебе точно нужны?
так ведь with_fileglob
в 2.5 уже было, более ранние смотреть не стал.
😂 у нас от 2.6 до 2.11 ) Было, да.
В 2.12.4 тоже есть: https://github.com/ansible/ansible/blob/v2.12.4/lib/ansible/plugins/filter/core.py
Обсуждают сегодня