我想在主机文件上运行ad-hoc命令,在主机文件中为每个主机定义了一个变量,如何在执行ad-hoc命令时使用该变量。
例如:
ansible -i /home/bob/hosts_file -m shell -a "$VAR/project run"
我已经为" hosts_file"中的每个主机定义了$VAR
,$ VAR对于库存文件中的每个主机都是不同的。如何在执行时替换每个主机的ad-hoc命令中使用该变量。
答案 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
从我的清单文件中显示出来。