Ansible 变量

Posted

技术标签:

【中文标题】Ansible 变量【英文标题】:Ansible variables 【发布时间】:2022-01-23 07:01:51 【问题描述】:

我是真正的 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 模板中打印变量内容而不是变量名?

【问题讨论】:

docs.ansible.com/ansible/latest/reference_appendices/… 【参考方案1】:

使用查找vars插件

    - 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

【讨论】:

谢谢,正是我想要的!

以上是关于Ansible 变量的主要内容,如果未能解决你的问题,请参考以下文章

Ansible自动化运维工具Ansible的变量定义和引用

ansible远程没有环境变量

ansible自动化运维详解ansible中变量的设定使用JINJA2模板的使用以及ansible的加密控制

ansible自动化运维详解ansible中变量的设定使用JINJA2模板的使用以及ansible的加密控制

ansible自动化运维详解ansible中变量的设定使用JINJA2模板的使用以及ansible的加密控制

Ansible自动化运维Ansible变量之lookup生成变量方法