Print string when "item exists in a list" in Jinja2 template

Ken J picture Ken J · Nov 28, 2017 · Viewed 13.6k times · Source

I'm trying to populate nsswitch.conf with values that are determined from a list. The list is of string:

openldap_nsswitch:
  - group
  - hosts
  - passwd
  - shadow

If the string is in the list I want to output something in the template.

passwd:         compat {% if openldap_nsswitch contains passwd %}ldap{% endif %}

How can I write a string only if my list contains a specific element?

Answer

techraf picture techraf · Nov 28, 2017

Here you are:

passwd:         compat{{ ' ldap' if ('passwd' in openldap_nsswitch) else ‘’ }}