Calaad
Calaad

Reputation: 13

Ansible variables

I'm a real Ansible beginner.

Is there any way to reconstruct a variable from another ansible variable?

For example, this playbook :

- hosts: servers 
  vars:
    ex_server1: First
    ex_server2: Second
    ex_server3: Third
    toto: ex_
  tasks:
    - debug: 
        msg: "{{ toto+ansible_hostname }}"

It print :

ok: [server2] => {
    "msg": "ex_server2"
}
ok: [server3] => {
    "msg": "ex_server3"
}
ok: [server1] => {
    "msg": "ex_server1"
}

Instead of "First", "Second" and "Third".

Is there a way to print variable content instead of variable name in this situation or in a jinja template ?

Upvotes: 1

Views: 66

Answers (1)

Vladimir Botka
Vladimir Botka

Reputation: 68229

Use lookup vars plugin

    - debug:
        msg: "{{ lookup('vars', toto + ansible_hostname) }}"

gives

TASK [debug] ***********************************************************
ok: [server1] => 
  msg: First
ok: [server2] => 
  msg: Second
ok: [server3] => 
  msg: Third

The details about the plugin are available from the command-line

shell> ansible-doc -t lookup vars

Upvotes: 1

Related Questions