Ansible: le filtre par défaut ne résout pas les variables dans Ansible 1.8.2

Créé le 19 déc. 2014  ·  3Commentaires  ·  Source: ansible/ansible

Type de probleme:

Rapport d'erreur

Version Ansible :

1.8.2

Environnement:

RHEL 5

Sommaire:

Le filtre par défaut ne résout pas les variables définies dans l'inventaire.

Par exemple, si j'ai défini dans mon fichier d'inventaire la variable suivante :

app_install_dir=/test

Mon playbook a ceci et "somevariable" n'est pas défini:

dest_dir="{{ unevariable | default('{{app_install_dir}}/DATA') }}"

Lors de l'exécution du playbook, la valeur par défaut ne parvient pas à résoudre "app_install_dir"

Cela fonctionnait sur Ansible 1.7.1.

Étapes à reproduire :

1) Définissez une variable dans l'inventaire appelée "test_directory=/tmp/testdir"
2) Dans le playbook, ayez une tâche pour créer un répertoire défini par la variable dest={{ undefined_variable | par défaut('{{test_directory}}') }}
3) Après avoir exécuté le playbook, il ne parvient pas à résoudre la valeur de "test_directory"

Résultats attendus:

Le filtre par défaut doit pouvoir résoudre les variables

Résultats actuels:

Le filtre par défaut ne résout pas les variables définies dans l'inventaire

Commentaire le plus utile

Je ne vois normalement pas de messages dans les tickets fermés, mais un utilisateur irc m'a envoyé un ping à ce sujet :
dest={{ undefined_variable | default(test_directory + '/subdir') }}

Tous les 3 commentaires

Possible malentendu

Salut!

Merci beaucoup pour votre soumission à Ansible. Cela signifie sincèrement beaucoup pour nous.

Nous pensons que le ticket que vous avez déposé est quelque peu mal compris, car une chose fonctionne un peu différemment de ce qui est indiqué.

dest={{ undefined_variable | default('{{test_directory}}') }}

est une expression invalide, vous ne pouvez pas imbriquer {{ }}, ce que vous voulez probablement est le suivant :

dest={{ undefined_variable | default(test_directory) }}

À l'avenir, cela pourrait être un sujet plus adapté à la liste des utilisateurs, que vous pouvez également publier ici si vous souhaitez obtenir plus d'aide avec ce qui précède.

Merci encore pour cela et votre intérêt pour Ansible !

@bcoca : Bon à savoir, mais cela signifie-t-il que nous ne pouvons pas concaténer une variable et un littéral dans une valeur par défaut ? Quelque chose comme : dest={{ undefined_variable | default('{{test_directory}}/subdir') }} (mais pas invalide ;-)

Je ne vois normalement pas de messages dans les tickets fermés, mais un utilisateur irc m'a envoyé un ping à ce sujet :
dest={{ undefined_variable | default(test_directory + '/subdir') }}

Cette page vous a été utile?
0 / 5 - 0 notes