ansible - Variable innerhalb der Variablen
Ansible 1.9.2 Version.
Does Ansible unterstützt die Variablenerweiterung innerhalb einer Variablen, während sie ausgewertet wird.
Ich habe die Aufgabe, 3 ZIP-Dateien von Artifactory herunterzuladen.
Anstatt 3 verschiedene Aufgaben innerhalb der Rolle zu schreiben, habe ich die Ansible-Schleife im Playbook verwendet. In der Standard- / main.yml-Datei der Ansible-Rolle sind alle erforderlichen Variablen für die Rolle definiert / verfügbar, d. H. Jmeterplugins_extras_artifactory_url und andere (Standard / Webdriver) sind für @ sichtba perf_tests role.
---
#- 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' }
Aber mit dem obigen Code erhalte ich eine Fehlermeldung (siehe unten):
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
Unterstützt nicht die Variablenerweiterung / -auswertung, wenn eine Variable eine andere Variable enthält (insbesondere, wenn ich eine Schleife verwende).
Ich möchte meine einfache Schleifenaufgabe nicht auf drei Aufgaben mit unterschiedlichen Namen erweitern, um Zip-Dateien für jmeterplugins_extras, jmeterplugins_standard und jmeterplugins_webdriver separat herunterzuladen. Es scheint, dass der Fehler auf Jinja zurückzuführen ist.
Wie kann ich den Wert von var verwenden? giga in einer anderen Variablen, d. h. wenn var enthält giga, dann sollte ich den Wert der Variablen "special_giga_variable" erhalten {{special _ {{var}} _ variable}})? wo var in defaults / main.yml definiert wurde als:
var: giga