Ansible: wie man eine Variable aus einer anderen Variable konstruiert und dann ihren Wert abruft

Hier ist mein Problem, ich muss eine Variable 'target_host' verwenden und dann '_host' an ihren Wert anhängen, um einen anderen Variablennamen zu erhalten, dessen Wert ich benötige. Wenn Sie sich mein Spielbuch ansehen. Aufgabe Nr. 1,2,3 holt den Wert der Variablen, aber Nr. 4 kann nicht das tun, was ich erwarte. Gibt es eine andere Möglichkeit, dasselbe in Ansible zu erreichen?

   ---
    - name: "Play to for dynamic groups"
      hosts: local 
      vars:
        - target_host: smtp
        - smtp_host: smtp.max.com
      tasks:
        - name: testing
          debug: msg={{ target_host }}
        - name: testing
          debug: msg={{ smtp_host }}
        - name: testing
          debug: msg={{ target_host }}_host
        - name: testing
          debug: msg={{ {{ target_host }}_host }}


Output:

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "smtp"
}

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "smtp.max.com"
}

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "smtp_host"
}

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "{{{{target_host}}_host}}"
}

Antworten auf die Frage(14)

Ihre Antwort auf die Frage