Ansible:如何在ad-hoc命令中使用库存变量

时间:2017-07-12 23:17:42

标签: ansible

我想在主机文件上运行ad-hoc命令,在主机文件中为每个主机定义了一个变量,如何在执行ad-hoc命令时使用该变量。

例如:

ansible -i /home/bob/hosts_file -m shell -a "$VAR/project run"

我已经为" hosts_file"中的每个主机定义了$VAR,$ VAR对于库存文件中的每个主机都是不同的。如何在执行时替换每个主机的ad-hoc命令中使用该变量。

2 个答案:

答案 0 :(得分:3)

主机变量可用于ansible,即使在运行ad-hoc命令时也是如此。您可以像使用jinja模板一样通过剧本插入它们。

ansible all -i /home/bob/hosts_file -m shell -a "{{var}}/project run"

答案 1 :(得分:0)

可用的即席命令,ansible可以使用所有相同的变量。

$ ansible -i inventory/lab -m debug -a "var=group_names" all | head -10
es-master-01.mydom.local | SUCCESS => {
    "group_names": [
        "elasticsearch",
        "engineering",
        "lab",
        "lab-es-master"
    ]
}

在这里,我要查询清单中的服务器,以找出清单文件中服务器分配给的组。此变量group_names从我的清单文件中显示出来。