变量

Ansible variables

我是一个真正的 Ansible 初学者。

有什么方法可以从另一个ansible变量重建一个变量吗?

例如,这个剧本:

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

它打印:

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

而不是“第一”、“第二”和“第三”。

在这种情况下或在 jinja 模板中,有没有办法打印变量内容而不是变量名?

使用查找变量插件

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

给予

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

有关插件的详细信息可从命令行获得

shell> ansible-doc -t lookup vars