Considere o seguinte Ansible tarefa:
- name: "Install Python packages"
ansible.builtin.pip:
name:
- "foobar"
extra_args: "--no-index --find-links=file://{{ role_path }}/files/pip/"
Esta tarefa instala um pacote Python a partir de uma pré-pacote de download do arquivo que é armazenado com o Ansible papel.
No entanto, há uma pegadinha aqui: se o caminho no disco onde o Ansible papel está localizado contém espaço em branco ou uma barra invertida, o --find-links
argumento será analisada incorretamente.
O que eu preciso é algum tipo de filtro ou função que irá aplicar o equivalente a printf '%q'
para o {{ role_path }}
variável, escapando de todos os espaços em branco ou caracteres especiais. Existe uma função no Ansible ou Jinja2?