Exécuter une tâche Ansible uniquement lorsque la variable contient une chaîne spécifique

J’ai des tâches multiples qui dépendent de la valeur de variable1. Je veux vérifier si la valeur est dans {{variable1}} mais j’ai une erreur:

- name: do something when the value in variable1 command:  when: "'value' in {{variable1}}" 

J’utilise ansible 2.0.2

    Aucune des réponses ci-dessus n’a fonctionné pour moi dans la version 2.3.0.0, mais ce qui suit:

     when: variable1 | search("value") 

    Si variable1 est une chaîne et que vous recherchez une sous-chaîne, cela devrait fonctionner:

     when: '"value" in variable1' 

    Si variable1 est un tableau ou un dict à la place, in recherchera la chaîne exacte parmi ses éléments.

    Cet exemple utilise regex_search pour effectuer une recherche de sous-chaîne.

     - name: make conditional variable command: "file -s /dev/xvdf" register: fsm_out - name: makefs command: touch "/tmp/condition_satisfied" when: fsm_out.stdout | regex_search(' data') 

    version accessible: 2.4.3.0

    j’ai utilisé

     failed_when: not(promtool_version.stdout.find('1.5.2') != -1) 

    signifie – échec uniquement lorsque la variable précédemment enregistrée “promtool_version” ne contient pas la chaîne ‘1.5.2’.