Luați în considerare următoarele Ansiblu sarcina:
- name: "Install Python packages"
ansible.builtin.pip:
name:
- "foobar"
extra_args: "--no-index --find-links=file://{{ role_path }}/files/pip/"
Această sarcină instalează un pachet Piton de la o pre-descărcat pachetul de fișier care este stocat cu Ansiblu rol.
Cu toate acestea, există un te-am prins aici: în cazul în care calea de pe disc unde Ansiblu rol este situat conține un spațiu sau o bară oblică inversă, de --find-links
argumentul va fi analizat în mod incorect.
Ceea ce am nevoie este o formă de filtru sau funcție care se va aplica echivalentul a printf '%q'
la {{ role_path }}
variabilă, scapa de toate spații sau caractere speciale. Există o astfel de funcție în Ansiblu sau Jinja2?