Skip to content

ansible rule to downgrade to Jinja version 3.0.0

Ghost User requested to merge ss22-csf-jinja2-fix into main

Folgender (Ansible-)Fehler tritt sowohl beim Ausführen von update.sh als auch beim lokalen Testen auf:

TASK [gantsign.keyboard : install keyboard-configuration] ***************************************************************************
[WARNING]: Skipping plugin (/usr/lib/python3/dist-packages/ansible/plugins/filter/core.py) as it seems to be invalid: cannot import
name 'environmentfilter' from 'jinja2.filters' (/usr/local/lib/python3.8/dist-packages/jinja2/filters.py)
[WARNING]: Skipping plugin (/usr/lib/python3/dist-packages/ansible/plugins/filter/mathstuff.py) as it seems to be invalid: cannot
import name 'environmentfilter' from 'jinja2.filters' (/usr/local/lib/python3.8/dist-packages/jinja2/filters.py)
ok: [devbox]
 
TASK [gantsign.keyboard : write keyboard configration] ******************************************************************************
[WARNING]: Skipping plugin (/usr/lib/python3/dist-packages/ansible/plugins/filter/core.py) as it seems to be invalid: cannot import
name 'environmentfilter' from 'jinja2.filters' (/usr/local/lib/python3.8/dist-packages/jinja2/filters.py)
[WARNING]: Skipping plugin (/usr/lib/python3/dist-packages/ansible/plugins/filter/mathstuff.py) as it seems to be invalid: cannot
import name 'environmentfilter' from 'jinja2.filters' (/usr/local/lib/python3.8/dist-packages/jinja2/filters.py)
fatal: [devbox]: FAILED! => {"changed": false, "msg": "AnsibleError: template error while templating string: No filter named 'comment'.. String: {{ ansible_managed | comment }}\n\nXKBMODEL=\"{{ keyboard_model }}\"\nXKBLAYOUT=\"{{ keyboard_layout }}\"\nXKBVARIANT=\"{{ keyboard_variant }}\"\nXKBOPTIONS=\"{{ keyboard_options }}\"\nBACKSPACE=\"{{ keyboard_backspace }}\"\n"}
 
PLAY RECAP **************************************************************************************************************************
devbox                     : ok=5    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0  

Es gibt deshalb einen zusätzlichen Ansible-Task, der Jinja2 auf die Version 3.0.0 zieht. Mit dieser Version wurde es erfolgreich getestet.

Da es sich bei Jinja2 um ein Python package handelt, welches von Ansible genutzt wird ist evtl. sauberer, das Paket auf die Version 3.0.0 zu bringen, bevor man Ansible startet. Da ich keinen Zugriff auf das script habe, ist dieser Schritt nun ein Teil der yml. Es funktioniert zumindest ;)

Merge request reports