ansible - variable au sein de variable

Ansible version 1.9.2.

Ne Ansible prend en charge l'expansion des variables à l'intérieur d'une variable pendant l'évaluation.

J'ai une tâche à télécharger les 3 fichiers zip de Artifactory.

Au lieu d'écrire des 3 tâches distinctes dans le rôle, j'ai utilisé ansible de la boucle dans le playbook. Dans Ansible rôle par défaut de/main.yml, j'ai toutes les variables définies/disponible dans le rôle c jmeterplugins_extras_artifactory_url et autres (standard /webdriver) sont visibles à perf_tests rôle.

---
#- Download and install JMeterPlugins
# Use get_url when Ansible is 2.0+ is available on the machine (otherwise, we can't use get_url) thus, using wget.
- name: Download JMeterPlugins-*
  command: wget {{ jmeterplugins_{{ item.plugin }}_artifactory_url }}  
    chdir="{{ common_download_dir }}"
    creates="{{ common_download_dir }}/{{ jmeterplugins_{{ item.plugin }}_file }}"
  with_items:
    - { plugin: 'extras' }
    - { plugin: 'standard' }  
    - { plugin: 'webdriver' }   

Mais avec le code ci-dessus, j'obtiens une erreur (comme illustré ci-dessous):

15:58:57 TASK: [perf_tests | Download JMeterPlugins-*] ********************************* 
15:58:57 <jmeter01.super.fast.jenkins> ESTABLISH CONNECTION FOR USER: cmuser on PORT 22 TO jmeter01.super.fast.jenkins
15:58:57 fatal: [jmeter01.super.fast.jenkins] => Failed to template wget {{ jmeterplugins_{{ item.plugin }}_artifactory_url }} chdir="{{ common_download_dir }}" creates="{{ common_download_dir }}/{{ jmeterplugins_{{ item.plugin }}_file }}": template error while templating string: expected token 'variable_end', got '{'
15:58:57 
15:58:57 FATAL: all hosts have already failed -- aborting
15:58:57 
15:58:57 PLAY RECAP ******************************************************************** 
15:58:57            to retry, use: --limit @/home/cmuser/perf_tests.retry
15:58:57 
15:58:57 jmeter01.super.fast.jenkins : ok=23   changed=6    unreachable=1    failed=0   

N'est pas ansible prend en charge l'expansion des variables/évaluation si une variable contient une autre variable (surtout quand je suis à l'aide d'une boucle).

Je juste ne veux élargir mon simple tâche de boucle de 3-nom de tâches pour le téléchargement de fichiers zip pour jmeterplugins_extras, jmeterplugins_standard et jmeterplugins_webdriver séparément. Il semble que l'erreur est liée en raison de Jinja.

Comment puis-je utiliser la var de la valeur giga dans une autre variable, c'est à dire si var contient giga, ensuite je devrais obtenir la valeur de la variable "special_giga_variable" ({{special_{{ var }}_variable}})? où var a été défini dans les paramètres par défaut/main.yml:

var: giga

OriginalL'auteur Arun Sangal | 2015-09-21