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

17,986

Solution 1

Here you are:

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

Solution 2

Compat didn't work for me:

{% if is in('passwd', openldap_nsswitch) %} ldap {% endif %}

Also, I was doing this outside of ansible.

Share:
17,986
Ken J
Author by

Ken J

Updated on June 09, 2022

Comments

  • Ken J
    Ken J almost 2 years

    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?